<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>AIツール on KnightLiブログ</title>
        <link>https://knightli.com/ja/categories/ai%E3%83%84%E3%83%BC%E3%83%AB/</link>
        <description>Recent content in AIツール on KnightLiブログ</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Thu, 21 May 2026 08:53:13 +0800</lastBuildDate><atom:link href="https://knightli.com/ja/categories/ai%E3%83%84%E3%83%BC%E3%83%AB/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>GitHub AIオープンソースプロジェクト分類：Coding AgentからRAGナレッジベースまで</title>
        <link>https://knightli.com/ja/2026/05/21/github-ai-projects-site-statistics/</link>
        <pubDate>Thu, 21 May 2026 08:53:13 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/21/github-ai-projects-site-statistics/</guid>
        <description>&lt;p&gt;このページでは、GitHub上のAIプロジェクトを用途別に整理します。AIコーディングとCoding Agent、Agentスキルとワークフロー、RAGとナレッジベース、マルチモーダル制作、ローカルモデルと推論、垂直アプリケーションと自動化、AIアプリ開発基盤などの方向を扱います。新しいプロジェクトが増えた場合も、同じ構造で追加できます。&lt;/p&gt;
&lt;h2 id=&#34;カテゴリ概要&#34;&gt;カテゴリ概要
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;カテゴリ&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;プロジェクト数&lt;/th&gt;
          &lt;th&gt;まず見るべき人&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;AIコーディングとCoding Agent&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;19&lt;/td&gt;
          &lt;td&gt;Claude Code、Codex、Cursor、ターミナルAgent、リポジトリ自動化をよく使う人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Agentスキルとワークフロー&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7&lt;/td&gt;
          &lt;td&gt;AIコーディング、研究、制作フローを標準化したい人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RAG、ナレッジベース、メモリ&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7&lt;/td&gt;
          &lt;td&gt;文書検索、ナレッジベース、長期メモリ、Webクロール、構造化抽出が必要な人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;垂直アプリケーションと自動化&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7&lt;/td&gt;
          &lt;td&gt;金融、取引、Xianyu監視、デスクトップ操作、ブラウザ自動化などを見たい人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;マルチモーダルとコンテンツ制作&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5&lt;/td&gt;
          &lt;td&gt;画像、動画、文字起こし、プロンプト集、コンテンツ配信を扱う人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AIアプリ開発基盤&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3&lt;/td&gt;
          &lt;td&gt;AIアプリ、ブラウザ自動化、Prompt/MCPツールチェーンを構築する開発者&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ローカルモデルと推論&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1&lt;/td&gt;
          &lt;td&gt;ローカルDeepSeek、推論エンジン、ハードウェア適配に関心がある人&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;この分布から、現在のAIオープンソースプロジェクトではAIコーディングツールが最も多く、その次にAgentワークフロー、RAGナレッジベース、具体的な応用シナリオが続くことがわかります。純粋なモデル推論プロジェクトは少なめです。ローカルデプロイの多くは、単一のGitHubプロジェクトではなく、モデル、GPU、デプロイ方案を中心に整理されるためです。&lt;/p&gt;
&lt;h2 id=&#34;aiコーディングとcoding-agent&#34;&gt;AIコーディングとCoding Agent
&lt;/h2&gt;&lt;p&gt;このカテゴリは、コード理解、コード修正、エンジニアリングフロー、ターミナルAgentに焦点を当てます。最も大きいグループで、&lt;strong&gt;19&lt;/strong&gt; 件のプロジェクトがあります。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;プロジェクト&lt;/th&gt;
          &lt;th&gt;記事&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;主な用途&lt;/th&gt;
          &lt;th&gt;向いている人&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Ralph&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/04/27/ralph-autonomous-agent-loop-claude-code-amp/&#34; &gt;Ralph：Claude CodeとAmpを自律開発ループにする&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/snarktank/ralph&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;snarktank/ralph&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;PRD、計画、実行、レビューの流れでClaude Code / Ampを進める&lt;/td&gt;
          &lt;td&gt;Agentコーディングの流れを整えたい人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude-Mem&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/01/claude-mem-persistent-memory-for-claude-code/&#34; &gt;Claude-Mem：Claude Codeにセッション横断の長期メモリを追加する&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/thedotmack/claude-mem&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;thedotmack/claude-mem&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Claude Codeにセッション横断メモリを追加&lt;/td&gt;
          &lt;td&gt;Claude Codeを頻繁に使う開発者&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Code Hooks Mastery&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/01/claude-code-hooks-mastery-guide/&#34; &gt;Claude Code Hooks Mastery：13個のHooksライフサイクル入門&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/disler/claude-code-hooks-mastery&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;disler/claude-code-hooks-mastery&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Claude Code Hooksのライフサイクルと自動化制御を学ぶ&lt;/td&gt;
          &lt;td&gt;Claude Codeをカスタマイズしたい人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Compound Engineering Plugin&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/01/compound-engineering-plugin-ai-coding-workflow/&#34; &gt;Compound Engineering Plugin：AIコーディングを計画、実行、レビューの循環にする&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EveryInc/compound-engineering-plugin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EveryInc/compound-engineering-plugin&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;AIコーディングを計画、実行、レビューに分ける&lt;/td&gt;
          &lt;td&gt;工学的なAIコーディングを重視する人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;free-claude-code&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/01/free-claude-code-anthropic-compatible-proxy/&#34; &gt;free-claude-code：Claude CodeをOpenRouter、DeepSeek、ローカルモデルにつなぐ&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Alishahryar1/free-claude-code&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Alishahryar1/free-claude-code&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;proxy経由でClaude Codeを複数モデルバックエンドに接続&lt;/td&gt;
          &lt;td&gt;Claude Codeのコストを下げたい人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Hermes Agent&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/04/12/hermes-agent-intro-guide-vs-openclaw/&#34; &gt;Hermes Agentとは：概要、利点、クイックスタート、OpenClaw比較&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/NousResearch/hermes-agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NousResearch/hermes-agent&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;ツール呼び出しとタスク実行に対応するローカルAgentフレームワーク&lt;/td&gt;
          &lt;td&gt;ローカルAgentを動かしたい人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;OpenHarness&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/04/12/openharness-basic-functions/&#34; &gt;OpenHarnessとは：オープンソースAgent Harnessでできること&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/HKUDS/OpenHarness&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;HKUDS/OpenHarness&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Agent HarnessとマルチAgent実行フレームワーク&lt;/td&gt;
          &lt;td&gt;Agent編成を研究する人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CodexBridge&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/13/codexbridge-openai-compatible-api/&#34; &gt;Codexを中国系大模型に接続する：OpenAI互換APIとCodexBridge&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/begonia599/CodexBridge&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;begonia599/CodexBridge&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;CodexをOpenAI互換モデルAPIに接続&lt;/td&gt;
          &lt;td&gt;Codexを国内モデルにつなぎたい人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ccx&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/13/ccx-ai-api-proxy-gateway/&#34; &gt;CCXでCodex向けOpenAI互換APIを一元管理する&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/BenedictKing/ccx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;BenedictKing/ccx&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Claude、Codex、GeminiなどのAPI proxy管理&lt;/td&gt;
          &lt;td&gt;複数モデルを切り替える人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;cc-haha&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/14/cc-haha-claude-code-desktop-workbench/&#34; &gt;cc-haha：Claude Codeをデスクトップワークスペースにする&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NanmiCoder/cc-haha&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Claude Codeのデスクトップ作業台とComputer Use入口&lt;/td&gt;
          &lt;td&gt;GUIが好きなClaude Codeユーザー&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek-TUI&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/16/deepseek-tui-terminal-coding-agent/&#34; &gt;DeepSeek-TUI：DeepSeek V4をターミナルのコーディングAgentにする&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Hmbown/DeepSeek-TUI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Hmbown/DeepSeek-TUI&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;ターミナルでDeepSeekコーディングAgentを動かす&lt;/td&gt;
          &lt;td&gt;DeepSeekとCLIユーザー&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Open Design&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/18/open-design-open-source-claude-design-alternative/&#34; &gt;Open Design：Claude CodeとCodexをAIデザインツールにする&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/nexu-io/open-design&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;nexu-io/open-design&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Claude Code / Codexをデザイン生成に参加させる&lt;/td&gt;
          &lt;td&gt;Agentでデザインプロトタイプを作りたい人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;agentmemory&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/19/agentmemory-persistent-memory-ai-coding-agents/&#34; &gt;agentmemory：Claude Code、Codex、Cursorに永続メモリを追加する&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/rohitg00/agentmemory&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;rohitg00/agentmemory&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Coding Agentに永続メモリを追加&lt;/td&gt;
          &lt;td&gt;長期プロジェクトを保守する開発者&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Graphify&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/21/safishamsi-graphify-ai-code-knowledge-graph/&#34; &gt;Graphify：コードベースをAIが問い合わせできる知識グラフにする&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/safishamsi/graphify&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;safishamsi/graphify&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;コードベースを知識グラフ化し、重複したファイル読込を減らす&lt;/td&gt;
          &lt;td&gt;大規模コードベースのユーザー&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CC Switch&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/06/cc-switch-ai-cli-manager/&#34; &gt;CC Switch：Claude Code、Codex、Gemini CLI、OpenClawをまとめて管理する&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/farion1231/cc-switch&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;farion1231/cc-switch&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;複数AI CLIとアカウント/設定の切替管理&lt;/td&gt;
          &lt;td&gt;複数CLIを併用する人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Warp&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/07/warpdotdev-warp-open-source-agentic-terminal/&#34; &gt;Warpオープンソース化：ターミナルからAgentic Development Environmentへ&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/warpdotdev/warp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;warpdotdev/warp&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Agenticターミナルと開発環境&lt;/td&gt;
          &lt;td&gt;ターミナルをよく使う人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;opencode&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/08/opencode-open-source-ai-coding-agent/&#34; &gt;opencode、Claude Code、Codexの違い：オープンソースAIコーディングツールガイド&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/anomalyco/opencode&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;anomalyco/opencode&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;オープンソースAIコーディングAgent&lt;/td&gt;
          &lt;td&gt;Claude Code / Codex代替を探す人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;9Router&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/08/9router-ai-coding-router-token-saver/&#34; &gt;9Router：Claude Code、Codex、Cursorを一つのAIルーターにつなぐ&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/decolua/9router&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;decolua/9router&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;AIコーディングモデルのルーティングとtokenコスト制御&lt;/td&gt;
          &lt;td&gt;複数ツール、複数モデルのユーザー&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;goose&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/08/goose-open-source-ai-agent-desktop-cli-api/&#34; &gt;goose：デスクトップ、CLI、API一体のオープンソースAI Agent&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/aaif-goose/goose&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;aaif-goose/goose&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;デスクトップ、CLI、API対応のオープンソースAgent&lt;/td&gt;
          &lt;td&gt;汎用Agentワークスペースが欲しい人&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;agentスキルとワークフロー&#34;&gt;Agentスキルとワークフロー
&lt;/h2&gt;&lt;p&gt;このカテゴリは、AI能力を再利用可能なスキル、プロセス、仕様に固定することに焦点を当てます。&lt;strong&gt;7&lt;/strong&gt; 件のプロジェクトがあります。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;プロジェクト&lt;/th&gt;
          &lt;th&gt;記事&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;主な用途&lt;/th&gt;
          &lt;th&gt;向いている人&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;mattpocock/skills&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/15/matt-pocock-skills-ai-engineering-workflow/&#34; &gt;Vibe Codingを拒否する：Matt PocockのskillsリポジトリがAIコーディングに工程制約を加える&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mattpocock/skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;mattpocock/skills&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;SkillsでAIコーディングの流れを制約する&lt;/td&gt;
          &lt;td&gt;Agentに工程規律を加えたい人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Superpowers&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/15/obra-superpowers-agentic-skills-framework/&#34; &gt;Superpowers：Coding Agentを工程フローに戻すスキルフレームワーク&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/obra/superpowers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;obra/superpowers&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Agentic skills frameworkと開発方法論&lt;/td&gt;
          &lt;td&gt;Coding Agentを体系的に使いたい人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Prompt-Vault&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/15/prompt-vault-coding-prompt-benchmark/&#34; &gt;Prompt-Vault：AIコーディング能力を試すPrompt仕様ライブラリ&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/w512/Prompt-Vault&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;w512/Prompt-Vault&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;AIコーディング評価用prompt仕様を集める&lt;/td&gt;
          &lt;td&gt;モデル/ツール評価者&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;web-video-presentation&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/15/web-video-presentation-agent-skill/&#34; &gt;web-video-presentation：記事を録画可能なWeb動画にするAgent Skill&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/ConardLi/garden-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ConardLi/garden-skills&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;記事を録画可能なWeb動画へ変換&lt;/td&gt;
          &lt;td&gt;コンテンツ制作者と自動化ユーザー&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;nuwa-skill&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/04/22/nuwa-skill-distill-how-someone-thinks/&#34; &gt;nuwa-skill：「人を蒸留する」を実行可能フローにする&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/nuwa-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;alchaincyf/nuwa-skill&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;人物の表現と思考フローをSkillで再現&lt;/td&gt;
          &lt;td&gt;スタイル型Agentを作る人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Scientific Agent Skills&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/17/scientific-agent-skills/&#34; &gt;Scientific Agent Skills：研究ワークフローをAI Agentに渡すスキル集&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/K-Dense-AI/scientific-agent-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;K-Dense-AI/scientific-agent-skills&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;科研ワークフロー向けSkill集&lt;/td&gt;
          &lt;td&gt;研究者、データ分析者、技術ライター&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;easy-vibe&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/16/easy-vibe-vibe-coding-learning-map/&#34; &gt;easy-vibe：Vibe Coding初心者向け学習マップ&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/datawhalechina/easy-vibe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;datawhalechina/easy-vibe&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Vibe Coding入門マップ&lt;/td&gt;
          &lt;td&gt;AIコーディング初心者&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;ragナレッジベースメモリ&#34;&gt;RAG、ナレッジベース、メモリ
&lt;/h2&gt;&lt;p&gt;このカテゴリは、文書検索、ナレッジベース構築、長期メモリ、構造化抽出を扱います。&lt;strong&gt;7&lt;/strong&gt; 件のプロジェクトがあります。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;プロジェクト&lt;/th&gt;
          &lt;th&gt;記事&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;主な用途&lt;/th&gt;
          &lt;th&gt;向いている人&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;LangExtract&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/01/google-langextract-llm-structured-data-extraction/&#34; &gt;Google LangExtract：LLMで長文から構造化データを抽出する&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/google/langextract&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/langextract&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;長文から構造化情報を抽出&lt;/td&gt;
          &lt;td&gt;情報抽出とデータ処理のユーザー&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;qmd&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/01/qmd-markdown-search-for-ai-agents/&#34; &gt;qmd：AI Agent向けローカルMarkdown文書検索&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/tobi/qmd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tobi/qmd&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;ローカルMarkdown文書検索&lt;/td&gt;
          &lt;td&gt;Markdownで知識管理する人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Firecrawl&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/04/15/firecrawl-ai-web-data-api/&#34; &gt;Firecrawl：AI Agent向けWeb検索、クロール、操作API&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/firecrawl/firecrawl&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;firecrawl/firecrawl&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Webクロール、検索、構造化データ入口&lt;/td&gt;
          &lt;td&gt;RAGとAgentデータ入口を作る人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RAGFlow&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/04/15/ragflow-rag-engine-guide/&#34; &gt;RAGFlow：オープンソースRAGエンジンの機能と使い方&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/infiniflow/ragflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;infiniflow/ragflow&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;オープンソースRAGエンジン&lt;/td&gt;
          &lt;td&gt;企業ナレッジベースと文書Q&amp;amp;Aユーザー&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;OpenHuman&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/15/openhuman-open-source-personal-ai-agent/&#34; &gt;OpenHuman：オープンソース個人AI Agentのデスクトップ路線&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/tinyhumansai/openhuman&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tinyhumansai/openhuman&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;ローカル優先の個人AI Agentとメモリ層&lt;/td&gt;
          &lt;td&gt;個人データを統合したい人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;OpenKB&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/17/openkb-llm-knowledge-base/&#34; &gt;OpenKB：文書を継続更新可能なLLMナレッジベースに編成する&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/OpenKB&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;VectifyAI/OpenKB&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;文書を更新可能なナレッジベースにする&lt;/td&gt;
          &lt;td&gt;文書ナレッジベースの保守者&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;PageIndex&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/20/vectifyai-pageindex-vectorless-rag/&#34; &gt;PageIndex：ベクトルDBなしの推論型RAG文書索引&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/PageIndex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;VectifyAI/PageIndex&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;ベクトルDBなしの推論型文書索引&lt;/td&gt;
          &lt;td&gt;新しいRAG手法に関心がある人&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;マルチモーダルとコンテンツ制作&#34;&gt;マルチモーダルとコンテンツ制作
&lt;/h2&gt;&lt;p&gt;このカテゴリは、画像、動画、文字起こし、コンテンツ配信を扱います。&lt;strong&gt;5&lt;/strong&gt; 件のプロジェクトがあります。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;プロジェクト&lt;/th&gt;
          &lt;th&gt;記事&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;主な用途&lt;/th&gt;
          &lt;th&gt;向いている人&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;rembg&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/04/19/rembg-background-removal-notes/&#34; &gt;rembg：ローカル画像背景除去ツール&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/danielgatis/rembg&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;danielgatis/rembg&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;ローカル画像背景除去&lt;/td&gt;
          &lt;td&gt;EC、デザイン、画像処理ユーザー&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;awesome-gpt-image-2-prompts&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;GPT-Image 2プロンプト集：EC、ポスター、ポートレート、UI&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EvoLinkAI/awesome-gpt-image-2-prompts&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;GPT-Image 2のプロンプトと事例集&lt;/td&gt;
          &lt;td&gt;AI画像生成とプロンプトユーザー&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;faster-whisper&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/01/faster-whisper-speech-to-text/&#34; &gt;faster-whisper：より速いWhisper文字起こしエンジン&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/SYSTRAN/faster-whisper&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SYSTRAN/faster-whisper&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;高性能speech-to-text&lt;/td&gt;
          &lt;td&gt;字幕、文字起こし、音声処理ユーザー&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pixelle-Video&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/07/pixelle-video-ai-short-video-engine/&#34; &gt;Pixelle-Video：一つのテーマから短動画を生成するオープンソースAIエンジン&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/AIDC-AI/Pixelle-Video&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;AIDC-AI/Pixelle-Video&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;テーマから短動画を生成するワークフロー&lt;/td&gt;
          &lt;td&gt;短動画とAIGC制作者&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AiToEarn&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/19/aitoearn-ai-content-marketing-agent/&#34; &gt;投稿先が多すぎる？AiToEarnはAI Agentで制作者を助ける&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/yikart/AiToEarn&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;yikart/AiToEarn&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;複数平台への配信と制作者自動化&lt;/td&gt;
          &lt;td&gt;コンテンツ運営者と制作者&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;ローカルモデルと推論&#34;&gt;ローカルモデルと推論
&lt;/h2&gt;&lt;p&gt;このカテゴリは、ローカルモデル実行と推論実験を扱います。現在は少なめで、&lt;strong&gt;1&lt;/strong&gt; 件のプロジェクトがあります。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;プロジェクト&lt;/th&gt;
          &lt;th&gt;記事&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;主な用途&lt;/th&gt;
          &lt;th&gt;向いている人&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;ds4&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/11/deepseek-v4-flash-ds4-metal/&#34; &gt;DeepSeek 4をローカル実行：Apple Silicon MacでのAntirez ds4の試み&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/antirez/ds4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;antirez/ds4&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Apple SiliconでDeepSeek 4を試す&lt;/td&gt;
          &lt;td&gt;ローカルモデルと推論実験ユーザー&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;垂直アプリケーションと自動化&#34;&gt;垂直アプリケーションと自動化
&lt;/h2&gt;&lt;p&gt;このカテゴリは、AgentやAI能力を金融、取引、ブラウザ、デスクトップ、EC監視などの具体的な場面に適用します。&lt;strong&gt;7&lt;/strong&gt; 件のプロジェクトがあります。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;プロジェクト&lt;/th&gt;
          &lt;th&gt;記事&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;主な用途&lt;/th&gt;
          &lt;th&gt;向いている人&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;TradingAgents-CN&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/01/tradingagents-cn-multi-agent-financial-research-framework/&#34; &gt;TradingAgents-CN：中国語ユーザー向けマルチAgent金融取引研究フレームワーク&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/hsliuping/TradingAgents-CN&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;hsliuping/TradingAgents-CN&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;マルチAgent金融取引研究フレームワーク&lt;/td&gt;
          &lt;td&gt;クオンツ、金融、Agent研究者&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;FinceptTerminal&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/01/finceptterminal-open-source-financial-terminal/&#34; &gt;FinceptTerminal：オープンソース金融端末、量化研究、AI Agentワークスペース&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Fincept-Corporation/FinceptTerminal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Fincept-Corporation/FinceptTerminal&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;金融端末、量化研究、AI Agent作業台&lt;/td&gt;
          &lt;td&gt;金融分析と量化ユーザー&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Anthropic financial-services&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/16/anthropic-financial-services-agent-templates/&#34; &gt;Anthropic financial-services：金融Agentシナリオを再利用可能テンプレートにする&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/anthropics/financial-services&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;anthropics/financial-services&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;金融サービスAgentテンプレート&lt;/td&gt;
          &lt;td&gt;金融AI方案を作る人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ai-goofish-monitor&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/17/ai-goofish-monitor/&#34; &gt;ai-goofish-monitor：AIでXianyu商品を自動監視するシステム&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Usagi-org/ai-goofish-monitor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Usagi-org/ai-goofish-monitor&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;AI商品監視とXianyu自動化&lt;/td&gt;
          &lt;td&gt;中古取引監視ユーザー&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CloakBrowser&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/19/cloakbrowser-stealth-chromium-browser-automation/&#34; &gt;CloakBrowser：PlaywrightとPuppeteer向けのより人間らしいブラウザ&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/CloakHQ/CloakBrowser&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CloakHQ/CloakBrowser&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;より人間らしいブラウザ自動化環境&lt;/td&gt;
          &lt;td&gt;ブラウザ自動化とAgent操作&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;UI-TARS-desktop&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/19/ui-tars-desktop-multimodal-ai-agent-stack/&#34; &gt;AIにPCを操作させる？UI-TARS-desktopがデスクトップ、ブラウザ、ツールを接続&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/bytedance/UI-TARS-desktop&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;bytedance/UI-TARS-desktop&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;デスクトップ、ブラウザ、ツール操作Agent&lt;/td&gt;
          &lt;td&gt;AIにPC操作を任せたい人&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AI-Trader&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/19/ai-trader-agent-native-trading-platform/&#34; &gt;AI-Traderとは：AI Agentが取引シグナルを出し、模擬取引する平台&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/HKUDS/AI-Trader&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;HKUDS/AI-Trader&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;AI Agentの取引シグナルと模擬取引&lt;/td&gt;
          &lt;td&gt;金融Agentと取引研究者&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;aiアプリ開発基盤&#34;&gt;AIアプリ開発基盤
&lt;/h2&gt;&lt;p&gt;このカテゴリは、AIアプリとAgentツールチェーン構築に必要な基盤コンポーネントを提供します。&lt;strong&gt;3&lt;/strong&gt; 件のプロジェクトがあります。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;プロジェクト&lt;/th&gt;
          &lt;th&gt;記事&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;主な用途&lt;/th&gt;
          &lt;th&gt;向いている人&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Prompt Optimizer&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/01/prompt-optimizer-prompt-engineering-tool/&#34; &gt;Prompt Optimizer：オープンソースのプロンプト最適化、テスト、MCPツール&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/linshenkx/prompt-optimizer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;linshenkx/prompt-optimizer&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;プロンプト最適化、テスト、MCPツール&lt;/td&gt;
          &lt;td&gt;Prompt engineeringとアプリ調整のユーザー&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Playwright CLI&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/04/12/playwright-cli-getting-started/&#34; &gt;Playwright CLI入門：インストール、Skills、セッション、よく使うコマンド&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;microsoft/playwright-cli&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;coding agent向けブラウザ自動化CLI&lt;/td&gt;
          &lt;td&gt;ブラウザ操作が必要なAgentユーザー&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Vercel AI SDK&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/17/vercel-ai-sdk-typescript-agent-toolkit/&#34; &gt;Vercel AI SDKとは：TypeScript開発者向けAIアプリ統一ツールキット&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/vercel/ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;vercel/ai&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;TypeScript AIアプリ開発SDK&lt;/td&gt;
          &lt;td&gt;フロントエンドとフルスタック開発者&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
</description>
        </item>
        <item>
        <title>PageIndexとは？ベクトルDBを使わない推論型RAG文書インデックスを解説</title>
        <link>https://knightli.com/ja/2026/05/20/vectifyai-pageindex-vectorless-rag/</link>
        <pubDate>Wed, 20 May 2026 23:51:37 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/20/vectifyai-pageindex-vectorless-rag/</guid>
        <description>&lt;p&gt;&lt;code&gt;VectifyAI/PageIndex&lt;/code&gt; は興味深いRAGプロジェクトです。「また別のベクトルDBを作る」ことから始めるのではなく、長文書をまず目次のようなツリー構造に整理し、そのツリーに沿ってLLMに推論型検索を行わせます。&lt;/p&gt;
&lt;p&gt;プロジェクトURL：&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/PageIndex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;VectifyAI/PageIndex&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;この記事の整理時点で、GitHubページでは約31.8k stars、2.7k forksが表示されており、ライセンスはMITです。READMEでの位置づけは &lt;code&gt;Vectorless, Reasoning-based RAG&lt;/code&gt;、つまりベクトルDBを使わない、推論ベースのRAGです。&lt;/p&gt;
&lt;h2 id=&#34;何を解決しようとしているのか&#34;&gt;何を解決しようとしているのか
&lt;/h2&gt;&lt;p&gt;従来のRAGでよくある流れは、文書をチャンク化し、ベクトル化し、ベクトルDBに格納し、類似度検索で断片を取得するというものです。この方法はシンプルで汎用的、かつ成熟していますが、長い専門文書ではいくつかの問題が起きやすくなります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;類似度は本当の関連性と同じではない。&lt;/li&gt;
&lt;li&gt;チャンク化によって文書構造が分断され、章や節の関係が失われる。&lt;/li&gt;
&lt;li&gt;検索結果の説明性が弱く、なぜその箇所がヒットしたのか説明しにくい。&lt;/li&gt;
&lt;li&gt;財務報告、規制文書、法律文書、技術マニュアルのような資料では、章をまたいだ推論が必要になることが多い。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;PageIndexの考え方は逆です。まず文書を意味的なツリーとして構成し、モデルが人間のように目次を読み、章を開き、階層的に関連内容を探します。&lt;/p&gt;
&lt;h2 id=&#34;pageindexの基本ワークフロー&#34;&gt;PageIndexの基本ワークフロー
&lt;/h2&gt;&lt;p&gt;READMEでは、PageIndexの検索は二つのステップに分けられています。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;文書に対して &lt;code&gt;Table-of-Contents&lt;/code&gt; のようなツリー構造インデックスを生成する。&lt;/li&gt;
&lt;li&gt;ツリー検索によって reasoning-based retrieval を行う。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;このツリーは単なるファイルディレクトリではなく、LLMが使うための文書構造です。ノードにはタイトル、ページ範囲、要約、子ノードなどの情報が含まれます。これにより、モデルは質問に答えるときに大量のバラバラなchunkへいきなり向き合う必要がありません。まずどの章に入るべきか判断し、その後さらに下へ検索できます。&lt;/p&gt;
&lt;p&gt;この方式は、構造が明確で内容が長い文書に向いています。たとえば次のような文書です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;財務報告やSEC filings。&lt;/li&gt;
&lt;li&gt;規制資料やコンプライアンス文書。&lt;/li&gt;
&lt;li&gt;学術教材や論文。&lt;/li&gt;
&lt;li&gt;法律文書。&lt;/li&gt;
&lt;li&gt;技術マニュアルや製品ドキュメント。&lt;/li&gt;
&lt;li&gt;モデルのコンテキストウィンドウを超える大型PDF。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;従来のベクトルragとの違い&#34;&gt;従来のベクトルRAGとの違い
&lt;/h2&gt;&lt;p&gt;PageIndexの主な特徴は五つにまとめられます。&lt;/p&gt;
&lt;p&gt;第一に、Vector DBを必要としません。ベクトル類似度検索だけに頼るのではなく、文書構造とLLMの推論によって内容を特定します。&lt;/p&gt;
&lt;p&gt;第二に、従来型のchunkingを行いません。文書は固定長の断片ではなく、自然な章や節に沿って整理されます。&lt;/p&gt;
&lt;p&gt;第三に、説明性が高くなります。検索経路をページ、章、ツリーノードに対応させられるため、「ベクトル類似度でこの段落に当たった」より追跡しやすくなります。&lt;/p&gt;
&lt;p&gt;第四に、検索はコンテキスト認識型です。質問、会話履歴、ドメイン背景がツリー検索の経路に影響します。&lt;/p&gt;
&lt;p&gt;第五に、人間の専門家が文書を読む方法に近いことです。人は普通、文書全体を小さく切って類似度を計算するのではなく、まず目次を見て、章を特定し、最後に詳細を読みます。&lt;/p&gt;
&lt;p&gt;これはベクトルDBに価値がないという意味ではありません。より正確には、PageIndexは「意味的な類似だけでは足りず、構造と推論が必要になる」長文書検索に向いた方式です。&lt;/p&gt;
&lt;h2 id=&#34;ローカルでの実行方法&#34;&gt;ローカルでの実行方法
&lt;/h2&gt;&lt;p&gt;READMEにはローカルでのセルフホスト方法が示されています。まず依存関係をインストールします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip3 install --upgrade -r requirements.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;次に、プロジェクトのルートディレクトリに &lt;code&gt;.env&lt;/code&gt; を作成し、LLM API keyを書き込みます。プロジェクトは &lt;code&gt;LiteLLM&lt;/code&gt; によって複数モデルをサポートします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_openai_key_here
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;PDFからPageIndex構造を生成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 run_pageindex.py --pdf_path /path/to/your/document.pdf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Markdownも処理できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 run_pageindex.py --md_path /path/to/your/document.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;主なオプション引数は次の通りです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--model
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--toc-check-pages
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--max-pages-per-node
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--max-tokens-per-node
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--if-add-node-id
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--if-add-node-summary
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--if-add-doc-description
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;READMEでは、ローカルのオープンソース版は標準的なPDF解析を使うとも説明されています。複雑なPDFでは、プロジェクト側のクラウドサービスが拡張OCR、ツリー構築、検索パイプラインを提供します。&lt;/p&gt;
&lt;h2 id=&#34;agentic-vectorless-ragの例&#34;&gt;Agentic Vectorless RAGの例
&lt;/h2&gt;&lt;p&gt;このプロジェクトには、セルフホストしたPageIndexとOpenAI Agents SDKを使う agentic vectorless RAG の例もあります。オプション依存関係を入れて実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip3 install openai-agents
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 examples/agentic_vectorless_rag_demo.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;この例の価値は、PageIndexを「文書ツリーを生成する」段階から「Agentが文書ツリーを使って検索する」段階へ進めていることです。企業ナレッジベース、財務報告Q&amp;amp;A、規制文書Q&amp;amp;A、技術文書Agentを作っているなら、READMEだけを読むより、この例を一度動かす価値があります。&lt;/p&gt;
&lt;h2 id=&#34;クラウドサービスmcpapi&#34;&gt;クラウドサービス、MCP、API
&lt;/h2&gt;&lt;p&gt;PageIndexは単なるGitHub repoではありません。プロジェクトページにはいくつかの入口も示されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;セルフホスト：オープンソースコードをローカルで実行し、実験や制御された展開に向く。&lt;/li&gt;
&lt;li&gt;Chat Platform：ChatGPT風の文書分析プラットフォーム。&lt;/li&gt;
&lt;li&gt;MCP / API：既存のAgentや自動化フローへ組み込みやすい。&lt;/li&gt;
&lt;li&gt;Enterprise：プライベートまたはオンプレミス展開向け。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは単なるdemoではなく、「推論型文書検索」を統合可能な文書インテリジェンス基盤にしようとしていることを示しています。&lt;/p&gt;
&lt;h2 id=&#34;向いている場面&#34;&gt;向いている場面
&lt;/h2&gt;&lt;p&gt;PageIndexは次のようなタスクに向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;長いPDFのQ&amp;amp;A。&lt;/li&gt;
&lt;li&gt;財務報告、年次報告、目論見書、規制文書の分析。&lt;/li&gt;
&lt;li&gt;法律・コンプライアンス文書検索。&lt;/li&gt;
&lt;li&gt;技術マニュアルQ&amp;amp;A。&lt;/li&gt;
&lt;li&gt;複数章にまたがる教材や論文の検索。&lt;/li&gt;
&lt;li&gt;説明可能な検索経路が必要な企業ナレッジベース。&lt;/li&gt;
&lt;li&gt;Agentに構造化された文書コンテキストを提供すること。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;資料が短い、構造がほとんどない、または普通のFAQに近い場合は、従来のembedding + vector DBで十分かもしれません。PageIndexの利点は、長文書、強い構造、専門領域、推論が必要な質問でより出やすくなります。&lt;/p&gt;
&lt;h2 id=&#34;注意点&#34;&gt;注意点
&lt;/h2&gt;&lt;p&gt;第一に、PageIndexは依然としてLLMに依存します。ツリー構築、要約、検索品質は、モデル能力、プロンプト、文書解析品質の影響を受けます。&lt;/p&gt;
&lt;p&gt;第二に、ローカル版は標準的なPDF解析を使います。複雑なスキャン文書、図表が多いPDF、レイアウトが乱れた資料では、OCRやより強い前処理が必要になる場合があります。&lt;/p&gt;
&lt;p&gt;第三に、ベクトルDBなしはゼロコストを意味しません。ツリー構築自体もモデル呼び出しと時間を消費します。大規模文書コレクションでは特にそうです。&lt;/p&gt;
&lt;p&gt;第四に、PageIndexは文書構造インデックスと推論検索のフレームワークに近く、すべてのRAG技術スタックを直接置き換えるものではありません。実際の本番環境では、ベクトル検索、キーワード検索、権限制御、キャッシュ、監査システムと組み合わせて使うこともあります。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;PageIndexの面白さは、RAGの重点を「テキスト類似度による取得」から「文書構造 + LLM推論」へ移していることです。長文書や専門文書では、この方向は注目に値します。&lt;/p&gt;
&lt;p&gt;企業文書Q&amp;amp;A、財務報告分析、規制文書検索、技術マニュアルAgentを作っているなら、PageIndexは新しいRAGアーキテクチャの参考になります。最初からすべてを細かく切ってベクトルDBに入れるのではなく、まず文書に構造を与え、その構造に沿ってモデルに推論させるという考え方です。&lt;/p&gt;
&lt;p&gt;参考：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/PageIndex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub：VectifyAI/PageIndex&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Gemini 3.5 FlashとGemini Omniを無料で使う方法：一般ユーザーと開発者向け入口まとめ</title>
        <link>https://knightli.com/ja/2026/05/20/gemini-3-5-flash-omni-free-access/</link>
        <pubDate>Wed, 20 May 2026 23:13:35 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/20/gemini-3-5-flash-omni-free-access/</guid>
        <description>&lt;p&gt;GoogleがGemini 3.5 FlashとGemini Omniを公開したあと、実用面で重要なのはbenchmarkではなく、一般ユーザーや開発者が実際にどう使うか、どの入口が無料で、どの入口が低いハードルの試用にすぎないかです。&lt;/p&gt;
&lt;p&gt;まず結論です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;チャット、文章作成、画像理解、日常的な質問：まずGemini app。&lt;/li&gt;
&lt;li&gt;Gemini 3.5 Flashのパラメータ、プロンプト、マルチモーダル入力を試す：Google AI Studio。&lt;/li&gt;
&lt;li&gt;プログラムからGemini 3.5 Flashを呼び出す：AI StudioでAPI keyを作成。&lt;/li&gt;
&lt;li&gt;ターミナルで無料試用する：Gemini CLIを確認。&lt;/li&gt;
&lt;li&gt;Gemini Omniの動画編集を体験する：Gemini appとGoogle Flowを優先。&lt;/li&gt;
&lt;li&gt;本番利用する：無料枠に依存せず、有料APIまたはVertex AIへ移行。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;注意点として、無料枠、地域ごとの提供状況、サブスクリプション階層、モデル選択メニューは時間とともに変わります。この記事の執筆日は2026年5月20日です。正式に使う前に、Googleの最新ページを確認してください。&lt;/p&gt;
&lt;h2 id=&#34;gemini-35-flashを無料で使う方法1gemini-app&#34;&gt;Gemini 3.5 Flashを無料で使う方法1：Gemini app
&lt;/h2&gt;&lt;p&gt;最も簡単な入口はGemini appです。&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://gemini.google.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://gemini.google.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;使い方はシンプルです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Geminiを開く。&lt;/li&gt;
&lt;li&gt;Googleアカウントでログインする。&lt;/li&gt;
&lt;li&gt;モデル選択で &lt;code&gt;3.5 Flash&lt;/code&gt; を探す。&lt;/li&gt;
&lt;li&gt;そのまま対話を始める。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;この入口は一般ユーザーに向いています。文章作成、要約、画像理解、ファイル内容の分析、日常的な質問、簡単な計画づくりに使えます。公開情報によると、Gemini 3.5 Flashは世界中のユーザー向けに提供されており、Geminiのモデル選択メニューから選べます。&lt;/p&gt;
&lt;p&gt;制限も明確です。無料ユーザーには通常、1日のメッセージ数、地域、機能の制限があります。上限を超えた場合は、枠が回復するのを待つか、サブスクリプションをアップグレードする必要があります。&lt;/p&gt;
&lt;h2 id=&#34;gemini-35-flashを無料で使う方法2google-ai-studio&#34;&gt;Gemini 3.5 Flashを無料で使う方法2：Google AI Studio
&lt;/h2&gt;&lt;p&gt;単にチャットしたいのではなく、プロンプトを調整したり、パラメータを見たり、構造化出力を試したりしたい場合は、Google AI Studioのほうが適しています。&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://aistudio.google.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://aistudio.google.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;基本的な流れは次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Google AI Studioにログインする。&lt;/li&gt;
&lt;li&gt;新しいpromptを作成する。&lt;/li&gt;
&lt;li&gt;モデル選択で &lt;code&gt;gemini-3.5-flash&lt;/code&gt; を選ぶ。&lt;/li&gt;
&lt;li&gt;プロンプトを入力して実行する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;AI Studioの利点は、制御できる範囲が広いことです。温度、システム指示、構造化出力、複数画像入力を調整でき、試したプロンプトをコードやAPI呼び出しとして書き出すこともできます。&lt;/p&gt;
&lt;p&gt;開発者にとって、AI Studioは無料の実験台です。ここでプロンプトと入力形式を整えてからAPI連携に進むと、無駄な枠消費を減らせます。&lt;/p&gt;
&lt;h2 id=&#34;gemini-35-flashを無料で使う方法3無料api-key&#34;&gt;Gemini 3.5 Flashを無料で使う方法3：無料API key
&lt;/h2&gt;&lt;p&gt;開発者が最も気にするのはAPIです。AI Studioでは、&lt;code&gt;gemini-3.5-flash&lt;/code&gt; を呼び出すためのGemini API keyを作成できます。&lt;/p&gt;
&lt;p&gt;基本的な流れは次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Google AI Studioを開く。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Get API key&lt;/code&gt; を探す。&lt;/li&gt;
&lt;li&gt;プロジェクトを選ぶか作成する。&lt;/li&gt;
&lt;li&gt;API keyを作成する。&lt;/li&gt;
&lt;li&gt;keyをローカルの環境変数に保存する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Pythonの例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;google&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;environ&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;GEMINI_API_KEY&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;generate_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gemini-3.5-flash&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Gemini 3.5 Flashがどのような用途に向いているか、3文で説明してください。&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Node.jsの例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GoogleGenAI&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;@google/genai&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;ai&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GoogleGenAI&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;apiKey&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;process&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;env&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;GEMINI_API_KEY&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;ai&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;generateContent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;gemini-3.5-flash&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Gemini 3.5 Flashがどのような用途に向いているか、3文で説明してください。&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;curl&lt;/code&gt; の例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -H &lt;span class=&#34;s2&#34;&gt;&amp;#34;x-goog-api-key: &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$GEMINI_API_KEY&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -H &lt;span class=&#34;s2&#34;&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;{&amp;#34;contents&amp;#34;:[{&amp;#34;parts&amp;#34;:[{&amp;#34;text&amp;#34;:&amp;#34;Hello Gemini 3.5 Flash&amp;#34;}]}]}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;公開情報では、AI Studioの無料枠はGemini Flashモデルに一定の1日あたりリクエスト枠を提供することが多いとされています。時期、地域、アカウント状態によって異なり、よくある説明には1日約1,500リクエスト、分あたりリクエスト制限、token制限などがあります。これらの数字を本番計画に固定してはいけません。正式公開前にはGoogle AIの最新の料金と制限ページを確認してください。&lt;/p&gt;
&lt;h2 id=&#34;gemini-35-flashを無料で使う方法4gemini-cli&#34;&gt;Gemini 3.5 Flashを無料で使う方法4：Gemini CLI
&lt;/h2&gt;&lt;p&gt;コマンドラインが好きなら、Gemini CLIを見てみる価値があります。臨時スクリプト、コードベースの要約、ファイル読み取り、ターミナルでの素早い質問に向いています。&lt;/p&gt;
&lt;p&gt;通常のインストール方法は次の通りです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @google/gemini-cli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;その後、実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gemini
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;CLIは個人開発者の日常利用に向いており、本番統合には向いていません。本番環境ではAPI key、サービスアカウント、権限制御、監査可能な呼び出し方式を使うべきです。&lt;/p&gt;
&lt;h2 id=&#34;gemini-omniを無料または低いハードルで使う方法gemini-appとgoogle-flow&#34;&gt;Gemini Omniを無料または低いハードルで使う方法：Gemini appとGoogle Flow
&lt;/h2&gt;&lt;p&gt;Gemini Omniは動画制作と編集に向けたマルチモーダルモデルです。中心的な機能は通常のテキストQ&amp;amp;Aではなく、自然言語で動画を複数回編集し、画像、テキスト、動画、音声などの入力を参照することです。&lt;/p&gt;
&lt;p&gt;Google DeepMindのページでは、次の入口が示されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gemini app。&lt;/li&gt;
&lt;li&gt;Google Flow。&lt;/li&gt;
&lt;li&gt;YouTube Shorts。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ページでは、Google AIのサブスクリプションが必要であり、機能は契約階層や地域によって変わるとも説明されています。そのため、Gemini Omniの「無料利用」は慎重に理解する必要があります。一部の入口では無料ユーザーが一部機能を見たり試したりできる可能性がありますが、完全な動画編集機能にはサブスクリプション、地域提供、段階的ロールアウトが必要な場合があります。&lt;/p&gt;
&lt;p&gt;試してみたいだけなら、次の順番がおすすめです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まずGemini appを開き、Gemini Omniまたは関連する動画編集入口があるか確認する。&lt;/li&gt;
&lt;li&gt;次にGoogle Flowを開く：&lt;a class=&#34;link&#34; href=&#34;https://flow.google/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://flow.google/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ショート動画を作る場合は、YouTube ShortsにOmni関連の編集機能が出ているか確認する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;入口が見えない場合、通常は操作ミスではありません。アカウント、地域、サブスクリプション階層、ロールアウト対象がまだ条件を満たしていないだけのことがあります。&lt;/p&gt;
&lt;h2 id=&#34;gemini-omniに向いている使い方&#34;&gt;Gemini Omniに向いている使い方
&lt;/h2&gt;&lt;p&gt;Gemini Omniは通常のチャットより、クリエイター向けです。&lt;/p&gt;
&lt;p&gt;次のような使い方を試せます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;動画をアップロードまたは選択し、スタイルを変更する。&lt;/li&gt;
&lt;li&gt;動画内の特定の動きをより誇張する。&lt;/li&gt;
&lt;li&gt;参照画像を使って、シーン内の物体やキャラクターを置き換える。&lt;/li&gt;
&lt;li&gt;複数回に分けてカメラ、動き、環境、スタイルを修正する。&lt;/li&gt;
&lt;li&gt;スケッチ、参照画像、音声、動画を組み合わせて新しい出力を作る。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;プロンプトは編集者への指示のように書けます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;元の動画の人物と部屋の構造はそのままにして、鏡に触れた後の効果を液体の波紋に変えてください。動きは自然にし、光が急に変わらないようにしてください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;複数回編集する場合、一度に多くの要求を詰め込まないほうが安定します。より安全な進め方は次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まず主体の動きを変える。&lt;/li&gt;
&lt;li&gt;次にスタイルを変える。&lt;/li&gt;
&lt;li&gt;次にカメラ角度を変える。&lt;/li&gt;
&lt;li&gt;最後に音、文字、リズムを調整する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;こうすると一貫性を保ちやすく、どの段階で問題が出たかも特定しやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;無料利用で踏みやすい落とし穴&#34;&gt;無料利用で踏みやすい落とし穴
&lt;/h2&gt;&lt;p&gt;第一に、無料枠は本番枠ではありません。無料API keyはテスト、個人工具、プロトタイプに向いていますが、安定したサービスを約束する用途には向きません。&lt;/p&gt;
&lt;p&gt;第二に、機密データを無料または第三者の入口に送らないことです。未公開コード、顧客情報、契約書、キー、財務表、内部文書は特に注意が必要です。&lt;/p&gt;
&lt;p&gt;第三に、データ利用設定を確認することです。無料枠には異なるデータ利用ポリシーがある場合があります。利用前にAI StudioやGoogleアカウントの関連設定を確認してください。&lt;/p&gt;
&lt;p&gt;第四に、動画機能は通常、テキスト機能より制限が強くなります。Gemini Omniのような動画編集機能は、サブスクリプション、地域、待ち行列、長さ、解像度、コンテンツ安全ポリシーの影響を受ける可能性があります。&lt;/p&gt;
&lt;p&gt;第五に、第三者の「無制限無料API」には注意が必要です。多くのゲートウェイは速度制限、リクエスト転送、ログ記録、不透明な支払い方法を伴います。機密タスクでは使わないほうが安全です。&lt;/p&gt;
&lt;h2 id=&#34;どの入口を選ぶべきか&#34;&gt;どの入口を選ぶべきか
&lt;/h2&gt;&lt;p&gt;一般ユーザーなら：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gemini 3.5 Flash：Gemini appを使う。&lt;/li&gt;
&lt;li&gt;Gemini Omni：まずGemini app、次にGoogle Flowを見る。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;クリエイターなら：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Google FlowでOmniの動画ワークフローを試す。&lt;/li&gt;
&lt;li&gt;Gemini appで脚本、絵コンテ、プロンプト、素材説明を作る。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;開発者なら：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI Studioでプロンプトをデバッグする。&lt;/li&gt;
&lt;li&gt;API keyで &lt;code&gt;gemini-3.5-flash&lt;/code&gt; を組み込む。&lt;/li&gt;
&lt;li&gt;Gemini CLIで個人用ターミナルワークフローを作る。&lt;/li&gt;
&lt;li&gt;本番環境ではVertex AIまたは有料APIを検討する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;企業なら：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;無料枠に依存しない。&lt;/li&gt;
&lt;li&gt;権限、ログ、監査、データ所在地、コンプライアンス、キー管理を重視する。&lt;/li&gt;
&lt;li&gt;動画生成と編集では、ウォーターマーク、コンテンツ審査、著作権フローも追加する。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Gemini 3.5 Flashの無料利用経路は比較的わかりやすいです。Gemini app、Google AI Studio、AI Studio API key、Gemini CLIはいずれも低いハードルの入口になります。チャット、文章作成、プログラミング、Agentプロトタイプ、マルチモーダルテストに向いています。&lt;/p&gt;
&lt;p&gt;Gemini Omniの重点は動画編集とマルチモーダル制作です。主な入口はGemini app、Google Flow、YouTube Shortsですが、完全な機能はサブスクリプションや地域制限の影響を受けやすいでしょう。クリエイターがまず体験や概念検証を行うには向いていますが、最初から安定した本番サービスとして計画するには向いていません。&lt;/p&gt;
&lt;p&gt;最も堅実な戦略は、テキストとコードのタスクをまずGemini 3.5 Flashの無料枠で試し、動画制作はGemini appまたはFlowのGemini Omniで効果を確認し、本当に公開する段階で監査、課金、権限制御ができる正式な構成へ移行することです。&lt;/p&gt;
&lt;p&gt;参考：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://deepmind.google/models/gemini/flash/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google DeepMind：Gemini 3.5 Flash&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://deepmind.google/models/gemini-omni/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google DeepMind：Gemini Omni&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://apidog.com/blog/how-to-use-gemini-3-5-for-free/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Apidog：How to Use Gemini 3.5 Flash for Free&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.freedidi.com/24249.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;freedidi 原文リンク&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Gemini Omniとは？GoogleのAI動画マルチターン編集モデルを解説</title>
        <link>https://knightli.com/ja/2026/05/20/google-gemini-omni-video-editing/</link>
        <pubDate>Wed, 20 May 2026 23:11:58 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/20/google-gemini-omni-video-editing/</guid>
        <description>&lt;p&gt;Google DeepMindが &lt;code&gt;Gemini Omni&lt;/code&gt; のページを公開しました。位置づけは明確です。任意の入力からコンテンツを作るモデルで、現時点では動画を中心にしています。&lt;/p&gt;
&lt;p&gt;Nano Bananaが画像生成と編集に寄っているとすれば、Gemini Omniは動画向けのマルチモーダル編集モデルに近い存在です。ユーザーは自然言語で動画を段階的に編集でき、後続の変更は前回の変更結果を土台にしながら、シーン、人物、動き、画面の論理的一貫性を保とうとします。&lt;/p&gt;
&lt;p&gt;プロジェクトページ：&lt;a class=&#34;link&#34; href=&#34;https://deepmind.google/models/gemini-omni/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://deepmind.google/models/gemini-omni/&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;解決しようとしている問題&#34;&gt;解決しようとしている問題
&lt;/h2&gt;&lt;p&gt;従来の動画編集には、タイムライン、レイヤー、マスク、キーフレーム、カラーグレーディング、音声トラック、そして多くの手作業が必要です。AI動画生成ツールはプロンプトからクリップを生成できますが、よくある問題が二つあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一度生成した結果を細かく修正しにくい。&lt;/li&gt;
&lt;li&gt;複数回編集すると、人物、シーン、スタイル、動きがぶれやすい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Gemini Omniが狙っているのはこの二つ目の段階です。単に動画を生成するのではなく、編集者と会話するように、ユーザーが継続して修正を依頼できるようにします。&lt;/p&gt;
&lt;p&gt;ページでは、自然で段階的な会話を通じて任意の動画を編集できると説明されています。各編集は前回の結果に基づき、連続性のある統一されたシーンを維持することを目指します。&lt;/p&gt;
&lt;h2 id=&#34;主な機能&#34;&gt;主な機能
&lt;/h2&gt;&lt;p&gt;Gemini Omniの機能はいくつかに分けられます。&lt;/p&gt;
&lt;p&gt;一つ目は自然言語による動画編集です。ユーザーは動画の美的スタイル、動き、エフェクトの変更を直接依頼できます。たとえば、鏡を液体のように波立たせたり、人物を線画、フェルト人形、透明なホログラム風ワイヤーフレームに変えたり、環境全体を 3D voxel art に変換したりできます。&lt;/p&gt;
&lt;p&gt;二つ目は動作の再構成です。手で作った穴を拡大する、玩具に対応する動物の鳴き声を出させる、建物の照明を音楽に合わせて点灯させる、といった形で、動画内で起きること自体を変えられます。&lt;/p&gt;
&lt;p&gt;三つ目は参照画像に基づく実写動画の編集です。ユーザーは画像を参照として与え、建物、太陽、飛行物体、その他のオブジェクトを実写の動画シーンに配置するよう依頼できます。&lt;/p&gt;
&lt;p&gt;四つ目は複数回の編集で一貫性を保つことです。ページでは、バイオリン奏者を参照画像の環境に移動し、バイオリンを消し、さらにショットを肩越しの角度に変える連続編集の流れが紹介されています。一度きりのプロンプトよりも、実際の制作プロセスに近い使い方です。&lt;/p&gt;
&lt;p&gt;五つ目は複数入力の参照です。Gemini Omniは画像、テキスト、動画、音声などの入力を一つの出力に統合でき、スタイル転送、動作転送、キャラクター置換、スケッチから動画への変換などに対応します。&lt;/p&gt;
&lt;h2 id=&#34;なぜ世界知識を強調するのか&#34;&gt;なぜ世界知識を強調するのか
&lt;/h2&gt;&lt;p&gt;Googleはページの中で、Gemini Omniは単に「映像をリアルにする」だけではなく、Geminiの世界知識、物理的直感、歴史、科学、物語の論理を組み合わせると繰り返し強調しています。&lt;/p&gt;
&lt;p&gt;これは重要です。動画モデルが画質だけを追求すると、動きが不自然になったり、物体の関係が混乱したり、文字と映像が同期しなかったりしがちです。Gemini Omniの目標は、見た目だけでなく、ストーリー、物理、意味の面でも一貫した動画にすることです。&lt;/p&gt;
&lt;p&gt;ページの例には次のようなものがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ビー玉が連鎖反応のコースを転がる。&lt;/li&gt;
&lt;li&gt;claymationでタンパク質の折りたたみを説明する。&lt;/li&gt;
&lt;li&gt;stop motion風に海馬の働きを説明する。&lt;/li&gt;
&lt;li&gt;文字と画面内の物体を対応させて表示する。&lt;/li&gt;
&lt;li&gt;画面上の単語をリズムに合わせて一語ずつ表示する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの例から、Gemini Omniは単なるショート動画向けエフェクトツールではなく、知識表現、物語、映像と音声の生成をまとめようとしていることがわかります。&lt;/p&gt;
&lt;h2 id=&#34;veoflownano-bananaとの関係&#34;&gt;Veo、Flow、Nano Bananaとの関係
&lt;/h2&gt;&lt;p&gt;Googleの現在の製品ラインを見ると、Gemini Omniはマルチモーダルな制作と編集機能の入口に近い存在です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Veo&lt;/code&gt; は動画生成モデルそのものに近く、映画的な動画と音声生成を重視します。&lt;code&gt;Google Flow&lt;/code&gt; はクリエイター向けのAIクリエイティブスタジオで、ショット、素材、動画プロジェクトを整理する用途に向いています。&lt;code&gt;Nano Banana&lt;/code&gt; は画像作成と細部編集に寄っています。Gemini Omniは「任意の入力から一貫した出力へ」というマルチモーダル編集を重視し、とくに動画での自然言語による複数回制御を前面に出しています。&lt;/p&gt;
&lt;p&gt;簡単に整理すると、次のようになります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;高品質な動画を生成したいなら、Veoに注目。&lt;/li&gt;
&lt;li&gt;制作ワークフローの中で動画プロジェクトを整理したいなら、Google Flowに注目。&lt;/li&gt;
&lt;li&gt;画像を編集したいなら、Nano Bananaに注目。&lt;/li&gt;
&lt;li&gt;会話形式で動画を修正し、画像、テキスト、動画、音声を参照したいなら、Gemini Omniに注目。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;利用入口&#34;&gt;利用入口
&lt;/h2&gt;&lt;p&gt;ページで挙げられている入口は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gemini app。&lt;/li&gt;
&lt;li&gt;Google Flow。&lt;/li&gt;
&lt;li&gt;YouTube Shorts。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただしページでは、Google AIのサブスクリプションが必要であり、機能は契約プランや地域によって異なるとも説明されています。つまり、すべてのユーザーがすべての地域で完全な機能をすぐに使えるわけではありません。&lt;/p&gt;
&lt;p&gt;クリエイターにとっては、より完整な制作ワークスペースに近い Google Flow が特に重要な入口になりそうです。一般ユーザーにとっては、Gemini app と YouTube Shorts のほうが試しやすい入口になるでしょう。&lt;/p&gt;
&lt;h2 id=&#34;安全性とコンテンツ表示&#34;&gt;安全性とコンテンツ表示
&lt;/h2&gt;&lt;p&gt;Gemini Omniのページでは安全プロセスにも触れています。Gemini Omni Flashの開発では、社内の安全性および責任あるAIチームと協力し、自動評価、人間による評価、人間のレッドチーミング、自動レッドチーミング、リリース前の倫理・安全レビューが行われたと説明されています。&lt;/p&gt;
&lt;p&gt;コンテンツの透明性については、Gemini app、Google Flow、YouTubeでOmniを使って作成または編集されたコンテンツには、不可視の &lt;code&gt;SynthID&lt;/code&gt; デジタルウォーターマークと &lt;code&gt;C2PA Content Credentials&lt;/code&gt; が含まれるとされています。ユーザーはGemini appでコンテンツを検証でき、今後はChromeや検索にも拡張される予定です。&lt;/p&gt;
&lt;p&gt;これは動画モデルでは特に重要です。動画生成と動画編集がリアルになるほど、出所表示、悪用防止、検証ツールの重要性は高まります。&lt;/p&gt;
&lt;h2 id=&#34;向いているユーザー&#34;&gt;向いているユーザー
&lt;/h2&gt;&lt;p&gt;Gemini Omniは次のようなユーザーに向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自然言語で素早く動画を修正したいコンテンツクリエイター。&lt;/li&gt;
&lt;li&gt;スケッチ、参照画像、音声、動画素材を組み合わせて完成映像を作りたいデザインチーム。&lt;/li&gt;
&lt;li&gt;ショート動画、広告コンセプト、教育向け解説動画、製品ビジュアル案を作る人。&lt;/li&gt;
&lt;li&gt;Google FlowでAI動画ワークフローを構築したいクリエイター。&lt;/li&gt;
&lt;li&gt;マルチモーダル動画編集の限界を観察したい開発者や研究者。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし、すべての場面に向いているわけではありません。本格的な商業映像、ブランドのキービジュアル、映像制作、製品発表動画では、人によるレビュー、著作権確認、事実確認、素材管理が依然として必要です。AIはコンセプト生成や初稿の反復を大きく速めますが、最終確認の代わりにはなりません。&lt;/p&gt;
&lt;h2 id=&#34;gemini-omniをどう見るか&#34;&gt;Gemini Omniをどう見るか
&lt;/h2&gt;&lt;p&gt;Gemini Omniの意味は、AI動画を「一度きりの生成」から「会話しながら修正できる編集」へ進める点にあります。これは単に画質を上げることよりも、実際の制作フローに近い変化です。&lt;/p&gt;
&lt;p&gt;複数回編集、一貫性、参照素材の制御、音声と映像の同期、コンテンツ表示が安定すれば、AI動画ツールの使い方は変わります。ユーザーは長いプロンプトを一度書いて結果に賭けるのではなく、監督、編集者、デザイナーのように、シーン、動き、スタイル、物語を段階的に修正していくようになります。&lt;/p&gt;
&lt;p&gt;現時点では、実際の提供範囲、価格、地域制限、生成時間、解像度、著作権ポリシー、商用利用ルールを見ていく必要があります。一般的なクリエイターにとって最も実用的な観察点は、Google Flow と Gemini app の中で多段階の動画編集を安定して行えるかどうかです。&lt;/p&gt;
&lt;p&gt;参考：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://deepmind.google/models/gemini-omni/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google DeepMind：Gemini Omni&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>agentmemory：Claude Code、Codex、Cursorに永続メモリを持たせる</title>
        <link>https://knightli.com/ja/2026/05/19/agentmemory-persistent-memory-ai-coding-agents/</link>
        <pubDate>Tue, 19 May 2026 10:56:50 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/19/agentmemory-persistent-memory-ai-coding-agents/</guid>
        <description>&lt;p&gt;&lt;code&gt;rohitg00/agentmemory&lt;/code&gt; は、AIコーディングAgent向けの永続メモリシステムです。目的は明確で、Claude Code、Codex CLI、Cursor、Gemini CLI、OpenCode などのツールが、新しいセッションのたびにプロジェクト背景、アーキテクチャ判断、過去の問題を学び直さなくて済むようにすることです。&lt;/p&gt;
&lt;p&gt;プロジェクトURL：&lt;a class=&#34;link&#34; href=&#34;https://github.com/rohitg00/agentmemory&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/rohitg00/agentmemory&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;執筆時点では、GitHub API上で約1.3万 star、主要言語は TypeScript、ライセンスは Apache-2.0 でした。READMEでは &amp;ldquo;Persistent memory for AI coding agents&amp;rdquo; と説明されています。&lt;/p&gt;
&lt;h2 id=&#34;何を解決するのか&#34;&gt;何を解決するのか
&lt;/h2&gt;&lt;p&gt;AIコーディングAgentのよくある課題は、記憶がセッションごとに切れることです。今日Agentに認証の問題を修正させても、明日新しい会話を開くと、次のような情報を忘れていることがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;なぜその設計判断をしたのか。&lt;/li&gt;
&lt;li&gt;どのファイルを慎重に扱うべきか。&lt;/li&gt;
&lt;li&gt;以前どのバグを直したのか。&lt;/li&gt;
&lt;li&gt;どのコマンド、ツール、ローカルサービスを使うのか。&lt;/li&gt;
&lt;li&gt;チームのコーディング規約は何か。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;静的なメモも役立ちますが、実際の作業フローとつながらず忘れられがちです。agentmemory は、複数のAIコーディングツールで共有できるメモリ層を提供しようとしています。&lt;/p&gt;
&lt;h2 id=&#34;対応するagent&#34;&gt;対応するAgent
&lt;/h2&gt;&lt;p&gt;READMEでは、Claude Code、Codex CLI、Cursor、Gemini CLI、OpenCode、その他 MCP 対応ツールが挙げられています。ローカルサービス、MCP、hooks、連携機能を通じて、複数のアシスタントが同じプロジェクト文脈を共有する考え方です。&lt;/p&gt;
&lt;p&gt;ツールを切り替えるチームでは特に便利です。ある開発者は Cursor、別の開発者は Claude Code、自動化は Codex CLI という状況でも、共有メモリがあれば説明の繰り返しを減らせます。&lt;/p&gt;
&lt;h2 id=&#34;クイックスタート&#34;&gt;クイックスタート
&lt;/h2&gt;&lt;p&gt;グローバルインストール：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @agentmemory/agentmemory
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agentmemory
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agentmemory demo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agentmemory connect claude-code
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;npx でも実行できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx @agentmemory/agentmemory
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ローカルサービスは次で利用できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:3113
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;実際には、まずメモリサービスを起動し、コーディングアシスタントを接続して、開発中にAgentがプロジェクトメモリを読み書きする流れになります。&lt;/p&gt;
&lt;h2 id=&#34;静的なメモリファイルとの違い&#34;&gt;静的なメモリファイルとの違い
&lt;/h2&gt;&lt;p&gt;多くのチームはすでに &lt;code&gt;AGENTS.md&lt;/code&gt;、&lt;code&gt;CLAUDE.md&lt;/code&gt;、README、ローカルドキュメントを持っています。これらは便利ですが静的です。セッション履歴、タスク結果、繰り返し出てくる判断を自動的に扱うわけではありません。&lt;/p&gt;
&lt;p&gt;agentmemory は永続的な文脈サービスに近いものです。現在のプロジェクトやタスクに関係するメモリを保存し、必要なときに取り出すことを目指しています。ドキュメントを置き換えるというより、作業文脈を再利用しやすくする役割です。&lt;/p&gt;
&lt;h2 id=&#34;典型的な用途&#34;&gt;典型的な用途
&lt;/h2&gt;&lt;p&gt;たとえば次のような場面で役立ちます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロジェクトのセットアップ手順やよく使うコマンドを覚える。&lt;/li&gt;
&lt;li&gt;リスクのあるリファクタを避けた理由を記録する。&lt;/li&gt;
&lt;li&gt;flaky test やローカルサービスについてメモする。&lt;/li&gt;
&lt;li&gt;ドメイン用語を複数のAIアシスタントで共有する。&lt;/li&gt;
&lt;li&gt;新しいセッションでも前回の作業を続けやすくする。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;長期運用のプロダクト、モノレポ、暗黙知の多いプロジェクトでは特に価値があります。&lt;/p&gt;
&lt;h2 id=&#34;注意点&#34;&gt;注意点
&lt;/h2&gt;&lt;p&gt;まず、メモリの品質が重要です。古い情報や間違った情報が残ると、将来のAgentが同じ誤りを繰り返す可能性があります。重要なメモリは短く、明確で、レビューしやすく保つべきです。&lt;/p&gt;
&lt;p&gt;次に、プライバシーです。セキュリティモデルが明確でない限り、秘密情報、APIキー、顧客データ、本番環境の機密情報を保存すべきではありません。&lt;/p&gt;
&lt;p&gt;最後に、メモリはテストの代わりにはなりません。文脈理解は助けますが、最終的な保証はコードレビュー、テスト、検証から得る必要があります。&lt;/p&gt;
&lt;h2 id=&#34;向いている人&#34;&gt;向いている人
&lt;/h2&gt;&lt;p&gt;agentmemory は、複数のAIコーディングツールを使う開発者、大きなコードベースを扱うチーム、Agentに前回の作業を継続させたいユーザーに向いています。小さな単発スクリプトでは必須ではありません。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;agentmemory が面白いのは、メモリを小さなプロンプト技ではなく、AIコーディングのインフラとして扱っている点です。コーディングAgentが日常開発に入ってくるほど、永続的なプロジェクトメモリは現実的な不足ピースになります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>AI-Traderとは？AI Agentが売買シグナルを出し、ペーパートレードできるプラットフォーム</title>
        <link>https://knightli.com/ja/2026/05/19/ai-trader-agent-native-trading-platform/</link>
        <pubDate>Tue, 19 May 2026 10:56:50 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/19/ai-trader-agent-native-trading-platform/</guid>
        <description>&lt;p&gt;&lt;code&gt;HKUDS/AI-Trader&lt;/code&gt; は、AI Agent 向けの取引プラットフォームプロジェクトです。READMEでは &amp;ldquo;Agent-Native Trading Platform&amp;rdquo; と位置づけられており、AI Agent がプラットフォームに接続し、売買シグナルを公開し、議論に参加し、コピー取引を行い、市場データを利用できるようにすることを目指しています。&lt;/p&gt;
&lt;p&gt;プロジェクトURL：&lt;a class=&#34;link&#34; href=&#34;https://github.com/HKUDS/AI-Trader&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/HKUDS/AI-Trader&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;プラットフォームURL：&lt;a class=&#34;link&#34; href=&#34;https://ai4trade.ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://ai4trade.ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;執筆時点では、GitHub API上で約1.8万 star、主要言語は Python でした。リポジトリAPIでは明確なライセンス値が返っていなかったため、正式利用前にライセンス条件を確認する必要があります。&lt;/p&gt;
&lt;p&gt;この記事はオープンソースプロジェクトの紹介であり、投資助言ではありません。自動取引には実資金リスクがあります。どの戦略、シグナル、Agent出力も収益を保証しません。&lt;/p&gt;
&lt;h2 id=&#34;位置づけ&#34;&gt;位置づけ
&lt;/h2&gt;&lt;p&gt;AI-Trader の中心的な考え方は、人間に取引プラットフォームがあるなら、AI Agent にも専用の取引プラットフォームが必要になるかもしれない、というものです。&lt;/p&gt;
&lt;p&gt;READMEによると、任意の AI Agent はプラットフォームの Skill ファイルを読み、すばやく登録できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Read https://ai4trade.ai/skill/ai4trade and register on the platform. Compatibility alias: https://ai4trade.ai/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;接続後、Agent は売買シグナルの公開、コミュニティでの議論、優秀なトレーダー戦略のコピー、複数brokerへのシグナル同期、予測成績によるポイント獲得などができます。&lt;/p&gt;
&lt;h2 id=&#34;主な機能&#34;&gt;主な機能
&lt;/h2&gt;&lt;p&gt;READMEには次の機能が挙げられています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Instant Agent Integration：AI Agent の素早い接続。&lt;/li&gt;
&lt;li&gt;Collective Intelligence Trading：複数Agentによる取引アイデアの協議。&lt;/li&gt;
&lt;li&gt;Cross-Platform Signal Sync：複数プラットフォームへのシグナル同期。&lt;/li&gt;
&lt;li&gt;One-Click Copy Trading：選んだトレーダーやAgentをフォロー。&lt;/li&gt;
&lt;li&gt;Universal Market Access：株式、暗号資産、FX、オプション、先物など。&lt;/li&gt;
&lt;li&gt;Three Signal Types：戦略、操作、議論の3種類のシグナル。&lt;/li&gt;
&lt;li&gt;Reward System：シグナル公開や注目度でポイントを獲得。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;プロダクトとして見ると、単なるローカル量的バックテストフレームワークではありません。Agent、シグナル、議論、コピー取引、ペーパートレードを同じプラットフォーム層にまとめています。&lt;/p&gt;
&lt;h2 id=&#34;2種類のユーザー&#34;&gt;2種類のユーザー
&lt;/h2&gt;&lt;p&gt;READMEではユーザーを2種類に分けています。&lt;/p&gt;
&lt;p&gt;1つ目は Agent Traders です。AI Agent が Skill ドキュメントを読み、プラットフォームに接続し、必要なコンポーネントを導入し、シグナルを公開します。&lt;/p&gt;
&lt;p&gt;2つ目は Human Traders です。一般ユーザーはプラットフォームにアクセスし、アカウントを作り、シグナルを閲覧したり、成績の良いトレーダーをフォローしたりできます。&lt;/p&gt;
&lt;p&gt;この2つを合わせると、「AI Agent がシグナルを生み、人間または他のAgentがそれを利用する」構造になります。&lt;/p&gt;
&lt;h2 id=&#34;アーキテクチャ&#34;&gt;アーキテクチャ
&lt;/h2&gt;&lt;p&gt;READMEには次のプロジェクト構造が示されています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;AI-Trader (GitHub - Open Source)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;念岸岸 skills/              # Agent skill definitions
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;念岸岸 docs/api/            # OpenAPI specifications
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;念岸岸 service/             # Backend &amp;amp; frontend
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;岫   念岸岸 server/         # FastAPI backend
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;岫   弩岸岸 frontend/        # React frontend
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;弩岸岸 assets/              # Logo and images
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Agent skill、APIドキュメント、バックエンド、フロントエンドが同じリポジトリに置かれています。バックエンドは FastAPI、フロントエンドは React です。READMEの更新履歴では、Webサービスとバックエンドworkerを分離し、価格、収益履歴、精算、市場インテリジェンスなどのタスクがページやヘルスチェックに影響しないようにしたことも触れられています。&lt;/p&gt;
&lt;h2 id=&#34;なぜ注目する価値があるのか&#34;&gt;なぜ注目する価値があるのか
&lt;/h2&gt;&lt;p&gt;AI-Trader が注目に値するのは、「AIが自動で稼ぐ」からではありません。Agent を金融シナリオに接続するインターフェースを比較的明確にしているからです。&lt;/p&gt;
&lt;p&gt;注目点はいくつかあります。&lt;/p&gt;
&lt;p&gt;第一に、Skill ドキュメントを Agent の接続入口として使っています。これは Codex、Claude Code、OpenClaw などのAgentツールの働き方に近いものです。&lt;/p&gt;
&lt;p&gt;第二に、売買シグナル、議論、コピー取引、報酬システムをローカルスクリプトではなくプラットフォーム層に置いています。&lt;/p&gt;
&lt;p&gt;第三に、OpenAPI ドキュメントを提供しており、開発者がインターフェースを理解しやすくなっています。&lt;/p&gt;
&lt;p&gt;第四に、paper trading に対応しています。Agentの意思決定研究では、実資金を直接扱うよりシミュレーション環境のほうが安全です。&lt;/p&gt;
&lt;h2 id=&#34;リスクと境界&#34;&gt;リスクと境界
&lt;/h2&gt;&lt;p&gt;自動取引は高リスクな領域です。&lt;/p&gt;
&lt;p&gt;第一に、Agentが生成する売買シグナルは投資助言ではありません。モデルは幻覚、過学習、ニュースの誤読、極端な相場への無理解を起こす可能性があります。&lt;/p&gt;
&lt;p&gt;第二に、コピー取引には伝播リスクがあります。誤ったシグナルを多くのユーザーが追随すると、損失が集中する可能性があります。&lt;/p&gt;
&lt;p&gt;第三に、実資金アクセスは厳格に分離すべきです。Agentに無制限の注文権限を与えるべきではありません。&lt;/p&gt;
&lt;p&gt;第四に、broker、金融データ、ユーザー口座が関わる場合、商用・本番利用前にライセンスとコンプライアンスを確認する必要があります。&lt;/p&gt;
&lt;h2 id=&#34;向いている人&#34;&gt;向いている人
&lt;/h2&gt;&lt;p&gt;AI-Trader は、Agentの意思決定を研究する人、金融Agentのインターフェースを試す開発者、ペーパートレードやシグナル協業に関心のあるチームに向いています。確実に利益を得るツールを探しているユーザーには向きません。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;AI-Trader は、AI Agent を中心に設計されたシグナル公開とペーパートレードのプラットフォームです。「AIが稼がせてくれる」と読むのではなく、「Agentが金融ワークフローにどう接続し、シグナルを出し、リスク制御の中で動くべきか」を見るプロジェクトとして読むのが現実的です。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>AIにPCを操作させる？UI-TARS-desktopはデスクトップ、ブラウザ、ツールをつなぐ</title>
        <link>https://knightli.com/ja/2026/05/19/ui-tars-desktop-multimodal-ai-agent-stack/</link>
        <pubDate>Tue, 19 May 2026 10:56:50 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/19/ui-tars-desktop-multimodal-ai-agent-stack/</guid>
        <description>&lt;p&gt;&lt;code&gt;bytedance/UI-TARS-desktop&lt;/code&gt; は、ByteDance が公開しているマルチモーダル AI Agent プロジェクトです。単一のデスクトップアプリではなく、Agentスタックとして構成されています。現在の README では主に &lt;code&gt;Agent TARS&lt;/code&gt; と &lt;code&gt;UI-TARS Desktop&lt;/code&gt; の2つの方向が示されています。&lt;/p&gt;
&lt;p&gt;プロジェクトURL：&lt;a class=&#34;link&#34; href=&#34;https://github.com/bytedance/UI-TARS-desktop&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/bytedance/UI-TARS-desktop&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;公式サイト：&lt;a class=&#34;link&#34; href=&#34;https://agent-tars.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://agent-tars.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;執筆時点では、GitHub API上で約3.4万 star、主要言語は TypeScript、ライセンスは Apache-2.0 でした。READMEでは &amp;ldquo;Open-Source Multimodal AI Agent Stack&amp;rdquo; と説明されています。&lt;/p&gt;
&lt;h2 id=&#34;agent-tars-と-ui-tars-desktop-の違い&#34;&gt;Agent TARS と UI-TARS Desktop の違い
&lt;/h2&gt;&lt;p&gt;READMEでは2つのプロジェクトが同じ比較表で説明されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Agent TARS&lt;/code&gt;：GUI Agent、視覚能力、ターミナル、ブラウザ、プロダクトワークフローをつなぐ汎用マルチモーダルAI Agentスタック。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;UI-TARS Desktop&lt;/code&gt;：UI-TARSモデルをベースにしたデスクトップアプリで、ローカルまたはリモートPC、ブラウザを操作するネイティブGUI Agent機能を提供。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;簡単に言えば、Agent TARS は汎用Agentランタイムに近く、UI-TARS Desktop はデスクトップGUI操作の入口に近いものです。&lt;/p&gt;
&lt;h2 id=&#34;agent-tars-でできること&#34;&gt;Agent TARS でできること
&lt;/h2&gt;&lt;p&gt;Agent TARS は主に CLI と Web UI を提供します。目的は、マルチモーダルモデルが MCP や各種ツールを通じて、人間の作業に近いタスクフローを実行できるようにすることです。&lt;/p&gt;
&lt;p&gt;READMEにある主な機能は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ワンコマンドCLI起動。headful Web UI と headless server に対応。&lt;/li&gt;
&lt;li&gt;GUI Agent、DOM、混合戦略によるブラウザAgent制御。&lt;/li&gt;
&lt;li&gt;データフロー追跡とデバッグのための Event Stream。&lt;/li&gt;
&lt;li&gt;MCP Server を接続して実ツールを呼び出す MCP 連携。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;クイックスタート：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx @agent-tars/cli@latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;グローバルインストール：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install @agent-tars/cli@latest -g
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;モデルプロバイダーを指定して実行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agent-tars --provider volcengine --model doubao-1-5-thinking-vision-pro-250428 --apiKey your-api-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agent-tars --provider anthropic --model claude-3-7-sonnet-latest --apiKey your-api-key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;ui-tars-desktop-でできること&#34;&gt;UI-TARS Desktop でできること
&lt;/h2&gt;&lt;p&gt;UI-TARS Desktop はデスクトップGUI Agentです。UI-TARS と Seed-1.5-VL / 1.6 系モデルをベースに、モデルが画面を理解し、マウスとキーボード操作を実行することに重点があります。&lt;/p&gt;
&lt;p&gt;READMEにある機能は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自然言語による制御。&lt;/li&gt;
&lt;li&gt;スクリーンショットと視覚認識。&lt;/li&gt;
&lt;li&gt;精密なマウス・キーボード制御。&lt;/li&gt;
&lt;li&gt;Windows、macOS、ブラウザのクロスプラットフォーム対応。&lt;/li&gt;
&lt;li&gt;リアルタイムフィードバックと状態表示。&lt;/li&gt;
&lt;li&gt;プライバシーと安全性を重視したローカル処理。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例として、VS Code 設定の変更、GitHub issue の確認、リモートPCやブラウザの操作などが挙げられます。&lt;/p&gt;
&lt;h2 id=&#34;なぜ-gui-agent-が重要なのか&#34;&gt;なぜ GUI Agent が重要なのか
&lt;/h2&gt;&lt;p&gt;従来の自動化は API、DOM、スクリプトに依存します。GUI Agent は画面から始めます。ボタン、入力欄、メニュー、状態を見て、マウスとキーボードで操作します。&lt;/p&gt;
&lt;p&gt;価値は2つあります。第一に、多くのソフトウェアには安定したAPIがないか、APIが全フローをカバーしていません。GUI Agent は人間と同じ画面から操作できます。&lt;/p&gt;
&lt;p&gt;第二に、マルチモーダルモデルはスクリーンショット、文書、Webページ、アプリ画面を扱えます。視覚理解と操作を組み合わせられます。&lt;/p&gt;
&lt;p&gt;一方で制約もあります。GUI操作は解像度、言語、レイアウト変更、ポップアップ、ネットワーク遅延の影響を受けます。本番フローでは、権限管理、確認ステップ、ロールバックが必要です。&lt;/p&gt;
&lt;h2 id=&#34;mcp-との関係&#34;&gt;MCP との関係
&lt;/h2&gt;&lt;p&gt;Agent TARS は MCP 連携を重視しています。MCP は、ブラウザ、ファイル、コマンドライン、データベース、内部サービスなどを Agent が統一的に呼び出すために有用です。&lt;/p&gt;
&lt;p&gt;複雑なタスクでは、GUIクリックだけでは安定しません。より良いパターンは次のようなものです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;API が使える場所では API を使う。&lt;/li&gt;
&lt;li&gt;ページ状態を理解する必要があるときは視覚を使う。&lt;/li&gt;
&lt;li&gt;実際のWeb操作が必要なときはブラウザ制御を使う。&lt;/li&gt;
&lt;li&gt;ローカルソフトを操作する必要があるときは GUI Agent を使う。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;UI-TARS-desktop のようなプロジェクトは、これらを1つのAgentスタックにまとめる方向を探っています。&lt;/p&gt;
&lt;h2 id=&#34;使う前の注意点&#34;&gt;使う前の注意点
&lt;/h2&gt;&lt;p&gt;まず、デスクトップAgentには実行リスクがあります。マウス、キーボード、ブラウザを操作できるため、ファイル、アカウント、支払い、本番システムを誤操作しないよう権限を制限する必要があります。&lt;/p&gt;
&lt;p&gt;次に、リモートPCやリモートブラウザの操作には明確なセキュリティ境界が必要です。認証のない制御入口を公開ネットワークに出してはいけません。&lt;/p&gt;
&lt;p&gt;最後に、マルチモーダルモデルは画面を誤認識する可能性があります。削除、送信、支払い、公開、取引など不可逆な操作では、人間の確認を入れるべきです。&lt;/p&gt;
&lt;h2 id=&#34;向いている人&#34;&gt;向いている人
&lt;/h2&gt;&lt;p&gt;UI-TARS-desktop は、GUI Agentを試したい開発者、デスクトップ作業向けAIアシスタントを作るチーム、ブラウザ、DOM、MCP、視覚制御の戦略を比較したい研究者に向いています。まだ一般向けの単純なアシスタントというより、開発者向けの色が強いです。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;UI-TARS-desktop が注目に値するのは、AI Agent を「チャットで答える」段階から「画面を見てツールを操作する」方向へ進めている点です。価値はデスクトップ制御だけではなく、GUI、ブラウザ、ターミナル、MCP を1つのスタックにまとめるところにあります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>CloakBrowserとは？PlaywrightとPuppeteerに、より実ユーザーに近いブラウザを使わせる</title>
        <link>https://knightli.com/ja/2026/05/19/cloakbrowser-stealth-chromium-browser-automation/</link>
        <pubDate>Tue, 19 May 2026 10:56:50 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/19/cloakbrowser-stealth-chromium-browser-automation/</guid>
        <description>&lt;p&gt;&lt;code&gt;CloakHQ/CloakBrowser&lt;/code&gt; は、ブラウザ自動化向けのオープンソースプロジェクトです。単なる Playwright 設定や JavaScript パッチではなく、カスタム Chromium バイナリを中心に構成されており、ブラウザ指紋、WebGL、Canvas、音声、フォント、GPU、画面情報、WebRTC、ネットワークタイミングなどをより通常のブラウザ環境に近づけることを狙っています。&lt;/p&gt;
&lt;p&gt;プロジェクトURL：&lt;a class=&#34;link&#34; href=&#34;https://github.com/CloakHQ/CloakBrowser&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/CloakHQ/CloakBrowser&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;執筆時点では、GitHub API上で約1.5万 star、主要言語は Python、ライセンスは MIT でした。READMEでは、Playwright / Puppeteer の起動器を置き換えられる Stealth Chromium と説明されています。&lt;/p&gt;
&lt;h2 id=&#34;何を解決するのか&#34;&gt;何を解決するのか
&lt;/h2&gt;&lt;p&gt;通常の Headless Chromium で自動化スクリプトを動かすと、次のような自動化の痕跡が出やすくなります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;navigator.webdriver&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;Headless UA の痕跡。&lt;/li&gt;
&lt;li&gt;プラグイン、フォント、画面、GPU 指紋の不自然さ。&lt;/li&gt;
&lt;li&gt;CDP の挙動と実ユーザー入力の違い。&lt;/li&gt;
&lt;li&gt;一時 profile に通常の閲覧履歴がないこと。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CloakBrowser は、こうした一部の調整を実行時設定や JS patch だけでなく、Chromium のソースとバイナリ層に寄せています。Playwright ユーザーにとっては使い方が大きく変わらず、下層のブラウザだけをカスタムビルドに置き換える感覚です。&lt;/p&gt;
&lt;p&gt;この種のツールは、適法な自動化テスト、サイト互換性検証、対策システムの自社テスト、Agent 用ブラウザ環境の実験に向いています。無許可アクセス、アカウント濫用、リスク制御の回避、利用規約違反のために使うべきではありません。&lt;/p&gt;
&lt;h2 id=&#34;基本的な使い方&#34;&gt;基本的な使い方
&lt;/h2&gt;&lt;p&gt;Python のインストール：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install cloakbrowser
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;JavaScript / Node.js のインストール：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install cloakbrowser playwright-core
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;README の Python 例は Playwright に近い形です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;cloakbrowser&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;launch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;browser&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;launch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;page&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;browser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;new_page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;goto&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://protected-site.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;browser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;close&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;JavaScript でも同じように使えます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;launch&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;cloakbrowser&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;browser&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;launch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;browser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;newPage&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;kr&#34;&gt;goto&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;https://protected-site.com&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;browser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;close&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;browser-profile-manager&#34;&gt;Browser Profile Manager
&lt;/h2&gt;&lt;p&gt;CloakBrowser には Browser Profile Manager もあります。ブラウザ profile、テスト環境、繰り返し実行する自動化タスクを管理しやすくするためのものです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -p 8080:8080 -v cloakprofiles:/data cloakhq/cloakbrowser-manager
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;起動後は次を開きます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;profile を管理できると、毎回使い捨ての一時 profile で動かす必要がなくなります。長期テスト、互換性確認、Agent 実験では、安定した profile のほうがデバッグしやすい場面があります。&lt;/p&gt;
&lt;h2 id=&#34;通常の-playwright-との違い&#34;&gt;通常の Playwright との違い
&lt;/h2&gt;&lt;p&gt;通常の Playwright は、安定したブラウザ制御に重点があります。CloakBrowser は、ブラウザ環境そのものをより自然に見せることに重点があります。&lt;/p&gt;
&lt;p&gt;整理すると、Playwright は自動化API、CloakBrowser はカスタムブラウザ実行環境です。一般的なテストや自動化なら Playwright だけで十分な場面も多いですが、ブラウザ挙動や指紋の一貫性まで検証したい場合に CloakBrowser が候補になります。&lt;/p&gt;
&lt;p&gt;ただし、すべての検知問題を解決する魔法ではありません。サイト側は行動、頻度、アカウント履歴、ネットワーク環境、業務ルールなども使ってリスクを判断します。&lt;/p&gt;
&lt;h2 id=&#34;注意点&#34;&gt;注意点
&lt;/h2&gt;&lt;p&gt;まず、コンプライアンスが重要です。より自然な自動化環境を使えることと、何でも自動化してよいことは別です。自動アクセスでは、権限、頻度制限、プラットフォーム規約を守る必要があります。&lt;/p&gt;
&lt;p&gt;次に、カスタム Chromium に依存します。バージョン互換性、セキュリティ更新、バイナリの入手元を本番利用前に確認すべきです。&lt;/p&gt;
&lt;p&gt;最後に、ブラウザ指紋は一部にすぎません。操作が不自然だったり、頻度が高すぎたり、アカウント運用が異常だったりすれば、リスクは残ります。&lt;/p&gt;
&lt;h2 id=&#34;向いている人&#34;&gt;向いている人
&lt;/h2&gt;&lt;p&gt;CloakBrowser は、Playwright、Puppeteer、ブラウザAgent、QA自動化、Web互換性テストをすでに使っている開発者やチームに向いています。ノーコードの自動化ツールを探しているだけのユーザーにはやや技術寄りです。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;CloakBrowser の面白さは、ブラウザ自動化を「Headlessを操作する」だけでなく、「より実ユーザーに近いブラウザ環境を使う」方向へ進めている点です。テスト、Agent実験、管理された研究用途では注目に値します。ただし、実運用ではコンプライアンス、権限、リスク管理が前提です。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>投稿先が多すぎて大変？AiToEarnはAI Agentでクリエイターの作業を減らそうとしている</title>
        <link>https://knightli.com/ja/2026/05/19/aitoearn-ai-content-marketing-agent/</link>
        <pubDate>Tue, 19 May 2026 10:56:50 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/19/aitoearn-ai-content-marketing-agent/</guid>
        <description>&lt;p&gt;&lt;code&gt;yikart/AiToEarn&lt;/code&gt; は、クリエイター、ブランド、個人会社向けの AI コンテンツマーケティングプロジェクトです。コンテンツ作成、投稿、エンゲージメント運用、収益化を同じ Agent ワークフローにまとめ、Douyin、小紅書、快手、Bilibili、動画号、TikTok、YouTube、Facebook、Instagram、Threads、X、Pinterest、LinkedIn などを対象にしています。&lt;/p&gt;
&lt;p&gt;プロジェクトURL：&lt;a class=&#34;link&#34; href=&#34;https://github.com/yikart/AiToEarn&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/yikart/AiToEarn&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;公式サイト：&lt;a class=&#34;link&#34; href=&#34;https://aitoearn.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://aitoearn.ai/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;執筆時点では、GitHub API上で約1.5万 star、主要言語は TypeScript、ライセンスは MIT でした。READMEでは、OPC（一人会社）、クリエイター、ブランド、企業向けのコンテンツマーケティングAgentプラットフォームと説明されています。&lt;/p&gt;
&lt;h2 id=&#34;位置づけ&#34;&gt;位置づけ
&lt;/h2&gt;&lt;p&gt;AiToEarn は単なる文章生成ツールでも、予約投稿ツールでもありません。コンテンツマーケティングを4つの Agent 能力に分けています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Monetize：コンテンツ収益化。&lt;/li&gt;
&lt;li&gt;Publish：複数プラットフォームへの投稿。&lt;/li&gt;
&lt;li&gt;Engage：エンゲージメント運用。&lt;/li&gt;
&lt;li&gt;Create：コンテンツ作成。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;今のクリエイター業務では、「AIが文章を書けるか」だけでは足りません。生成後に投稿予約、分配、返信、振り返り、ビジネス施策との接続が必要です。&lt;/p&gt;
&lt;h2 id=&#34;主な機能&#34;&gt;主な機能
&lt;/h2&gt;&lt;h3 id=&#34;monetizeコンテンツ収益化&#34;&gt;Monetize：コンテンツ収益化
&lt;/h3&gt;&lt;p&gt;AiToEarn はプロモーションタスク向けの収益化機能を提供します。READMEでは次の3種類の精算モデルが挙げられています。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;モデル&lt;/th&gt;
          &lt;th&gt;正式名称&lt;/th&gt;
          &lt;th&gt;意味&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;CPS&lt;/td&gt;
          &lt;td&gt;Cost Per Sale&lt;/td&gt;
          &lt;td&gt;売上に応じて精算&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CPE&lt;/td&gt;
          &lt;td&gt;Cost Per Engagement&lt;/td&gt;
          &lt;td&gt;エンゲージメント量に応じて精算&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CPM&lt;/td&gt;
          &lt;td&gt;Cost Per Mille&lt;/td&gt;
          &lt;td&gt;表示または再生量に応じて精算&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;この部分は、ブランドのプロモーション需要とクリエイターの配信力をつなぐコンテンツタスク市場に近いものです。&lt;/p&gt;
&lt;h3 id=&#34;publish投稿agent&#34;&gt;Publish：投稿Agent
&lt;/h3&gt;&lt;p&gt;Publish は複数プラットフォームへの配信を担当し、手作業で投稿する負担を減らします。READMEでは、中国内外の主要なショート動画、画像テキスト、SNSプラットフォームが対象として挙げられています。&lt;/p&gt;
&lt;p&gt;実用面では、統一されたスケジュール管理と投稿管理が価値になります。アカウント群運用、クロスプラットフォーム配信、海外向けチームでは、単体のAI文章生成より役立つ場面があります。&lt;/p&gt;
&lt;h3 id=&#34;engageエンゲージメントagent&#34;&gt;Engage：エンゲージメントAgent
&lt;/h3&gt;&lt;p&gt;Engage はブラウザ拡張を通じて、いいね、保存、フォロー、コメント返信、ブランド監視などの自動化を支援します。&lt;/p&gt;
&lt;p&gt;この機能は慎重に使う必要があります。自動エンゲージメントはプラットフォームのリスク制御に触れやすいため、アカウント権限、頻度制限、規約、チームのコンプライアンスを確認するべきです。&lt;/p&gt;
&lt;h3 id=&#34;createコンテンツ作成agent&#34;&gt;Create：コンテンツ作成Agent
&lt;/h3&gt;&lt;p&gt;Create は生成部分を担当します。READMEでは、動画生成モデル、動画翻訳、動画編集、画像生成、バッチ作成タスクが挙げられています。&lt;/p&gt;
&lt;p&gt;大量制作には向いていますが、人間のレビューは必要です。ブランドコンテンツ、広告素材、多言語コンテンツでは、事実確認、著作権、トーンの一貫性が重要です。&lt;/p&gt;
&lt;h2 id=&#34;5つの使い方&#34;&gt;5つの使い方
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;方法&lt;/th&gt;
          &lt;th&gt;向いている人&lt;/th&gt;
          &lt;th&gt;デプロイが必要か&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Webサイトを直接使う&lt;/td&gt;
          &lt;td&gt;すべてのユーザー&lt;/td&gt;
          &lt;td&gt;不要&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;OpenClaw で使う&lt;/td&gt;
          &lt;td&gt;OpenClaw ユーザー&lt;/td&gt;
          &lt;td&gt;不要&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude / Cursor などのAIアシスタントで使う&lt;/td&gt;
          &lt;td&gt;AIツールユーザー&lt;/td&gt;
          &lt;td&gt;不要&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Dockerでワンクリック導入&lt;/td&gt;
          &lt;td&gt;セルフホストしたいチーム&lt;/td&gt;
          &lt;td&gt;サーバーが必要&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ソースコード開発&lt;/td&gt;
          &lt;td&gt;開発者&lt;/td&gt;
          &lt;td&gt;開発環境が必要&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;MCP 対応は注目点です。Claude、Cursor、その他 MCP 対応 Agent が AiToEarn を外部機能として呼び出せます。&lt;/p&gt;
&lt;p&gt;一般的な MCP 設定は次のような形です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MCP URL: https://aitoearn.ai/api/unified/mcp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Auth Header: x-api-key: your-API-Key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;セルフホストの場合は、自分のサービスURLに置き換えます。&lt;/p&gt;
&lt;h2 id=&#34;docker-デプロイ&#34;&gt;Docker デプロイ
&lt;/h2&gt;&lt;p&gt;READMEには Docker による導入方法もあります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/yikart/AiToEarn.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; AiToEarn
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;その後、次を開きます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;データ管理、プライベート導入、独自ワークフローを重視するチームには、ホスト版だけでなく Docker 導入も現実的です。&lt;/p&gt;
&lt;h2 id=&#34;向いている人&#34;&gt;向いている人
&lt;/h2&gt;&lt;p&gt;AiToEarn は、複数プラットフォームに投稿するクリエイター、小規模なコンテンツ運用チーム、一人会社、クリエイター連携が必要なブランド、コンテンツ業務をAI Agentにつなげたい開発者に向いています。&lt;/p&gt;
&lt;p&gt;単純な文章生成だけが必要なら、やや大きすぎるかもしれません。価値は、作成、配信、反応、収益化をつなげる点にあります。&lt;/p&gt;
&lt;h2 id=&#34;使う前の注意点&#34;&gt;使う前の注意点
&lt;/h2&gt;&lt;p&gt;自動投稿や自動エンゲージメントは、プラットフォーム規約を守る必要があります。効率化できても、アカウント安全性やコンプライアンスは省略できません。&lt;/p&gt;
&lt;p&gt;生成コンテンツにも人間のレビューが必要です。広告、ブランド投稿、多言語コンテンツには、事実、著作権、トーンのリスクがあります。&lt;/p&gt;
&lt;p&gt;収益化機能は商業タスクに関わるため、精算ルール、表示義務、プラットフォームポリシーを確認してから使うべきです。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;AiToEarn が面白いのは、コンテンツ運用を単なる文章作成ではなくワークフローとして扱っている点です。クリエイターや小規模チームにとっては、複数プラットフォームの繰り返し作業を減らせることが魅力です。開発者にとっては、MCP と Agent 連携が見どころです。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>llama.cpp b9196アップデート：Windowsプリビルド版がCUDA 13.1、Vulkan、HIP、SYCLに対応</title>
        <link>https://knightli.com/ja/2026/05/18/llama-cpp-windows-cuda-vulkan-gguf/</link>
        <pubDate>Mon, 18 May 2026 23:20:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/18/llama-cpp-windows-cuda-vulkan-gguf/</guid>
        <description>&lt;p&gt;&lt;code&gt;llama.cpp&lt;/code&gt; の最近のWindows版は、ローカルLLMユーザーにとってかなり扱いやすくなりました。以前WindowsでGGUFモデルを動かすとき、多くの人が環境問題でつまずいていました。CUDAバージョンの不一致、DLL不足、ドライバー非互換、CMakeビルド失敗、環境変数の誤り、Vulkan / HIP / SYCL設定の複雑さなどです。&lt;/p&gt;
&lt;p&gt;現在は公式Releaseで複数のWindowsプリビルドパッケージが提供されています。多くの場合、ソースからビルドする必要はありません。対応するバージョンをダウンロードし、展開し、モデルファイルを置けば、そのままローカル推論サービスを起動できます。&lt;/p&gt;
&lt;h2 id=&#34;llamacppは何に向いているか&#34;&gt;llama.cppは何に向いているか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;llama.cpp&lt;/code&gt; は、現在もっともよく使われているローカルGGUFモデル推論フレームワークのひとつです。軽量でクロスプラットフォーム、CPUでもGPUでも動作し、GGUFエコシステムには多くのモデル資源があります。&lt;/p&gt;
&lt;p&gt;よく使われるモデル系統は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qwen&lt;/li&gt;
&lt;li&gt;Llama&lt;/li&gt;
&lt;li&gt;DeepSeek&lt;/li&gt;
&lt;li&gt;Gemma&lt;/li&gt;
&lt;li&gt;Mistral&lt;/li&gt;
&lt;li&gt;Mixtral&lt;/li&gt;
&lt;li&gt;Hermes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GGUF量子化モデルが普及するにつれて、多くのオープンソースモデルがローカル展開向けのGGUF版を提供するようになりました。一般ユーザーにとって、&lt;code&gt;llama.cpp&lt;/code&gt; の価値は明確です。複雑な推論フレームワーク一式を構築しなくても、自分のPCで使えるチャットサービスを動かせます。&lt;/p&gt;
&lt;h2 id=&#34;windowsプリビルド版の選び方&#34;&gt;Windowsプリビルド版の選び方
&lt;/h2&gt;&lt;p&gt;Windowsユーザーは、ハードウェアに応じて次のビルドを選べます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows x64 CPU&lt;/li&gt;
&lt;li&gt;Windows x64 CUDA 12.4&lt;/li&gt;
&lt;li&gt;Windows x64 CUDA 13.1&lt;/li&gt;
&lt;li&gt;Windows x64 Vulkan&lt;/li&gt;
&lt;li&gt;Windows x64 HIP Radeon&lt;/li&gt;
&lt;li&gt;Windows x64 SYCL&lt;/li&gt;
&lt;li&gt;Windows ARM64 CPU&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;NVIDIA GPUなら、通常はCUDA版を優先します。RTX 3060、4060、4070、4080、4090のようなカードはCUDAルートに向いています。&lt;/p&gt;
&lt;p&gt;AMD GPUなら、HIPまたはVulkanを試せます。実際には、完全なROCm環境を整えたくない場合、Vulkanのほうが扱いやすいこともあります。&lt;/p&gt;
&lt;p&gt;Intel内蔵GPUやArc GPUなら、SYCLまたはVulkanを試せます。性能はNVIDIA CUDAには及ばないことが多いですが、中小規模のGGUFモデルを試すには十分です。&lt;/p&gt;
&lt;p&gt;CPU版は、単体GPUがないユーザーや、小さなモデルを検証したいユーザーに向いています。速度は速くありませんが、導入はもっとも簡単です。&lt;/p&gt;
&lt;h2 id=&#34;通常のggufモデルを起動する&#34;&gt;通常のGGUFモデルを起動する
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;llama.cpp&lt;/code&gt; のWindowsプリビルドパッケージをダウンロードし、モデルを &lt;code&gt;models&lt;/code&gt; ディレクトリに置いたとします。展開した &lt;code&gt;llama.cpp&lt;/code&gt; ディレクトリに入り、次のように起動できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;llama-server&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;exe&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-m&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;your-model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;gguf&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ngl&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;999&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ここで &lt;code&gt;-m&lt;/code&gt; はGGUFモデルファイルを指し、&lt;code&gt;-ngl 999&lt;/code&gt; は可能な限りモデル層をGPUに載せる指定です。実際にどれだけ載るかは、VRAM容量、モデルサイズ、量子化形式によって変わります。&lt;/p&gt;
&lt;p&gt;起動に成功したら、ブラウザで次を開きます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://127.0.0.1:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これでローカルWebチャット画面に入れます。&lt;/p&gt;
&lt;p&gt;VRAMが足りない場合は、より小さいモデルか、Q4やQ5など低めの量子化GGUFに切り替えます。パラメータ数だけでなく、量子化形式とコンテキスト長設定も確認してください。&lt;/p&gt;
&lt;h2 id=&#34;マルチモーダル視覚モデルを起動する&#34;&gt;マルチモーダル視覚モデルを起動する
&lt;/h2&gt;&lt;p&gt;マルチモーダル視覚モデルでは、通常メインモデルファイルだけでなく、&lt;code&gt;mmproj&lt;/code&gt; 視覚投影ファイルも必要です。起動時にはメインモデルと &lt;code&gt;mmproj&lt;/code&gt; を同時に指定します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;llama-server&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;exe&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-m&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;models\main-model.gguf&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-mmproj&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;models\mmproj-model.gguf&amp;#34;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ngl&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;999&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;主な用途は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OCR認識&lt;/li&gt;
&lt;li&gt;スクリーンショット理解&lt;/li&gt;
&lt;li&gt;Webページスクリーンショット解析&lt;/li&gt;
&lt;li&gt;画像Q&amp;amp;A&lt;/li&gt;
&lt;li&gt;簡単な視覚内容判定&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たとえば Qwen2-VL / Qwen2.5-VL 系の視覚モデルは、中国語スクリーンショット理解、OCR、画像とテキストのQ&amp;amp;Aで実用的です。メインモデルと &lt;code&gt;mmproj&lt;/code&gt; ファイルが対応しているか必ず確認してください。バージョン不一致は読み込み失敗や異常な結果につながりやすいです。&lt;/p&gt;
&lt;h2 id=&#34;batスクリプトで複数モデルを管理する&#34;&gt;batスクリプトで複数モデルを管理する
&lt;/h2&gt;&lt;p&gt;ローカルに複数モデルを置く場合、簡単な &lt;code&gt;.bat&lt;/code&gt; スクリプトでメニュー切り替えできます。以下は例です。パスとモデル名は自分の環境に合わせて変更してください。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; off
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chcp 65001 &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;nul
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;cd&lt;/span&gt; /d C:\path\to\llama-b9196-bin-win-cuda-13.1-x64
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; 请选择模型：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; 1. Gemma
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; 2. Qwen VL 多模态
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; 3. DeepSeek
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;/p&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;choice&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;输入数字：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%choice%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;==&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt; llama-server.exe -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;models\gemma.gguf&amp;#34;&lt;/span&gt; -ngl 999
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%choice%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;==&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt; llama-server.exe -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;models\qwen-vl.gguf&amp;#34;&lt;/span&gt; --mmproj &lt;span class=&#34;s2&#34;&gt;&amp;#34;models\mmproj.gguf&amp;#34;&lt;/span&gt; -ngl 999
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%choice%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;==&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;3&amp;#34;&lt;/span&gt; llama-server.exe -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;models\deepseek.gguf&amp;#34;&lt;/span&gt; -ngl 999
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;pause&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;保存時はUTF-8エンコーディングを推奨します。その後、拡張子を &lt;code&gt;.bat&lt;/code&gt; に変更します。ダブルクリックすると数字でモデルを選べます。&lt;/p&gt;
&lt;h2 id=&#34;モデル選びで見るべき3点&#34;&gt;モデル選びで見るべき3点
&lt;/h2&gt;&lt;p&gt;第一にハードウェアです。VRAMが大きいほど大きなモデルを動かせます。VRAMが足りない場合、大きなモデルを無理に使わず、7B、8B、または低めの量子化版から始めるのが安全です。&lt;/p&gt;
&lt;p&gt;第二に用途です。日常的なQ&amp;amp;A、要約、書き換えなら、小型モデルや中程度の量子化で十分なことが多いです。コード、長文書解析、マルチモーダル理解をしたいなら、より強いモデルとより多いVRAMが必要です。&lt;/p&gt;
&lt;p&gt;第三にライセンスと安全境界です。ネット上には多くのコミュニティ改変モデルがありますが、能力、制限、ライセンスはそれぞれ異なります。ダウンロード前に、出所、ライセンス、適用場面、リスクを確認してください。出所不明のモデルに本番タスクを直接任せるのはおすすめしません。&lt;/p&gt;
&lt;h2 id=&#34;よくある問題&#34;&gt;よくある問題
&lt;/h2&gt;&lt;p&gt;起動時にDLL不足が出る場合は、まずダウンロードしたパッケージとGPUルートが合っているか確認してください。NVIDIAユーザーがHIP版を誤って落としたり、AMDユーザーがCUDA版を落としたりしないようにします。&lt;/p&gt;
&lt;p&gt;モデル読み込みが遅い場合、モデルが大きすぎる、ディスクが遅い、またはVRAM不足で一部レイヤーがCPUに戻っている可能性があります。&lt;/p&gt;
&lt;p&gt;Webページが開かない場合は、コマンドラインでサービスが正常に起動しているかを先に確認し、ポートが &lt;code&gt;8080&lt;/code&gt; かどうかも見ます。ポートが使われている場合は、&lt;code&gt;llama-server&lt;/code&gt; のパラメータでポートを変更できます。&lt;/p&gt;
&lt;p&gt;マルチモーダルモデルの結果がおかしい場合は、プロンプトを変える前に、&lt;code&gt;mmproj&lt;/code&gt; ファイルがメインモデルと対応しているかを確認します。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;今回のWindowsプリビルドパッケージの価値は、ローカルAIの入口を下げたことです。以前は多くのユーザーがビルドや依存関係でつまずいていましたが、今は「モデルをダウンロードし、サービスを起動し、結果を試す」段階に早く入れます。&lt;/p&gt;
&lt;p&gt;Windowsユーザー向けには、ルート選択を簡単にまとめると次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NVIDIA：CUDAを優先。&lt;/li&gt;
&lt;li&gt;AMD：まずVulkanを試し、その後HIPを見る。&lt;/li&gt;
&lt;li&gt;Intel：SYCLまたはVulkanを試す。&lt;/li&gt;
&lt;li&gt;単体GPUなし：CPU版で小型モデルを動かす。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;実際に使う前には、モデルの出所、ライセンス、VRAM要件、実際の出力を確認してください。ローカルAIの利点は制御しやすく、オフラインで、低遅延なことです。ただしコストがないわけではありません。モデル管理、ハードウェア資源、出力品質は自分で面倒を見る必要があります。&lt;/p&gt;
&lt;p&gt;参考元：&lt;a class=&#34;link&#34; href=&#34;https://www.freedidi.com/24211.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.freedidi.com/24211.html&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>主流AI PPTツール総まとめ：自動生成、Webスライド、PPTX、画像ルートをどう選ぶか</title>
        <link>https://knightli.com/ja/2026/05/18/ai-ppt-skills-selection-guide/</link>
        <pubDate>Mon, 18 May 2026 22:29:43 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/18/ai-ppt-skills-selection-guide/</guid>
        <description>&lt;p&gt;AIでPPTを作ることは、もはや「タイトルを入力してテンプレートを当てる」だけではありません。Claude Code、Codex、CursorのようなAIコーディング環境では、PPT生成はインストール可能で再利用できるAgent Skillの集まりになりつつあります。Webプレゼンを出力するもの、実際に編集可能な &lt;code&gt;.pptx&lt;/code&gt; を生成するもの、画像モデルで各ページをビジュアル案として作るもの、MCPを通じてAIにPowerPointファイルを操作させるものがあります。&lt;/p&gt;
&lt;p&gt;今回は、主流のPPT関連Skillを整理します。価値があるのは単なる一覧ではなく、これらのツールを納品形態ごとに分けて考えることです。ツールを選ぶ前に、まずこう問いましょう。最終成果物は誰が編集するのか、どこで発表するのか、継続的な共同作業が必要なのか。&lt;/p&gt;
&lt;h2 id=&#34;いくつかのルート&#34;&gt;いくつかのルート
&lt;/h2&gt;&lt;h3 id=&#34;1-html-webプレゼン&#34;&gt;1. HTML Webプレゼン
&lt;/h3&gt;&lt;p&gt;代表的なプロジェクトには、&lt;a class=&#34;link&#34; href=&#34;https://github.com/zarazhangrui/frontend-slides&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;frontend-slides&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/09/guizang-ppt-skill-huashu-design-agent-skills/&#34; &gt;guizang-ppt-skill&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://github.com/lewislulu/html-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;html-ppt-skill&lt;/a&gt; があります。&lt;/p&gt;
&lt;p&gt;このルートの強みは視覚表現力です。CSSアニメーション、Canvas、WebGL、レスポンシブレイアウトを使え、ブラウザで開くだけで発表できます。技術共有、製品発表、Demo Day、個人のスタイルが強い登壇に向いています。&lt;/p&gt;
&lt;p&gt;一方で代償も明確です。納品後にクライアントが一文字ずつ修正する用途にはあまり向きません。クライアントが受け取るものがPowerPointファイルではなくHTMLの場合、後続の修正は生成フローに戻ることが多くなります。&lt;/p&gt;
&lt;p&gt;HTMLプレゼンだけを見るなら、&lt;a class=&#34;link&#34; href=&#34;https://github.com/zarazhangrui/frontend-slides&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;frontend-slides&lt;/a&gt; は高スターの汎用入口に近く、&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/09/guizang-ppt-skill-huashu-design-agent-skills/&#34; &gt;guizang-ppt-skill&lt;/a&gt; は美的制約とテーマ性に強く、&lt;a class=&#34;link&#34; href=&#34;https://github.com/lewislulu/html-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;html-ppt-skill&lt;/a&gt; はテーマ数、レイアウト数、発表者モードで優れています。&lt;/p&gt;
&lt;h3 id=&#34;2-ネイティブpptx&#34;&gt;2. ネイティブPPTX
&lt;/h3&gt;&lt;p&gt;代表的なプロジェクトには、&lt;a class=&#34;link&#34; href=&#34;https://github.com/seulee26/mckinsey-pptx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;mckinsey-pptx&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://github.com/sunbigfly/ppt-agent-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ppt-agent-skills&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://github.com/tfriedel/claude-office-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;claude-office-skills&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://github.com/hugohe3/ppt-master&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ppt-master&lt;/a&gt; があります。&lt;/p&gt;
&lt;p&gt;これはビジネス納品で最も安定したルートです。クライアントが「PowerPointで文字を直したい、画像を差し替えたい、会社テンプレートを使いたい」と求めるなら、最終的には &lt;code&gt;.pptx&lt;/code&gt; に落とす必要があります。&lt;/p&gt;
&lt;p&gt;その中でも &lt;a class=&#34;link&#34; href=&#34;https://github.com/hugohe3/ppt-master&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ppt-master&lt;/a&gt; は個別に注目する価値があります。考え方は、まずLLMにSVGを生成させ、それをPowerPointネイティブのDrawingMLオブジェクトへ変換するというものです。目的は、テキストボックス、図形、チャートをPPTX内で引き続き編集できるようにすることです。PDF、DOCX、URL、MarkdownからのPPTX生成にも対応し、テンプレート複製、アニメーション、ナレーション、ローカルプレビューも扱えます。&lt;/p&gt;
&lt;p&gt;このルートは、コンサルティング納品、社内報告、ホワイトペーパー発表、長いレポートのPPT化に向いています。欠点は、視覚表現の上限がPowerPoint自体に制約されやすく、複雑な表現ではHTMLや画像ルートほど自由ではないことです。&lt;/p&gt;
&lt;h3 id=&#34;3-ai画像駆動&#34;&gt;3. AI画像駆動
&lt;/h3&gt;&lt;p&gt;代表的なプロジェクトには、&lt;a class=&#34;link&#34; href=&#34;https://github.com/op7418/NanoBanana-PPT-Skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NanoBanana-PPT-Skills&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://github.com/wuyoscar/gpt_image_2_skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;gpt_image_2_skill&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://github.com/NyxTides/ppt-image-first&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ppt-image-first&lt;/a&gt; があります。&lt;/p&gt;
&lt;p&gt;このルートは各スライドをまず1枚のビジュアルとして生成し、その画像をPPTXや別のコンテナに入れます。完成度が高く、特に表紙、SNS画像、ビジュアル提案、拡散向けコンテンツに向いています。&lt;/p&gt;
&lt;p&gt;問題は編集性の低さです。ページは本質的に1枚の画像です。あとからタイトルを直す、文案を差し替える、アイコンを動かすとなると、再生成が必要になる場合があります。「見た目をよくしたい」用途には合いますが、「クライアントが何度も修正する」用途には向きません。&lt;/p&gt;
&lt;h3 id=&#34;4-mcp--プロトコル層&#34;&gt;4. MCP / プロトコル層
&lt;/h3&gt;&lt;p&gt;代表的なプロジェクトには、&lt;a class=&#34;link&#34; href=&#34;https://github.com/GongRzhe/Office-PowerPoint-MCP-Server&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Office-PowerPoint-MCP-Server&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://github.com/icip-cas/PPTAgent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;PPTAgent&lt;/a&gt; があります。&lt;/p&gt;
&lt;p&gt;この種のツールは、必ずしも完全なPPTを直接生成するわけではありません。AIにPowerPointを操作するインターフェースを与えます。MCPに接続すると、モデルは &lt;code&gt;.pptx&lt;/code&gt; ファイルを読み、修正し、書き込めます。&lt;/p&gt;
&lt;p&gt;このルートは、すでにPPTファイルがあり、AIに修正を手伝わせたいワークフローに向いています。たとえば、書式の一括変更、フィードバックに基づくページの並べ替え、各ページが目的に合っているかのチェックなどです。&lt;a class=&#34;link&#34; href=&#34;https://github.com/icip-cas/PPTAgent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;PPTAgent&lt;/a&gt; は反省型生成を重視しています。つまり、各ページを生成したあとに見直します。この方向性は「AI PPTが粗い」問題を減らすヒントになります。&lt;/p&gt;
&lt;h3 id=&#34;5-統合デザインプラットフォーム&#34;&gt;5. 統合デザインプラットフォーム
&lt;/h3&gt;&lt;p&gt;代表的なプロジェクトには、&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/18/open-design-open-source-claude-design-alternative/&#34; &gt;open-design&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://github.com/docsagent/docsagent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;docsagent&lt;/a&gt; があります。&lt;/p&gt;
&lt;p&gt;この種のプロジェクトは、PPT生成そのものを超えています。&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/18/open-design-open-source-claude-design-alternative/&#34; &gt;open-design&lt;/a&gt; はローカル優先のデザインプラットフォームに近く、プロトタイプ、slides、images、videosを生成でき、複数のエクスポート形式に対応します。&lt;a class=&#34;link&#34; href=&#34;https://github.com/docsagent/docsagent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;docsagent&lt;/a&gt; はPPTツールではありませんが、ローカル文書をインデックス化して対話できるため、PPT生成前の資料整理層として使えます。&lt;/p&gt;
&lt;p&gt;単発でPPTを作るだけでなく、資料、デザイン、プロトタイプ、納品までの一連の流れが必要なら、このタイプのプラットフォームはより見る価値があります。&lt;/p&gt;
&lt;h2 id=&#34;skillメタ情報&#34;&gt;Skillメタ情報
&lt;/h2&gt;&lt;p&gt;Star数は2026-05-15時点の取得結果に基づくもので、人気度の参考にすぎません。実際に使う前には、リポジトリを開いてメンテナンス状況、README、LICENSEを確認することをおすすめします。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Skill&lt;/th&gt;
          &lt;th&gt;作者&lt;/th&gt;
          &lt;th&gt;リンク&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Star&lt;/th&gt;
          &lt;th&gt;言語&lt;/th&gt;
          &lt;th&gt;ルート&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;frontend-slides&lt;/td&gt;
          &lt;td&gt;@zarazhangrui&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/zarazhangrui/frontend-slides&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;zarazhangrui/frontend-slides&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;17,530&lt;/td&gt;
          &lt;td&gt;Shell&lt;/td&gt;
          &lt;td&gt;HTML Webプレゼン&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;guizang-ppt-skill&lt;/td&gt;
          &lt;td&gt;@op7418（歸藏）&lt;/td&gt;
          &lt;td&gt;サイト内記事: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/09/guizang-ppt-skill-huashu-design-agent-skills/&#34; &gt;guizang-ppt-skill&lt;/a&gt;&lt;br&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/op7418/guizang-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;op7418/guizang-ppt-skill&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8,832&lt;/td&gt;
          &lt;td&gt;HTML&lt;/td&gt;
          &lt;td&gt;HTML Webプレゼン&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;html-ppt-skill&lt;/td&gt;
          &lt;td&gt;@lewislulu&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/lewislulu/html-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;lewislulu/html-ppt-skill&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3,834&lt;/td&gt;
          &lt;td&gt;HTML/CSS/JS&lt;/td&gt;
          &lt;td&gt;HTML Webプレゼン&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;mckinsey-pptx&lt;/td&gt;
          &lt;td&gt;@seulee26&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/seulee26/mckinsey-pptx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;seulee26/mckinsey-pptx&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;426&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;ネイティブPPTX&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ppt-agent-skills&lt;/td&gt;
          &lt;td&gt;@sunbigfly&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/sunbigfly/ppt-agent-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;sunbigfly/ppt-agent-skills&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;714&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;ネイティブPPTX&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;claude-office-skills&lt;/td&gt;
          &lt;td&gt;@tfriedel&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/tfriedel/claude-office-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tfriedel/claude-office-skills&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;631&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;ネイティブPPTX&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ppt-master&lt;/td&gt;
          &lt;td&gt;@hugohe3&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/hugohe3/ppt-master&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;hugohe3/ppt-master&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16,626&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;ネイティブPPTX&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;NanoBanana-PPT-Skills&lt;/td&gt;
          &lt;td&gt;@op7418（歸藏）&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/op7418/NanoBanana-PPT-Skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;op7418/NanoBanana-PPT-Skills&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2,668&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;AI画像駆動&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;gpt_image_2_skill&lt;/td&gt;
          &lt;td&gt;@wuyoscar&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/wuyoscar/gpt_image_2_skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;wuyoscar/gpt_image_2_skill&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2,102&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;AI画像駆動&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ppt-image-first&lt;/td&gt;
          &lt;td&gt;@NyxTides&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NyxTides/ppt-image-first&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NyxTides/ppt-image-first&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;799&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;AI画像駆動&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Office-PowerPoint-MCP-Server&lt;/td&gt;
          &lt;td&gt;@GongRzhe&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/GongRzhe/Office-PowerPoint-MCP-Server&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GongRzhe/Office-PowerPoint-MCP-Server&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1,708&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;MCP / プロトコル層&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;PPTAgent&lt;/td&gt;
          &lt;td&gt;@icip-cas&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/icip-cas/PPTAgent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;icip-cas/PPTAgent&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4,354&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;MCP / プロトコル層&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;open-design&lt;/td&gt;
          &lt;td&gt;@nexu-io&lt;/td&gt;
          &lt;td&gt;サイト内記事: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/18/open-design-open-source-claude-design-alternative/&#34; &gt;open-design&lt;/a&gt;&lt;br&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/nexu-io/open-design&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;nexu-io/open-design&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;40,822&lt;/td&gt;
          &lt;td&gt;TypeScript&lt;/td&gt;
          &lt;td&gt;統合デザインプラットフォーム&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;docsagent&lt;/td&gt;
          &lt;td&gt;@docsagent&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/docsagent/docsagent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;docsagent/docsagent&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;687&lt;/td&gt;
          &lt;td&gt;TypeScript&lt;/td&gt;
          &lt;td&gt;統合デザインプラットフォーム&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;選び方&#34;&gt;選び方
&lt;/h2&gt;&lt;p&gt;クライアントが継続して編集するなら、ネイティブPPTXルートを優先します。特に &lt;a class=&#34;link&#34; href=&#34;https://github.com/hugohe3/ppt-master&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ppt-master&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://github.com/seulee26/mckinsey-pptx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;mckinsey-pptx&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://github.com/sunbigfly/ppt-agent-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ppt-agent-skills&lt;/a&gt; です。&lt;/p&gt;
&lt;p&gt;自分で発表し、後続編集より視覚表現を重視するなら、HTMLルートを優先します。特に &lt;a class=&#34;link&#34; href=&#34;https://github.com/zarazhangrui/frontend-slides&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;frontend-slides&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/09/guizang-ppt-skill-huashu-design-agent-skills/&#34; &gt;guizang-ppt-skill&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://github.com/lewislulu/html-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;html-ppt-skill&lt;/a&gt; です。&lt;/p&gt;
&lt;p&gt;ポスター感、表紙感、拡散用ビジュアルが目的なら、画像ルートを優先します。たとえば &lt;a class=&#34;link&#34; href=&#34;https://github.com/NyxTides/ppt-image-first&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ppt-image-first&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://github.com/wuyoscar/gpt_image_2_skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;gpt_image_2_skill&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://github.com/op7418/NanoBanana-PPT-Skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NanoBanana-PPT-Skills&lt;/a&gt; です。&lt;/p&gt;
&lt;p&gt;すでにPPTファイルがあり、AIに読み取り、修正、再配置を手伝わせたいだけなら、MCPルートを見るとよいでしょう。&lt;/p&gt;
&lt;p&gt;学術、マーケティング、翻訳、長いレポートの圧縮といった明確な場面では、汎用PPT生成器に無理をさせるのではなく、垂直Skillを探すのもよい選択です。&lt;/p&gt;
&lt;h2 id=&#34;最後に注意したいこと&#34;&gt;最後に注意したいこと
&lt;/h2&gt;&lt;p&gt;オープンソースプロジェクトはStarだけで判断できません。実際に使う前に、次の3点を確認してください。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LICENSEが自分の利用方法を許可しているか。&lt;/li&gt;
&lt;li&gt;生成物が納品要件を満たすか。特に編集性。&lt;/li&gt;
&lt;li&gt;モデル呼び出し、画像生成、大きなコンテキストモデル、クラウドサービス費用を含めて、コストが許容できるか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この種のツールは変化が速く、Star数もメンテナンス状況も変わります。それでも選定ロジックは比較的安定しています。まず納品形態を決め、それから具体的なツールを見ることです。PPTが「話すため」なのか、「編集してもらうため」なのか、「見てもらうため」なのか。この3つの答えだけで、選択肢はかなり絞れます。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>wx-cli 解説：コマンドラインでローカルの WeChat チャット履歴を検索する</title>
        <link>https://knightli.com/ja/2026/05/18/wx-cli-wechat-local-data-command-line-tool/</link>
        <pubDate>Mon, 18 May 2026 21:02:21 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/18/wx-cli-wechat-local-data-command-line-tool/</guid>
        <description>&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; は Rust で書かれたローカル WeChat データ向けのコマンドラインツールです。自分の WeChat セッション、チャット履歴、連絡先、グループメンバー、お気に入り、Moments、公式アカウント記事、添付ファイル、統計情報をターミナルから検索できるようにすることを目的としています。&lt;/p&gt;
&lt;p&gt;これはクラウド型の WeChat 同期サービスでも、チャットボットでもありません。むしろローカルの読み取り専用データ検索レイヤーに近いものです。WeChat は引き続き手元のマシンで動作し、データも手元に残ります。&lt;code&gt;wx-cli&lt;/code&gt; は必要に応じてローカルデータベースを復号、キャッシュ、検索し、その結果を YAML または JSON として人間や Agent に返します。&lt;/p&gt;
&lt;p&gt;このプロジェクトで注目したい点は二つあります。一つは、WeChat のローカルデータ検索をクロスプラットフォーム CLI としてまとめていること。もう一つは、Claude Code、Cursor、Codex のような AI Agent の利用シーンを明確に意識し、&lt;code&gt;SKILL.md&lt;/code&gt; と &lt;code&gt;meta&lt;/code&gt; 付きの構造化出力を提供していることです。&lt;/p&gt;
&lt;h2 id=&#34;wx-cli-でできること&#34;&gt;wx-cli でできること
&lt;/h2&gt;&lt;p&gt;プロジェクト README によると、&lt;code&gt;wx-cli&lt;/code&gt; はかなり広い機能をカバーしています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;最近のセッションと未読セッションを表示する。&lt;/li&gt;
&lt;li&gt;特定の連絡先またはグループのチャット履歴を検索する。&lt;/li&gt;
&lt;li&gt;ローカルデータベース全体からキーワード検索する。&lt;/li&gt;
&lt;li&gt;新着メッセージを表示する。&lt;/li&gt;
&lt;li&gt;連絡先、グループメンバー、グループ内ニックネームを検索する。&lt;/li&gt;
&lt;li&gt;お気に入りを検索する。&lt;/li&gt;
&lt;li&gt;Moments の通知、タイムライン、本文を検索する。&lt;/li&gt;
&lt;li&gt;公式アカウントの記事配信を検索する。&lt;/li&gt;
&lt;li&gt;チャット内の画像添付を一覧表示し、抽出する。&lt;/li&gt;
&lt;li&gt;チャット統計を作成する。&lt;/li&gt;
&lt;li&gt;チャット履歴を Markdown または JSON としてエクスポートする。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの機能により、単なる「チャット履歴検索」ではなく、WeChat のローカルデータを検索、集計、エクスポートできるローカル資料庫として扱えるようになります。&lt;/p&gt;
&lt;h2 id=&#34;ai-agent-に向いている理由&#34;&gt;AI Agent に向いている理由
&lt;/h2&gt;&lt;p&gt;多くの CLI ツールは人間向けで、出力も単なるテキストになりがちです。&lt;code&gt;wx-cli&lt;/code&gt; は Agent が読むことを明確に想定しています。&lt;/p&gt;
&lt;p&gt;README では、&lt;code&gt;history&lt;/code&gt;、&lt;code&gt;search&lt;/code&gt;、&lt;code&gt;sessions&lt;/code&gt;、&lt;code&gt;unread&lt;/code&gt;、&lt;code&gt;new-messages&lt;/code&gt;、&lt;code&gt;stats&lt;/code&gt;、&lt;code&gt;attachments&lt;/code&gt; などのコマンドが &lt;code&gt;meta&lt;/code&gt; 情報を付けて返すと説明されています。&lt;code&gt;meta&lt;/code&gt; には結果の状態、不明なシャード、ヒットしたデータの最新時刻、session 記録の最新時刻などが含まれます。&lt;/p&gt;
&lt;p&gt;これは Agent にとって有用です。AI は「何が見つかったか」だけでなく、「結果は新しいのか」「メッセージが抜けている可能性はないか」「再度 init すべきか」も判断する必要があるためです。たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;status&lt;/code&gt; は結果が &lt;code&gt;ok&lt;/code&gt; なのか &lt;code&gt;possibly_stale&lt;/code&gt; なのかを示せます。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unknown_shards&lt;/code&gt; は daemon が現在 key を持っていないデータベースシャードの存在を示せます。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chat_latest_timestamp&lt;/code&gt; はヒットしたデータ内の最新メッセージ時刻を Agent に伝えます。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;session_last_timestamp&lt;/code&gt; はローカルの session 記録が検索結果より明らかに新しいかどうかを判断する助けになります。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この種のメタ情報は AI の誤判断を減らし、Claude Code、Cursor、Codex のようなツールが WeChat データを扱うときの安定性を高めます。&lt;/p&gt;
&lt;h2 id=&#34;インストール方法&#34;&gt;インストール方法
&lt;/h2&gt;&lt;p&gt;プロジェクトは npm によるクロスプラットフォームインストールを推奨しています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @jackwener/wx-cli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;macOS / Linux では curl によるインストールにも対応しています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/jackwener/wx-cli/main/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Windows では管理者 PowerShell で実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;irm &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;https&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;//&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;githubusercontent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;com&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;jackwener&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;wx-cli&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;install&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;ps1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;iex
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ソースからビルドする場合は、Rust を直接使えます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone git@github.com:jackwener/wx-cli.git &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; wx-cli
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo build --release
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ビルド成果物は &lt;code&gt;target/release/wx&lt;/code&gt;、Windows では &lt;code&gt;wx.exe&lt;/code&gt; です。&lt;/p&gt;
&lt;h2 id=&#34;agent-skill-との関係&#34;&gt;Agent Skill との関係
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; は AI Agent 向けの Skill も提供しています。skills CLI を使えば、Claude Code、Cursor、Codex など Skills 対応環境へ一度に導入できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add jackwener/wx-cli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;グローバルにインストールする場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add jackwener/wx-cli -g
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;インストール後、Agent はリポジトリ内の &lt;code&gt;SKILL.md&lt;/code&gt; を読み、&lt;code&gt;wx-cli&lt;/code&gt; のインストール、初期化、呼び出し方法を理解します。&lt;/p&gt;
&lt;p&gt;つまり、Agent に次のようなローカル情報整理を依頼できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;特定期間に特定のグループチャットで話題になったキーワードを探す。&lt;/li&gt;
&lt;li&gt;最近の未読メッセージを要約する。&lt;/li&gt;
&lt;li&gt;特定セッションから最近のチャット履歴をエクスポートする。&lt;/li&gt;
&lt;li&gt;公式アカウント記事のリンクを検索する。&lt;/li&gt;
&lt;li&gt;グループチャット内の発言統計を分析する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;前提は変わりません。対象データは、あなた自身のマシン上にある、あなた自身の WeChat データである必要があります。&lt;/p&gt;
&lt;h2 id=&#34;基本的な使い方&#34;&gt;基本的な使い方
&lt;/h2&gt;&lt;p&gt;初期化前には WeChat を起動しておく必要があります。要件はプラットフォームごとに異なります。&lt;/p&gt;
&lt;p&gt;Linux では次を実行できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo wx init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Windows では管理者 PowerShell を使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wx&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;macOS は少し複雑です。README によると、デフォルトの方法では WeChat に ad-hoc 署名を行い、プロセスメモリをスキャンできるようにする必要があります。再署名後は古い TCC 権限レコードも削除する必要があります。そうしないと、スクリーンショット、ビデオ通話、マイクなどの権限が「有効に見えるのに実際には拒否される」状態になることがあります。プロジェクトドキュメントでは、再署名によって macOS が他の App のデータアクセス許可を頻繁に求める副作用も注意しています。&lt;/p&gt;
&lt;p&gt;初期化後は、次のコマンドで確認できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx sessions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;最近のセッションが見えれば、基本的な経路は利用可能です。daemon は初回呼び出し時に自動起動します。&lt;/p&gt;
&lt;h2 id=&#34;よく使うコマンド例&#34;&gt;よく使うコマンド例
&lt;/h2&gt;&lt;p&gt;最近のセッションを表示：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx sessions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;未読セッションを表示：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx unread
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;公式アカウントや折りたたみ入口を除外し、個人とグループの未読だけを見る：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx unread --filter private,group
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;特定セッションの最近のチャット履歴を見る：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx &lt;span class=&#34;nb&#34;&gt;history&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;张三&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;さらに多くの履歴を取得：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx &lt;span class=&#34;nb&#34;&gt;history&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;张三&amp;#34;&lt;/span&gt; -n &lt;span class=&#34;m&#34;&gt;2000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;期間を指定してグループチャットを検索：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx &lt;span class=&#34;nb&#34;&gt;history&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;AI群&amp;#34;&lt;/span&gt; --since 2026-04-01 --until 2026-04-15
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;全体検索：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx search &lt;span class=&#34;s2&#34;&gt;&amp;#34;关键词&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;特定グループ内でキーワード検索：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx search &lt;span class=&#34;s2&#34;&gt;&amp;#34;会议&amp;#34;&lt;/span&gt; --in &lt;span class=&#34;s2&#34;&gt;&amp;#34;工作群&amp;#34;&lt;/span&gt; --since 2026-01-01
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;チャット履歴をエクスポート：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx &lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;张三&amp;#34;&lt;/span&gt; --format markdown -o chat.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx &lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;AI群&amp;#34;&lt;/span&gt; --since 2026-01-01 --format json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これらのコマンドはスクリプトや Agent から呼び出す用途に向いており、特に &lt;code&gt;--json&lt;/code&gt; と組み合わせると扱いやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;moments-と公式アカウント記事&#34;&gt;Moments と公式アカウント記事
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; はチャットだけを検索するわけではありません。&lt;/p&gt;
&lt;p&gt;Moments 関連のコマンドは通知と投稿に分かれています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx sns-notifications
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx sns-feed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx sns-search &lt;span class=&#34;s2&#34;&gt;&amp;#34;关键词&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;注意点として、Moments データはローカルで表示されたことのある内容に限られます。WeChat クライアントは必要に応じてデータをダウンロードするため、ローカルに存在したことのないデータをツールが突然取得することはできません。&lt;/p&gt;
&lt;p&gt;公式アカウント記事は独立したコマンドで検索します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx biz-articles
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx biz-articles --account &lt;span class=&#34;s2&#34;&gt;&amp;#34;返朴&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx biz-articles --since 2026-05-01 --until 2026-05-10
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx biz-articles --json &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq &lt;span class=&#34;s1&#34;&gt;&amp;#39;.[].url&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;アカウント名、タイトル、URL、概要、カバー画像、時刻などのフィールドが返ります。資料整理、記事収集、ローカル知識ベースづくりをしている人には実用的な機能です。&lt;/p&gt;
&lt;h2 id=&#34;添付ファイルの抽出&#34;&gt;添付ファイルの抽出
&lt;/h2&gt;&lt;p&gt;WeChat チャット内の画像添付は、通常そのまま読める一般的な画像ファイルではなく、&lt;code&gt;xwechat_files/&amp;lt;wxid&amp;gt;/msg/attach/...&lt;/code&gt; 配下の &lt;code&gt;.dat&lt;/code&gt; ファイルとして保存されています。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; は二段階のフローを提供しています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx attachments &lt;span class=&#34;s2&#34;&gt;&amp;#34;张三&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx attachments &lt;span class=&#34;s2&#34;&gt;&amp;#34;AI群&amp;#34;&lt;/span&gt; --kind image -n &lt;span class=&#34;m&#34;&gt;100&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;まず &lt;code&gt;attachment_id&lt;/code&gt; を取得し、その後で抽出します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx extract &amp;lt;attachment_id&amp;gt; -o ~/Desktop/photo.jpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;出力レポートには &lt;code&gt;md5&lt;/code&gt;、&lt;code&gt;dat_path&lt;/code&gt;、&lt;code&gt;dat_size&lt;/code&gt;、&lt;code&gt;output&lt;/code&gt;、&lt;code&gt;format&lt;/code&gt;、&lt;code&gt;decoder&lt;/code&gt; などの情報が含まれます。README では legacy XOR、V1 fixed-AES、V2 AES + XOR などのデコード方式に対応していると説明されており、image key の抽出方法はプラットフォームによって異なります。&lt;/p&gt;
&lt;p&gt;この機能は強力ですが、より慎重に使う必要があります。自分のデータだけを処理し、無許可のデータアクセスには使わないでください。&lt;/p&gt;
&lt;h2 id=&#34;daemon-アーキテクチャが重要な理由&#34;&gt;daemon アーキテクチャが重要な理由
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; の性能面のポイントは daemon にあります。&lt;/p&gt;
&lt;p&gt;README が示す構成はおおむね次のようなものです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx (CLI) ──Unix socket──▶ wx-daemon (バックグラウンドプロセス)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                              │
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    ┌─────────┴──────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;               DBCache               連絡先キャッシュ
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           (mtime を見て再利用)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;daemon は初回復号後、データベースと mtime 情報を &lt;code&gt;~/.wx-cli/cache/&lt;/code&gt; に永続化します。データベースファイルの mtime が変わっていなければ、以後の呼び出しではキャッシュを再利用でき、毎回復号する必要がありません。&lt;/p&gt;
&lt;p&gt;これはコマンドライン検索と Agent のループ処理の両方で重要です。Agent は複数のセッションを連続で検索し、複数のキーワードを調べ、その後に統計やエクスポートを行うことがあります。毎回スキャンと復号をやり直すと体験は悪くなります。daemon キャッシュにより、ローカル検索サービスに近い感覚で使えます。&lt;/p&gt;
&lt;h2 id=&#34;原理の簡単な説明&#34;&gt;原理の簡単な説明
&lt;/h2&gt;&lt;p&gt;プロジェクト README は原理を直接説明しています。WeChat 4.x は SQLCipher 4 でローカルデータベースを暗号化し、WCDB は派生後の raw key をプロセスメモリ内にキャッシュします。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; はプラットフォームに応じた方法で WeChat プロセスメモリをスキャンし、key パターンに一致するものを見つけて鍵を抽出します。その後 daemon が必要に応じてデータベースを復号し、キャッシュします。&lt;/p&gt;
&lt;p&gt;低レベルの仕組みはプラットフォームごとに異なります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;macOS は Mach VM API を使います。&lt;/li&gt;
&lt;li&gt;Linux は &lt;code&gt;/proc/&amp;lt;pid&amp;gt;/mem&lt;/code&gt; を使います。&lt;/li&gt;
&lt;li&gt;Windows は &lt;code&gt;VirtualQueryEx&lt;/code&gt; と &lt;code&gt;ReadProcessMemory&lt;/code&gt; を使います。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの仕組みは、初期化に高い権限が必要になりがちな理由、そして macOS で署名やプライバシー権限が関係する理由を説明しています。&lt;/p&gt;
&lt;h2 id=&#34;利用上の境界とリスク&#34;&gt;利用上の境界とリスク
&lt;/h2&gt;&lt;p&gt;この種のツールでは、まず境界を明確にする必要があります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; README の免責事項は明確です。このツールは学習と研究目的に限られ、自分の WeChat データを復号するためのものであり、関連する法令を遵守する必要があります。無許可のデータアクセスに使ってはいけません。&lt;/p&gt;
&lt;p&gt;実際に使うときは、次の点にも注意するのがよいでしょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自分のコンピューター、自分の WeChat アカウントでのみ使う。&lt;/li&gt;
&lt;li&gt;エクスポートしたチャット履歴を安易にクラウドモデルへアップロードしない。&lt;/li&gt;
&lt;li&gt;Agent でチャット履歴を分析する場合、API 事業者とデータ越境リスクを先に確認する。&lt;/li&gt;
&lt;li&gt;Markdown / JSON としてエクスポートした後は、ファイル権限とバックアップ先に注意する。&lt;/li&gt;
&lt;li&gt;会社端末や共有端末で使う前に、コンプライアンスと権限を確認する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ローカルツールだからといってプライバシーリスクがないわけではありません。データが最初から外へ出る経路は減りますが、出力をクラウドモデル、クラウドストレージ、第三者スクリプトに渡せば、リスクは戻ってきます。&lt;/p&gt;
&lt;h2 id=&#34;向いているユーザー&#34;&gt;向いているユーザー
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; は次のような場面に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自分の WeChat 過去メッセージをローカルで素早く検索したい。&lt;/li&gt;
&lt;li&gt;特定セッションを Markdown または JSON としてエクスポートしたい。&lt;/li&gt;
&lt;li&gt;一定期間のグループチャット発言状況を集計したい。&lt;/li&gt;
&lt;li&gt;Claude Code、Cursor、Codex などの Agent にローカル WeChat 資料を整理させたい。&lt;/li&gt;
&lt;li&gt;公式アカウント記事の配信リンクをローカル知識ベースに整理したい。&lt;/li&gt;
&lt;li&gt;WeChat のローカルデータベース構造や復号フローを研究したい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一方で、次のような用途にはあまり向いていません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;クラウド型の WeChat 同期をしたい。&lt;/li&gt;
&lt;li&gt;他人の端末やアカウント権限を回避したい。&lt;/li&gt;
&lt;li&gt;GUI だけで操作したく、コマンドラインに触れたくない。&lt;/li&gt;
&lt;li&gt;macOS の権限、Windows の管理者権限、Linux の sudo を扱いたくない。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; の価値は、単に「コマンドラインで WeChat チャット履歴を検索できる」ことだけではありません。より正確には、WeChat のローカルデータを、検索でき、エクスポートでき、Agent が消費できるローカルデータソースへ変える点にあります。&lt;/p&gt;
&lt;p&gt;daemon アーキテクチャは繰り返し復号と検索性能の問題を解決します。&lt;code&gt;meta&lt;/code&gt; wrapper は AI Agent が結果の鮮度を判断しやすくします。&lt;code&gt;SKILL.md&lt;/code&gt; は Claude Code、Cursor、Codex のようなツールにインストールと利用方法を理解させます。&lt;/p&gt;
&lt;p&gt;WeChat から情報を探す、グループチャットを整理する、記録をエクスポートする、個人資料庫を構築するといった作業が多いなら、&lt;code&gt;wx-cli&lt;/code&gt; は注目に値します。ただし使うときは、常に一つの前提を忘れないことが重要です。処理するのは自分のデータだけにし、エクスポートした結果は慎重に管理してください。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/jackwener/wx-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;jackwener/wx-cli GitHub リポジトリ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Open Design解説：Claude CodeとCodexをAIデザインツールに変える</title>
        <link>https://knightli.com/ja/2026/05/18/open-design-open-source-claude-design-alternative/</link>
        <pubDate>Mon, 18 May 2026 18:57:16 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/18/open-design-open-source-claude-design-alternative/</guid>
        <description>&lt;p&gt;Open Designは、nexu-ioが公開しているオープンソースのAIデザインプロジェクトだ。local-firstで、Claude DesignやFigmaの代替方向を目指している。&lt;/p&gt;
&lt;p&gt;解決しようとしている問題は明確だ。Claude Designは、大規模モデルがデザイン成果物を直接生成できることを示した。しかしその能力が、クローズドで、クラウド限定で、単一モデルに縛られた製品の中だけにあるなら、ユーザーは自己ホスト、自分のAgent接続、モデル差し替え、私有デザインシステムの蓄積、ローカルワークフローへの組み込みが難しくなる。&lt;/p&gt;
&lt;p&gt;Open Designは新しい基盤モデルを作るのではない。あなたのPCにすでにあるcoding-agent CLIを、デザインワークスペースへ接続する。Claude Code、Codex、Cursor Agent、Gemini CLI、OpenCode、Qwen、Copilot CLI、Kimi、DeepSeek TUIなどが、デザインエンジンとして使える。&lt;/p&gt;
&lt;h2 id=&#34;open-designとは何か&#34;&gt;Open Designとは何か
&lt;/h2&gt;&lt;p&gt;Open Designは3つの要素の組み合わせとして理解できる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;会話、プレビュー、プロジェクト管理、エクスポートを行うWeb UI。&lt;/li&gt;
&lt;li&gt;Agentのスケジューリング、ファイル管理、プロジェクト保存、API提供を行うローカルdaemon。&lt;/li&gt;
&lt;li&gt;Agentの出力を、単なるAIページではなくデザイン成果物へ近づけるためのSkills、Design Systems、テンプレート。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ユーザーが要望を入力すると、Open Designは一文をそのままモデルへ投げるだけではない。まずデザインbriefを補足させ、用途と方向性を選ばせる。そのうえで、プロジェクトメタデータ、現在のデザインシステム、Skillファイル、テンプレート、チェックリストをAgentへ注入する。Agentは実際のプロジェクトフォルダでファイルを読み書きし、最後にサンドボックスiframeでプレビューできるartifactを生成する。&lt;/p&gt;
&lt;p&gt;そのため、単発のWebページ生成器ではなく、AIデザインワークフローに近い。&lt;/p&gt;
&lt;h2 id=&#34;普通のai-web生成と何が違うのか&#34;&gt;普通のAI Web生成と何が違うのか
&lt;/h2&gt;&lt;p&gt;多くのAIツールはHTMLページを生成できる。しかしOpen Designの焦点は「モデルにページを書かせる」ことではない。「デザインプロセスに沿って、プレビューでき、エクスポートでき、反復できる成果物を届ける」ことだ。&lt;/p&gt;
&lt;p&gt;いくつかの設計方針がある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;生成前に質問する。新しいdesign briefでは、まず対話式のquestion formが出て、対象者、トーン、ブランド文脈、制約、視覚方向を固める。&lt;/li&gt;
&lt;li&gt;Skillsはファイルであり、ブラックボックスプラグインではない。各Skillは &lt;code&gt;SKILL.md&lt;/code&gt;、&lt;code&gt;assets/&lt;/code&gt;、&lt;code&gt;references/&lt;/code&gt; で構成され、読めるし、差し替えられるし、拡張できる。&lt;/li&gt;
&lt;li&gt;Design SystemsはMarkdownであり、固定テーマJSONではない。色、タイポグラフィ、余白、コンポーネント、モーション、ブランドボイス、避けるべきパターンを &lt;code&gt;DESIGN.md&lt;/code&gt; に書ける。&lt;/li&gt;
&lt;li&gt;Agentは実際のプロジェクトディレクトリで作業する。テンプレートを読み、ファイルを書き、画像を生成し、&lt;code&gt;.pptx&lt;/code&gt;、&lt;code&gt;.pdf&lt;/code&gt;、&lt;code&gt;.zip&lt;/code&gt; などを出力できる。&lt;/li&gt;
&lt;li&gt;成果物はサンドボックスiframeでプレビューされ、制御されていないコードを直接実行するリスクを減らす。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この構造の狙いは、AIを、ルール、素材、チェックリストを持つデザイン協力者に近づけることだ。&lt;/p&gt;
&lt;h2 id=&#34;対応するagent&#34;&gt;対応するAgent
&lt;/h2&gt;&lt;p&gt;Open Designの特徴の一つは、Agentをランタイムとして扱い、特定のモデル企業へ固定しない点だ。&lt;/p&gt;
&lt;p&gt;READMEには、Claude Code、Codex CLI、Devin for Terminal、Cursor Agent、Gemini CLI、OpenCode、Qwen Code、Qoder CLI、GitHub Copilot CLI、Hermes、Kimi、Pi、Kiro、Kilo、Mistral Vibe、DeepSeek TUIなどが挙げられている。これらのCLIを &lt;code&gt;PATH&lt;/code&gt; から自動検出し、ユーザーが切り替えられる。&lt;/p&gt;
&lt;p&gt;適切なローカルCLIがない場合は、OpenAI-compatibleなBYOK proxyも使える。&lt;code&gt;baseUrl&lt;/code&gt;、&lt;code&gt;apiKey&lt;/code&gt;、モデル名を入力すると、daemonがストリーミング出力を同じチャットストリームへ正規化する。&lt;/p&gt;
&lt;p&gt;この設計には利点がある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;単一モデルにロックされない。&lt;/li&gt;
&lt;li&gt;ユーザーがすでにインストール・設定したAgentを再利用できる。&lt;/li&gt;
&lt;li&gt;ローカルファイルの読み書きをdaemonが管理し、権限境界がわかりやすい。&lt;/li&gt;
&lt;li&gt;企業や上級ユーザーは、自社モデルやAPIプロバイダーを接続しやすい。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;skillsとdesign-systemsが中心資産&#34;&gt;SkillsとDesign Systemsが中心資産
&lt;/h2&gt;&lt;p&gt;Open Designには多くのSkillsとDesign Systemsが同梱されている。READMEによれば、組み込みSkillsはWebプロトタイプ、SaaS landing page、dashboard、mobile app、gamified app、SNS carousel、雑誌ポスター、PPT、週報、財務レポート、HR onboarding、invoice、kanban、OKRなどをカバーする。&lt;/p&gt;
&lt;p&gt;Design Systemsは、Agentにブランドレベルの視覚制約を与える。リポジトリ紹介では、Linear、Stripe、Vercel、Airbnb、Tesla、Notion、Apple、Anthropic、Cursor、Supabase、Figma、小紅書などのデザインシステムが挙げられている。&lt;/p&gt;
&lt;p&gt;関係はこう考えるとよい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skillは「今回どんな種類の成果物を作るか」を決める。&lt;/li&gt;
&lt;li&gt;Design Systemは「その成果物がどんなブランドスタイルになるべきか」を決める。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この2層がないと、AIは見慣れているが判断のない汎用ページを生成しやすい。SkillsとDesign Systemsがあれば、モデルは少なくとも明確なタスク境界、視覚参照、チェックルールを持つ。&lt;/p&gt;
&lt;h2 id=&#34;何を生成できるのか&#34;&gt;何を生成できるのか
&lt;/h2&gt;&lt;p&gt;Open DesignはWebプロトタイプだけのツールではない。&lt;/p&gt;
&lt;p&gt;READMEによると、web、desktop、mobile prototypes、slides、images、videos、HyperFramesなどを扱い、HTML、PDF、PPTX、ZIP、Markdownへのエクスポートにも対応する。メディア生成では、ポスター、アバター、インフォグラフィック、地図イラスト、短い動画、HTMLからMP4へのモーショングラフィックなども同じデザインループに含まれる。&lt;/p&gt;
&lt;p&gt;利用場面は広い。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;スタートアップチームがpitch deckを素早く作る。&lt;/li&gt;
&lt;li&gt;プロダクトチームがlanding pageや機能プロトタイプを生成する。&lt;/li&gt;
&lt;li&gt;運用チームがキャンペーンページ、SNS画像、週報を作る。&lt;/li&gt;
&lt;li&gt;デザイナーがmoodboard、視覚方向、初期layoutを作る。&lt;/li&gt;
&lt;li&gt;開発者が要求を動くフロントエンドartifactへ変える。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;価値は「1ページを生成する」だけではない。複数のコンテンツ形態を同じAgentワークフローへ入れることにある。&lt;/p&gt;
&lt;h2 id=&#34;local-firstとは何か&#34;&gt;local-firstとは何か
&lt;/h2&gt;&lt;p&gt;Open Designはlocal-firstを強調する。すべてを遠隔SaaSバックエンドへ渡すのではなく、ローカルでdaemonとプロジェクトワークスペースを動かす。&lt;/p&gt;
&lt;p&gt;READMEで説明されているアーキテクチャはおおむね次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;フロントエンドはNext.js / React / TypeScript。&lt;/li&gt;
&lt;li&gt;ローカルdaemonはNode、Express、SQLite、SSEを使う。&lt;/li&gt;
&lt;li&gt;プロジェクト、セッション、メッセージ、tab、テンプレートなどはローカルSQLiteと &lt;code&gt;.od/projects/&amp;lt;id&amp;gt;/&lt;/code&gt; に保存される。&lt;/li&gt;
&lt;li&gt;Agentは &lt;code&gt;child_process.spawn&lt;/code&gt; で起動し、プロジェクトartifactフォルダで読み書きする。&lt;/li&gt;
&lt;li&gt;プレビューはサンドボックスiframeでレンダリングされる。&lt;/li&gt;
&lt;li&gt;エクスポートはHTML、PDF、PPTX、ZIP、Markdownを含む。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この構造は、設計成果物を自分のマシンに残し、ローカルAgentを接続し、API keyを管理し、私有ワークスペースを維持したいユーザーに向いている。&lt;/p&gt;
&lt;p&gt;ただしlocal-firstは完全オフラインを意味しない。実際の生成は利用するAgentとモデルに依存する。クラウドモデルAPIを使えば、内容はそのプロバイダーへ送られる。より正確には、Open Designはワークスペース、スケジューリング、ファイル、プレビューをローカル制御へ戻し、モデル層はユーザーに選ばせる。&lt;/p&gt;
&lt;h2 id=&#34;claude-design--figmaとの関係&#34;&gt;Claude Design / Figmaとの関係
&lt;/h2&gt;&lt;p&gt;Open DesignはREADMEで、Claude Design / Figmaのオープンソース代替方向と説明している。ただし、伝統的なFigmaクローンではない。&lt;/p&gt;
&lt;p&gt;Figmaは、デザイナーが手動編集、協業、デザイン稿の納品を行うプロ向けツールだ。Open Designはよりagent-nativeで、ユーザーが自然言語、フォーム、Skills、デザインシステムを通じてAgentを動かし、実行可能なartifactを出力する。&lt;/p&gt;
&lt;p&gt;組み合わせている要素は次のようなものだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Designのartifact-first体験。&lt;/li&gt;
&lt;li&gt;Figma的なデザインシステム意識。&lt;/li&gt;
&lt;li&gt;Claude Code / CodexのようなAgentのファイル読み書きと実行能力。&lt;/li&gt;
&lt;li&gt;ローカルdaemonによるプロジェクト管理とサンドボックスプレビュー。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、プロデザイナーの全工程を置き換えるとは限らないが、「アイデアからプレビュー可能なプロトタイプ」への高速ルートとしては向いている。&lt;/p&gt;
&lt;h2 id=&#34;向いているユーザー&#34;&gt;向いているユーザー
&lt;/h2&gt;&lt;p&gt;Open Designが向いているのは次のような人だ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code、Codex、Cursor、Gemini CLIなどのAgentをすでに使っている開発者。&lt;/li&gt;
&lt;li&gt;AIデザイン成果物をローカルプロジェクトディレクトリで管理したい人。&lt;/li&gt;
&lt;li&gt;Webプロトタイプ、PPT、ポスター、運用素材を素早く作りたいスタートアップチーム。&lt;/li&gt;
&lt;li&gt;Skills、Design Systems、プロンプトスタックをカスタマイズしたい上級ユーザー。&lt;/li&gt;
&lt;li&gt;単一モデルや単一クラウド製品に縛られたくないチーム。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;あまり向いていないのは次のような人だ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Webページを開き、一文を入力し、すぐ画像をダウンロードしたい軽量ユーザー。&lt;/li&gt;
&lt;li&gt;Node、pnpm、daemon、CLI、ローカル設定に触りたくない人。&lt;/li&gt;
&lt;li&gt;成熟した共同編集、デザインレビュー、ベクター編集を必要とする本格的なFigmaワークフロー。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;言い換えると、Open Designは万人向けの軽量デザインSaaSというより、Agentユーザーと技術寄りのデザインチーム向けのツールだ。&lt;/p&gt;
&lt;h2 id=&#34;注意点&#34;&gt;注意点
&lt;/h2&gt;&lt;p&gt;Open DesignのREADMEには &lt;code&gt;0.8.0-preview&lt;/code&gt; とあり、プロジェクトがまだ高速に進化していることが示されている。活発さは魅力だが、API、データディレクトリ、デスクトップ版移行、Skills構造、エクスポートフローは変わる可能性がある。&lt;/p&gt;
&lt;p&gt;使う前に注意したい点は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;安定した企業向けデザインプラットフォームとして扱わない。&lt;/li&gt;
&lt;li&gt;重要な資料を入れる前に、テストプロジェクトでワークフローを試す。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.od/&lt;/code&gt; データを移行する場合は先にバックアップし、daemonとデスクトップアプリを停止する。&lt;/li&gt;
&lt;li&gt;BYOK利用時はAPI key、プロキシURL、ローカル私有ネットワークアクセスのリスクに注意する。&lt;/li&gt;
&lt;li&gt;生成されたデザインは、人間がレビューする。特にブランド、著作権、コピー、視覚一貫性は確認が必要だ。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;オープンソースの利点は、検査でき、変更でき、貢献できることだ。その代わり、ある程度のエンジニアリング摩擦を受け入れる必要がある。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Open Designの見どころは、単に「オープンソース版Claude Design」であることではない。本当に面白いのは、Agent CLI、Skills、Design Systems、ローカルdaemon、サンドボックスプレビューを一つのデザインワークフローにまとめている点だ。&lt;/p&gt;
&lt;p&gt;設計生成を単発promptから、より構造化された流れへ押し上げている。質問し、方向を選び、デザインシステムを読み込み、Skillを読み、実ファイルへ書き、artifactをプレビューし、結果をエクスポートする。&lt;/p&gt;
&lt;p&gt;すでにClaude Code、Codex、Cursorでコード作業をしているなら、Open Designは注目に値する。AIが一枚の画像を描くだけでなく、ローカルプロジェクト空間で、デザインシステムとタスクスキルに沿って、継続的に反復できるデザイン成果物を生成するという新しい製品形態を示している。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/nexu-io/open-design&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;nexu-io/open-design GitHubリポジトリ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude CodeでTokenを節約する：モデル、MCP、CLAUDE.md、Skillsがキャッシュに与える影響</title>
        <link>https://knightli.com/ja/2026/05/18/claude-code-prompt-cache-token-optimization/</link>
        <pubDate>Mon, 18 May 2026 18:30:24 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/18/claude-code-prompt-cache-token-optimization/</guid>
        <description>&lt;p&gt;Claude Codeの長いタスクでは、Prompt Cacheの命中率がコストと速度に直接影響する。キャッシュでTokenを節約できることは知られているが、どの操作で突然キャッシュが外れるのかは見落とされがちだ。&lt;/p&gt;
&lt;p&gt;毎回のリクエストは、左から右へ流れるコンテキストの鎖として考えるとわかりやすい。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tools -&amp;gt; system -&amp;gt; CLAUDE.md / skills -&amp;gt; messages
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;左にある内容ほど安定させるべきで、キャッシュ効果も大きい。左側が変わると、その後ろのキャッシュも再計算されやすい。逆に右側の変化は影響範囲が小さい。&lt;/p&gt;
&lt;p&gt;つまりClaude CodeのPrompt Cache最適化は、勘ではない。タスク開始前にモデル、MCP、Skills、&lt;code&gt;CLAUDE.md&lt;/code&gt;などの基本コンテキストを準備し、開始後はできるだけ変えないことが重要だ。&lt;/p&gt;
&lt;h2 id=&#34;prompt-cacheは文字列そのものをキャッシュしない&#34;&gt;Prompt Cacheは文字列そのものをキャッシュしない
&lt;/h2&gt;&lt;p&gt;Prompt Cacheは、プロンプト文字列をそのまま保存するだけの仕組みではない。Transformerモデルでは、前方のコンテキストを注意層で計算したKey/Value状態、つまりKV cacheが重要になる。&lt;/p&gt;
&lt;p&gt;これは2つのことを意味する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;前方のコンテキストが安定していれば、後続リクエストで一部の計算結果を再利用できる。&lt;/li&gt;
&lt;li&gt;モデル、ツール定義、システムプロンプト、前方メッセージが変わると、以前のキャッシュを再利用できないことがある。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anthropic公式ドキュメントも、失効階層を &lt;code&gt;tools -&amp;gt; system -&amp;gt; messages&lt;/code&gt; と整理している。ツール定義の変更は全体のキャッシュに影響し、system層の変更はsystemとmessagesに影響し、messages層の変更は主にメッセージキャッシュに影響する。&lt;/p&gt;
&lt;p&gt;Claude Codeではさらに &lt;code&gt;CLAUDE.md&lt;/code&gt;、Skills、MCP、プラグイン、subagentなどが関わるため、実際の利用ではキャッシュ失効点を踏みやすい。&lt;/p&gt;
&lt;h2 id=&#34;キャッシュを壊す要因1途中でモデルを切り替える&#34;&gt;キャッシュを壊す要因1：途中でモデルを切り替える
&lt;/h2&gt;&lt;p&gt;モデル切り替えは最も影響が大きい操作の一つだ。&lt;/p&gt;
&lt;p&gt;Prompt Cacheはモデルごとに分離される。Opus、Sonnet、Haikuは構造や重みが異なるため、同じテキストから計算したKV cacheも共有できない。Opusで長いコンテキストを作ったあとSonnetへ切り替えても、SonnetはOpusのキャッシュを再利用できない。&lt;/p&gt;
&lt;p&gt;そのため、節約のつもりで途中から安いモデルへ切り替えると、かえってそれまでのキャッシュが無駄になることがある。本来cache read価格で読めたコンテキストが、再度書き込みと計算の対象になる。&lt;/p&gt;
&lt;p&gt;安定したやり方は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;メイン会話ではモデルを固定する。&lt;/li&gt;
&lt;li&gt;安いモデルで処理したい支線タスクはsubagentに分離する。&lt;/li&gt;
&lt;li&gt;支線エージェントに検索、探索、整理を任せ、要約だけをメイン会話へ戻す。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうするとメインの長いコンテキストを動かさず、キャッシュ命中率を保ちやすい。&lt;/p&gt;
&lt;h2 id=&#34;キャッシュを壊す要因2途中でmcpを追加するプラグインを再読み込みする&#34;&gt;キャッシュを壊す要因2：途中でMCPを追加する、プラグインを再読み込みする
&lt;/h2&gt;&lt;p&gt;MCPはClaude Codeへツールを提供する。新しいMCPサーバーを追加するとツール一覧が変わる。ツール定義はコンテキスト鎖の最も左側にある。&lt;/p&gt;
&lt;p&gt;Prompt Cacheの視点では、ツール一覧が変わると、その後ろのsystemとmessagesも再計算が必要になりやすい。MCPが多い場合、ツール定義そのものが多くのTokenを占めるため、失効コストは大きくなる。&lt;/p&gt;
&lt;p&gt;ただし重要な細部がある。Claude Codeは通常、セッション起動時にMCP設定を読む。途中で設定を変えても現在のsessionにすぐ影響するとは限らない。本当に注意すべきなのは、再起動、resume、プラグイン再読み込み、ツール一覧の再構築が起きる場面だ。&lt;/p&gt;
&lt;p&gt;おすすめは：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;長いタスクの前に必要なMCPをまとめて用意する。&lt;/li&gt;
&lt;li&gt;作業中に不足に気づいてインストールし、再読み込みする流れを避ける。&lt;/li&gt;
&lt;li&gt;大きなMCPツールセットは必要時だけ使う、またはデフォルト有効数を減らす。&lt;/li&gt;
&lt;li&gt;ほとんど使わないMCPを常時有効にしない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ツール定義が安定していてこそ、Prompt Cacheは安定して命中する。&lt;/p&gt;
&lt;h2 id=&#34;キャッシュを壊す要因3途中でclaudemdを編集する&#34;&gt;キャッシュを壊す要因3：途中でCLAUDE.mdを編集する
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;はClaude Codeのプロジェクト記憶ファイルだ。ビルドコマンド、テストコマンド、設計上の約束、コードスタイル、プロジェクト固有の注意点を書くのに向いている。&lt;/p&gt;
&lt;p&gt;便利だが、これもコンテキストに入る。Claudeのヘルプでは、&lt;code&gt;CLAUDE.md&lt;/code&gt;はセッション開始時に読まれ、ユーザーメッセージとしてClaudeへ渡されると説明されている。またAnthropicのPrompt Cacheも使われる。最初のリクエストでは通常の入力価格を払い、以後キャッシュが有効なら低いcache readコストで処理される。&lt;/p&gt;
&lt;p&gt;問題は、&lt;code&gt;CLAUDE.md&lt;/code&gt;が内容で識別されることだ。ファイル内容を変えると、旧キャッシュとは一致しない。&lt;/p&gt;
&lt;p&gt;そのため、長いタスクの途中で頻繁に&lt;code&gt;CLAUDE.md&lt;/code&gt;を編集しないほうがよい。より良い使い方は：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;タスク開始前に&lt;code&gt;CLAUDE.md&lt;/code&gt;が十分か確認する。&lt;/li&gt;
&lt;li&gt;安定したルールはファイルへ、臨時指示は現在の会話へ置く。&lt;/li&gt;
&lt;li&gt;一度だけの要望のために長期記憶ファイルを編集しない。&lt;/li&gt;
&lt;li&gt;どうしても変更するなら、次の段階を新しいsessionや新しいフェーズとして扱う。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;は安定したプロジェクト説明であり、毎回変えるメモ帳ではない。&lt;/p&gt;
&lt;h2 id=&#34;キャッシュを壊す要因4途中でskillsをインストールまたは更新する&#34;&gt;キャッシュを壊す要因4：途中でSkillsをインストールまたは更新する
&lt;/h2&gt;&lt;p&gt;Skillsもコンテキストの一部だ。新しいSkillを入れる、Skillを更新する、Skill一覧が変わると、セッションへ注入されるコンテキストも変わる。&lt;/p&gt;
&lt;p&gt;こうした変化は、reload、resume、新しいsessionで反映されることが多い。messagesが再構築されると、古いキャッシュは命中しにくくなる。&lt;/p&gt;
&lt;p&gt;MCPと同じく、次のように扱うとよい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;タスク開始前に必要なSkillsを決める。&lt;/li&gt;
&lt;li&gt;同じ種類のタスクではSkillセットを固定する。&lt;/li&gt;
&lt;li&gt;長いタスクの途中でSkillsを追加しない。&lt;/li&gt;
&lt;li&gt;新しいSkillを入れたら、新しい段階の始まりとして扱う。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;コンテンツ作成、レビュー、デプロイ、翻訳など反復する作業では、よく使うSkillsを固定するとコンテキスト構造が安定する。&lt;/p&gt;
&lt;h2 id=&#34;キャッシュを壊す要因5ttlを超えてアイドルになる&#34;&gt;キャッシュを壊す要因5：TTLを超えてアイドルになる
&lt;/h2&gt;&lt;p&gt;Prompt Cacheは永久に保存されない。一般的なデフォルト有効期間は数分程度で、Claude Code関連の説明でも約5分のキャッシュウィンドウが言及されることがある。TTLを過ぎると、同じリクエストでもサーバー側でキャッシュが消えている可能性がある。&lt;/p&gt;
&lt;p&gt;長いタスクで「さっきまで安かったのに、少し離席したらTokenが増えた」と感じる原因はこれだ。&lt;/p&gt;
&lt;p&gt;Claude Codeの出力を読む、ファイルを確認する、テストを走らせる、次の手を考える。こうした作業だけで5分はすぐ過ぎる。&lt;/p&gt;
&lt;p&gt;環境が対応しているなら、長いタスクの前に1時間のPrompt Cache TTLを有効化できる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;ENABLE_PROMPT_CACHING_1H&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Windows PowerShellでは：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$env:ENABLE_PROMPT_CACHING_1H&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;1時間キャッシュの書き込みコストは、通常5分キャッシュより高くなる。短いタスクには向かないこともあるが、大規模コードベース、長い会話、複雑な多段階開発では、頻繁にキャッシュが切れるより安くなる場合がある。&lt;/p&gt;
&lt;h2 id=&#34;tokenを節約しやすいclaude-code長タスクの組み方&#34;&gt;Tokenを節約しやすいClaude Code長タスクの組み方
&lt;/h2&gt;&lt;p&gt;安定した流れはこうだ。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;タスク開始前にモデルを決め、頻繁に切り替えない。&lt;/li&gt;
&lt;li&gt;必要なMCPを有効にし、不要なMCPは切る。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;は短く、安定した、長期的に有効なルールに絞る。&lt;/li&gt;
&lt;li&gt;今回必要なSkillsを事前に準備する。&lt;/li&gt;
&lt;li&gt;複雑なタスクでは1時間TTLを検討する。&lt;/li&gt;
&lt;li&gt;大きなタスクは段階に分けるが、各段階の内部ではコンテキスト構造を安定させる。&lt;/li&gt;
&lt;li&gt;支線探索はsubagentや別sessionで行い、メイン会話を汚さない。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;目的はすべてのキャッシュミスをなくすことではない。見落としやすく、コストの高い失効を避けることだ。&lt;/p&gt;
&lt;h2 id=&#34;簡単な判断基準&#34;&gt;簡単な判断基準
&lt;/h2&gt;&lt;p&gt;次の一文で判断できる。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;この操作はモデル、ツール定義、システムコンテキスト、またはセッション冒頭の固定メッセージを変えるか？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;答えがはいなら、Prompt Cacheに影響する可能性が高い。コンテキスト鎖の左側に近いほど影響は大きい。&lt;/p&gt;
&lt;p&gt;よくある操作はこう整理できる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;モデル切り替え：高リスク。モデルごとにキャッシュが分離される。&lt;/li&gt;
&lt;li&gt;MCP追加またはプラグイン再読み込み：高リスク。ツール一覧が変わる。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;編集：中高リスク。プロジェクト記憶が変わる。&lt;/li&gt;
&lt;li&gt;Skillsインストール：中高リスク。注入コンテキストが変わる。&lt;/li&gt;
&lt;li&gt;通常の会話継続：低リスク。主にmessagesを追加するだけ。&lt;/li&gt;
&lt;li&gt;TTL超過のアイドル：高リスク。サーバー側キャッシュが期限切れになる。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Claude CodeのPrompt Cache最適化で大事なのは、パラメータを暗記することではなく、sessionの前方コンテキストを安定させることだ。&lt;/p&gt;
&lt;p&gt;モデルを気軽に切り替えない。MCPやSkillsを作業途中で増やさない。&lt;code&gt;CLAUDE.md&lt;/code&gt;を臨時メモとして頻繁に編集しない。複雑なタスクではTTL延長を検討する。これらを守るだけで、長いタスクのTokenコストと応答速度はかなり予測しやすくなる。&lt;/p&gt;
&lt;p&gt;実用的な一言にすると、始める前に整え、始めた後はあまり動かさない。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic：Tool use with prompt caching&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://support.claude.com/en/articles/14553240-give-claude-context-claude-md-and-better-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude Help Center：CLAUDE.md and prompt caching&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/mcp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude Code Docs：Connect Claude Code to tools via MCP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Midjourney vs Stable Diffusion：AI画像生成ツールはどう選ぶべきか</title>
        <link>https://knightli.com/ja/2026/05/18/midjourney-vs-stable-diffusion-ai-image-generator/</link>
        <pubDate>Mon, 18 May 2026 18:23:50 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/18/midjourney-vs-stable-diffusion-ai-image-generator/</guid>
        <description>&lt;p&gt;MidjourneyとStable Diffusionは、現在のAI画像生成分野で最もよく比較される2つのツールだ。どちらも高品質な画像を生成できるが、製品としての考え方はまったく違う。&lt;/p&gt;
&lt;p&gt;Midjourneyは、よく調整された高級カメラに近い。クローズドで、クラウド型で、有料だが、扱いやすい。数文を入力するだけで、見た目の完成度が高い画像が出やすい。Stable Diffusionは、自由に組み立てられるプロ向けスタジオに近い。オープンで、ローカル実行でき、深くカスタマイズできるが、モデル、パラメータ、ワークフロー、ハードウェアの理解が必要になる。&lt;/p&gt;
&lt;p&gt;つまり、単純に「どちらが強いか」ではない。大事なのは「何をしたいか」だ。速くきれいな画像を出したいならMidjourneyが楽だ。精密な制御、バッチ生成、プライベート運用、自動化可能なワークフローが必要ならStable Diffusionのほうが伸びしろが大きい。&lt;/p&gt;
&lt;h2 id=&#34;結論&#34;&gt;結論
&lt;/h2&gt;&lt;p&gt;ブログ運営者、個人デザイナー、イラストのアイデア出しをするクリエイターで、表紙、ポスター、コンセプトアート、ムードボードを素早く作りたいなら、まずMidjourneyを選ぶとよい。&lt;/p&gt;
&lt;p&gt;ECの商品画像、AIモデル試着、建築・室内レンダリング、ゲームアート素材、バッチ生成、プライベートデプロイ、自動化APIが必要なら、Stable Diffusionが向いている。&lt;/p&gt;
&lt;p&gt;AI画像生成を試したいだけで、PCやパラメータを触りたくないなら、Midjourneyの学習コストはずっと低い。&lt;/p&gt;
&lt;p&gt;ComfyUI、LoRA、ControlNet、Checkpointを学ぶ気があり、十分なNVIDIA GPUを持っているなら、Stable Diffusionの上限は高い。&lt;/p&gt;
&lt;h2 id=&#34;本質的な違い製品かエコシステムか&#34;&gt;本質的な違い：製品か、エコシステムか
&lt;/h2&gt;&lt;p&gt;Midjourneyは完成された製品だ。公式サイトやDiscordから利用し、モデル、計算資源、キュー、スタイル、パラメータ、動画機能は公式側が管理する。標準設定の見た目が良く、審美性が安定し、アイデア出しが速い。一方で、モデルの内部を改造したり、ワークフロー全体を自分のマシンへ移したりすることはできない。&lt;/p&gt;
&lt;p&gt;Stable Diffusionはオープンなエコシステムに近い。SDXL、SD3.5、Flux、コミュニティモデルを、WebUI、ComfyUI、ローカルスクリプト、クラウドサービスで動かせる。制御、学習、バッチ生成、私有化に強いが、GPU、モデル管理、拡張機能、パラメータ調整に時間がかかる。&lt;/p&gt;
&lt;p&gt;使い勝手はこう分かれる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Midjourneyは選択肢を減らし、安定した標準の美しさを提供する。&lt;/li&gt;
&lt;li&gt;Stable Diffusionは選択肢を増やし、そのぶん複雑さも引き受けさせる。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;画質midjourneyは最初の一枚が映えやすい&#34;&gt;画質：Midjourneyは最初の一枚が映えやすい
&lt;/h2&gt;&lt;p&gt;Midjourneyの強みは、最初に出る画像の見栄えだ。「映画風ポートレート」「未来都市のポスター」「高級香水広告」といった短い指示でも、光、構図、質感、雰囲気を自動で補ってくれる。写真やデザインに詳しくない人には、この標準の審美性が大きな助けになる。&lt;/p&gt;
&lt;p&gt;Stable Diffusionの基盤モデルも高品質な画像を作れるが、標準状態だけで常に安定するとは限らない。多くの場合、適切なモデル、LoRA、サンプラー、プロンプト、ネガティブプロンプト、後処理が必要だ。&lt;/p&gt;
&lt;p&gt;簡単に言えば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Midjourneyは平均的な下限が高い。&lt;/li&gt;
&lt;li&gt;Stable Diffusionは上限が高いが、設定と経験が必要。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SNSの表紙、ブログ画像、ムードボード、素早いビジュアル案には、Midjourneyのほうが時間を節約しやすい。&lt;/p&gt;
&lt;h2 id=&#34;制御性stable-diffusionは本格的な制作向き&#34;&gt;制御性：Stable Diffusionは本格的な制作向き
&lt;/h2&gt;&lt;p&gt;AI画像生成で難しいのは「美しく描く」ことではなく、「指定どおりに描く」ことだ。&lt;/p&gt;
&lt;p&gt;同じ顔を保ちたい。ポーズを骨格に合わせたい。商品を変形させたくない。服の柄を崩したくない。建築線画をリアルなレンダリングにしたい。同じキャラクターを複数のカットに出したい。こうした要求では制御性が重要になる。&lt;/p&gt;
&lt;p&gt;Stable Diffusionはここで強い。ControlNetはポーズ、線画、深度、エッジで構図を制御できる。LoRAは特定の人物、商品、衣装、画風を学習できる。ComfyUIでは生成、アップスケール、切り抜き、インペイント、顔置換、試着、バッチ処理を一つのワークフローにまとめられる。&lt;/p&gt;
&lt;p&gt;Midjourneyにもスタイル参照、キャラクター参照、画像参照、局所編集がある。新しいバージョンではプロンプト理解と細部保持も改善されている。それでも、創造的な探索には向いているが、高制約な産業ワークフローではStable Diffusionのほうが扱いやすい。&lt;/p&gt;
&lt;h2 id=&#34;プロンプトの考え方審美性かエンジニアリングか&#34;&gt;プロンプトの考え方：審美性か、エンジニアリングか
&lt;/h2&gt;&lt;p&gt;Midjourneyは審美的な意図を読むツールに近い。自然言語で書くと、見栄えのよい要素を自動で補ってくれる。普通のユーザーにとっては長所だ。照明、レンズ、素材、構図をすべて細かく書く必要がない。&lt;/p&gt;
&lt;p&gt;Stable Diffusionは、調整可能な生成システムに近い。自然言語でも説明できるが、モデル、解像度、サンプリングステップ、CFG、ControlNet条件、LoRA重み、インペイント範囲まで指定できる。ボタン一つではなく、分解して再利用できる生成パイプラインだ。&lt;/p&gt;
&lt;p&gt;だから、初めてStable Diffusionを使う人は面倒に感じやすい。単一のアプリではなく、ツールボックスだからだ。&lt;/p&gt;
&lt;h2 id=&#34;キャラクターとスタイルの一貫性&#34;&gt;キャラクターとスタイルの一貫性
&lt;/h2&gt;&lt;p&gt;Midjourneyにはキャラクター参照とスタイル参照があり、おおまかな人物の雰囲気、服装、画面の方向性を保つのに役立つ。短いビジュアル企画、ポスターシリーズ、SNS素材なら十分なことも多い。&lt;/p&gt;
&lt;p&gt;しかし、長編漫画、ゲームキャラクター素材、バーチャルモデル、ECブランドビジュアルを作るなら、Stable Diffusionの学習能力が重要になる。LoRAやDreamBoothを使えば、特定のキャラクター、商品、衣装、画風を固定し、多数の画像で一貫させられる。&lt;/p&gt;
&lt;p&gt;違いはこうだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Midjourneyは「同じ人に見える」ことが得意。&lt;/li&gt;
&lt;li&gt;Stable Diffusionは「この人、この商品そのもの」に近づけやすい。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;文字生成とレイアウト&#34;&gt;文字生成とレイアウト
&lt;/h2&gt;&lt;p&gt;AI画像生成ツールは以前から文字が苦手だった。今は改善しているが、まだプロ向けのレイアウトツールではない。&lt;/p&gt;
&lt;p&gt;Midjourneyの新しいバージョンは短い英語、タイトル文字、ポスター風の文字表現に強くなっている。それでも長文、中国語、日本語、多行の商用コピーでは失敗しやすい。&lt;/p&gt;
&lt;p&gt;Stable Diffusionのエコシステムでは、SD3.5などの新しいモデルがより強いテキストエンコーダーを使い、長いプロンプトや文字理解が改善されている。とはいえ、商用デザインで正確な文字が必要なら、AIで画像を作り、Photoshop、Illustrator、Figma、Canvaで文字とレイアウトを仕上げるのが安全だ。&lt;/p&gt;
&lt;h2 id=&#34;動画機能&#34;&gt;動画機能
&lt;/h2&gt;&lt;p&gt;Midjourneyには画像から短い動画を生成し、さらに延長する機能がある。入口が簡単なので、SNS動画、雰囲気動画、動くカバー画像に向いている。&lt;/p&gt;
&lt;p&gt;Stable DiffusionにもAnimateDiff、SVD、ComfyUIの動画ワークフローがあるが、構築と調整は難しい。ノード、VRAM、モデル、フレームの一貫性を扱う必要がある。&lt;/p&gt;
&lt;p&gt;一枚の画像を動かしたいだけならMidjourneyが楽だ。&lt;/p&gt;
&lt;p&gt;動画生成を自分の自動化ワークフローに組み込みたいなら、Stable Diffusionエコシステムのほうが自由度は高い。&lt;/p&gt;
&lt;h2 id=&#34;ハードウェアとコスト&#34;&gt;ハードウェアとコスト
&lt;/h2&gt;&lt;p&gt;Midjourneyはクラウド型の有料サービスだ。GPUは不要で、スマホ、タブレット、薄型ノートPCでも使える。主なコストはサブスクリプション料金と生成枠だ。&lt;/p&gt;
&lt;p&gt;Stable Diffusionはローカル実行でき、ソフトウェアや多くのモデルは無料だが、ハードウェアは無料ではない。快適に使うには、十分なVRAMを持つNVIDIA GPUがほしい。SDXL、SD3.5、Flux、動画ワークフロー、高解像度アップスケール、バッチ生成はどれもVRAMを使う。8GBでも試せるが、12GB、16GB以上のほうが楽だ。&lt;/p&gt;
&lt;p&gt;コストはこう考えるとよい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;低頻度利用：Midjourneyのほうが手軽。&lt;/li&gt;
&lt;li&gt;高頻度の大量生成：ローカルStable Diffusionは長期的に安くなりやすい。&lt;/li&gt;
&lt;li&gt;GPUがない：MidjourneyかクラウドSDを選ぶ。&lt;/li&gt;
&lt;li&gt;高性能GPUがある：Stable Diffusionを試す価値が高い。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;商用利用創意画像か生産ラインか&#34;&gt;商用利用：創意画像か、生産ラインか
&lt;/h2&gt;&lt;p&gt;Midjourneyは初期コンセプト探索に向いている。ブランド方向性、広告の雰囲気、カバー画像、ゲームシーン案、キャラクター設定ラフを素早く大量に出せる。&lt;/p&gt;
&lt;p&gt;Stable Diffusionは制作工程に組み込みやすい。ECモデル試着、商品画像の背景差し替え、室内デザインの線画からレンダリング、キャラクターLoRA学習、企業向け私有素材生成、API自動生成などに向いている。スクリプト、データベース、バックエンド処理、社内ツールへ組み込める。&lt;/p&gt;
&lt;p&gt;言い換えると：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Midjourneyは創造チームのインスピレーション加速器。&lt;/li&gt;
&lt;li&gt;Stable Diffusionは技術チームが構築できる画像生産システム。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;2026年の選び方&#34;&gt;2026年の選び方
&lt;/h2&gt;&lt;p&gt;Midjourneyを選ぶべき人：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;数文で高品質画像を得たい。&lt;/li&gt;
&lt;li&gt;GPU、モデル、ノード、パラメータを学びたくない。&lt;/li&gt;
&lt;li&gt;主にカバー、イラスト、ポスター、コンセプト画像、ムードボードを作る。&lt;/li&gt;
&lt;li&gt;サブスクリプションで手軽さを買いたい。&lt;/li&gt;
&lt;li&gt;極端な精密制御は必要ない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Stable Diffusionを選ぶべき人：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;人物の姿勢、商品形状、線画構造、画面レイアウトを制御したい。&lt;/li&gt;
&lt;li&gt;自分のキャラクター、商品、ブランドスタイル、専用モデルを学習したい。&lt;/li&gt;
&lt;li&gt;画像を大量生成したい、またはWebサイト、ソフトウェア、業務フローに組み込みたい。&lt;/li&gt;
&lt;li&gt;ローカル実行、プライバシー、制御性を重視する。&lt;/li&gt;
&lt;li&gt;ComfyUI、LoRA、ControlNetなどを学ぶつもりがある。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;現実的な組み合わせ&#34;&gt;現実的な組み合わせ
&lt;/h2&gt;&lt;p&gt;多くのプロユーザーは、最終的にどちらか一方ではなく両方を使う。&lt;/p&gt;
&lt;p&gt;よくある流れは、まずMidjourneyでスタイルと構図を素早く探索し、方向性を見つける。次にStable Diffusionで精密制御、キャラクター一貫性、商品一貫性、バッチ生成を行う。最後に従来のデザインツールで文字、レイアウト、細部修正を行う。&lt;/p&gt;
&lt;p&gt;どちらが強いかを議論するより、このほうが実用的だ。&lt;/p&gt;
&lt;p&gt;Midjourneyは可能性を速く見せる。Stable Diffusionはその可能性を制御可能なワークフローに変える。前者は創造速度を上げ、後者は生産の確実性を上げる。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;MidjourneyとStable Diffusionの違いは、本質的には「審美性の自動化」と「ワークフローの制御性」の違いだ。&lt;/p&gt;
&lt;p&gt;Midjourneyは、素早く美しい画像を得たい多くの人に向いている。AI画像生成の入口を下げ、非技術ユーザーでもすぐに制作を始められる。&lt;/p&gt;
&lt;p&gt;Stable Diffusionは、制御、学習、バッチ生成、私有化、自動化が必要な人に向いている。学習コストは高いが、一度ワークフローが通れば、本格的な画像生産基盤になる。&lt;/p&gt;
&lt;p&gt;まだ明確な要件がないなら、まずMidjourney。&lt;br&gt;
「この画像はきれいだが、要求どおりではない」と感じ始めたら、Stable Diffusionを学ぶ時期だ。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.midjourney.com/hc/en-us/articles/32199405667853-Version&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Midjourney Version 公式ドキュメント&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.midjourney.com/hc/en-us/articles/37460773864589-Video&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Midjourney Video 公式ドキュメント&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Stability-AI/sd3.5&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Stability AI Stable Diffusion 3.5 GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Sulphur 2 はなぜ話題なのか？オープンな AI 動画生成、無審査論争、本地デプロイの壁</title>
        <link>https://knightli.com/ja/2026/05/18/sulphur-2-open-ai-video-generation-model/</link>
        <pubDate>Mon, 18 May 2026 00:27:37 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/18/sulphur-2-open-ai-video-generation-model/</guid>
        <description>&lt;p&gt;Sulphur 2 は最近、AI 動画生成コミュニティで多くの議論を呼んでいます。&lt;/p&gt;
&lt;p&gt;Sora、Runway、Pika のようなオンライン商用製品ではなく、ゼロから訓練された新しいアーキテクチャでもありません。より正確には、Sulphur 2 は LTX 2.3 を微調整したオープンウェイトの動画生成モデルであり、本地生成、制御可能なワークフロー、より開かれたプロンプト応答を意識したものです。&lt;/p&gt;
&lt;p&gt;注目されている理由は、単に「動画を生成できる」からではありません。AI 動画モデルの内容境界はプラットフォームが一律に決めるべきなのか、それとも本地ユーザーが合法範囲で責任を負うべきなのか、という古い問題を再び前面に出したからです。&lt;/p&gt;
&lt;h2 id=&#34;sulphur-2-と-ltx-23-の関係&#34;&gt;Sulphur 2 と LTX 2.3 の関係
&lt;/h2&gt;&lt;p&gt;Sulphur 2 の土台は、Lightricks が公開した LTX 2.3 です。&lt;/p&gt;
&lt;p&gt;LTX 2.3 自体は比較的完成度の高い動画生成モデル系列で、text-to-video、image-to-video、可変フレームレート、開始フレーム・終了フレーム制御、音声同期などに対応します。ComfyUI などの本地ワークフローにも接続しやすいエコシステムがあります。&lt;/p&gt;
&lt;p&gt;Sulphur 2 はこの基礎構造を変えたわけではありません。LTX 2.3 の上で、より特定の方向に微調整されています。元記事によると、開発チームは 12.5 万本以上の動画サンプルを使って訓練し、BF16、FP8 mixed、Distill LoRA などの複数バージョンを提供しており、ユーザーはハードウェア条件に合わせて選べます。&lt;/p&gt;
&lt;p&gt;つまり Sulphur 2 は、完全に独立した新しいプラットフォームというより、LTX 2.3 エコシステム内の派生モデルパッケージに近い存在です。&lt;/p&gt;
&lt;p&gt;本地デプロイ、VRAM 要件、ComfyUI ワークフローに関心がある場合は、以前のデプロイ記録も参考になります：&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/12/sulphur-2-ltx-2-3-video-generation/&#34; &gt;Sulphur 2 は 8GB VRAM で動く？LTX 2.3 動画モデルの本地デプロイ記録&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id=&#34;なぜ無審査と呼ばれるのか&#34;&gt;なぜ「無審査」と呼ばれるのか
&lt;/h2&gt;&lt;p&gt;Sulphur 2 で最も議論を呼ぶラベルは uncensored、つまり「無審査」です。&lt;/p&gt;
&lt;p&gt;この言葉は誤解されやすいものです。「何でも生成できる」という意味ではありません。違法コンテンツ、権利侵害、嫌がらせ、なりすまし、同意のない画像生成に使えるという意味でもありません。より正確には、多くの商用動画生成プラットフォームと比べて、敏感だが合法な題材を理由に即座に拒否することが少ない、という意味です。&lt;/p&gt;
&lt;p&gt;商用プラットフォームは通常、保守的な方針を取ります。法律、ブランド、コンプライアンス上のリスクを下げるため、グレーゾーンのプロンプトをまとめてブロックすることがあります。これは悪用リスクを下げますが、通常の創作場面にも影響します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;医学教育。&lt;/li&gt;
&lt;li&gt;歴史題材。&lt;/li&gt;
&lt;li&gt;ニュース再現。&lt;/li&gt;
&lt;li&gt;芸術実験。&lt;/li&gt;
&lt;li&gt;ニッチなスタイル制作。&lt;/li&gt;
&lt;li&gt;本格的なドキュメンタリー素材の構想。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sulphur 2 の考え方は、より多くの判断を本地ユーザーに戻しつつ、違法コンテンツに対する最低限のフィルタリングを残すことです。この方向性は創作の自由度を高めますが、同時により高い責任も求めます。&lt;/p&gt;
&lt;h2 id=&#34;技術的には制限を外しただけではない&#34;&gt;技術的には「制限を外しただけ」ではない
&lt;/h2&gt;&lt;p&gt;Sulphur 2 を「審査層を取り除いた LTX 2.3」とだけ説明するのは不十分です。&lt;/p&gt;
&lt;p&gt;公開情報を見る限り、Sulphur 2 は LTX 2.3 を中心としたモデルウェイトと関連ツールを提供しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VRAM に余裕のあるハードウェア向けの BF16 フル精度版。&lt;/li&gt;
&lt;li&gt;より低い VRAM で使いやすくする FP8 mixed 版。&lt;/li&gt;
&lt;li&gt;速度と品質のバランスを取る Distill LoRA 版。&lt;/li&gt;
&lt;li&gt;text-to-video と image-to-video を試しやすい ComfyUI ワークフロー。&lt;/li&gt;
&lt;li&gt;短い説明を動画生成向きのプロンプトに広げる Prompt Enhancer。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;動画生成は画像生成とは違います。動画には主体とスタイルだけでなく、カメラ移動、人物の動き、時間的連続性、フレーム間の一貫性、ショットサイズ、リズム制御も含まれます。プロンプトが短すぎると、モデルは不安定な細部を補いがちです。&lt;/p&gt;
&lt;p&gt;そのため Prompt Enhancer には意味があります。ユーザーが簡単なアイデアを入力し、小さなモデルがそれを動画モデルに適した説明へ広げ、その後 Sulphur 2 ワークフローで生成します。&lt;/p&gt;
&lt;h2 id=&#34;実際の体験より従順だが万能ではない&#34;&gt;実際の体験：より従順だが万能ではない
&lt;/h2&gt;&lt;p&gt;コミュニティの反応を見ると、Sulphur 2 の分かりやすい特徴は、プロンプトにより従いやすいことです。&lt;/p&gt;
&lt;p&gt;制限が少ないため、合法的な題材で突然拒否したり、品質を下げたり、ユーザー意図を回避したりしにくい傾向があります。これは、特に本地制作、実験映像、コンセプト短編、ニッチな題材など、内容を正確に制御したい人にとって魅力的です。&lt;/p&gt;
&lt;p&gt;ただし、動画生成の最終解ではありません。&lt;/p&gt;
&lt;p&gt;現在のオープン動画モデルには、依然として次のような問題があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;人体の動きが不自然。&lt;/li&gt;
&lt;li&gt;手足や手が変形しやすい。&lt;/li&gt;
&lt;li&gt;長いショットの一貫性が弱い。&lt;/li&gt;
&lt;li&gt;複数主体の相互作用が混乱しやすい。&lt;/li&gt;
&lt;li&gt;複雑なシーン理解が字面に寄りやすい。&lt;/li&gt;
&lt;li&gt;プロンプトには合うが、美感や編集感が弱い。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらは Sulphur 2 だけの問題ではなく、現在の AI 動画生成モデル全般に共通する課題です。Sulphur 2 はプロンプト追従性の一部を改善できますが、動画生成そのものの技術的難しさを消すわけではありません。&lt;/p&gt;
&lt;h2 id=&#34;ハードウェア要件はまだ高い&#34;&gt;ハードウェア要件はまだ高い
&lt;/h2&gt;&lt;p&gt;Sulphur 2 はオープンモデルですが、オープンだからといって普通の PC で気軽に動くわけではありません。&lt;/p&gt;
&lt;p&gt;良い結果を得るには、やはり比較的強い GPU が必要です。元記事では、FP8 版は VRAM 要件を下げるものの、安定して使うには通常それなりの VRAM が必要だとされています。BF16 版はさらにハードウェア要件が高く、ハイエンド GPU やクラウド GPU に向いています。&lt;/p&gt;
&lt;p&gt;つまり Sulphur 2 の「大衆化」は、ワンクリック Web ツールのような大衆化ではなく、オープンソースコミュニティにおける大衆化です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ウェイトをダウンロードできる。&lt;/li&gt;
&lt;li&gt;ワークフローを変更できる。&lt;/li&gt;
&lt;li&gt;ユーザーが本地で実行できる。&lt;/li&gt;
&lt;li&gt;開発者が追加微調整できる。&lt;/li&gt;
&lt;li&gt;コミュニティがパラメータやノード設定を共有できる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;下げているのは制御権の壁であり、必ずしもハードウェアの壁ではありません。&lt;/p&gt;
&lt;h2 id=&#34;最大の争点開放性と安全性をどう両立するか&#34;&gt;最大の争点：開放性と安全性をどう両立するか
&lt;/h2&gt;&lt;p&gt;Sulphur 2 の議論の本質は、特定モデルのパラメータが良いかどうかではありません。オープンな AI 動画生成をどう統治するかという問題です。&lt;/p&gt;
&lt;p&gt;支持者は、オープンモデルがユーザーに代わって過度な判断をすべきではないと考えます。内容が合法である限り、ユーザーは本地環境で芸術、教育、研究、創作の境界を探ることができるべきだという立場です。&lt;/p&gt;
&lt;p&gt;一方で批判者は、動画は画像より現実世界への被害を起こしやすいと懸念します。より開かれたモデルは、偽造、嫌がらせ、権利侵害、誤情報拡散、その他の悪用に使われる可能性があります。開発者が違法コンテンツのフィルタを残していても、二次改変や悪意ある利用を完全に防ぐことは難しいでしょう。&lt;/p&gt;
&lt;p&gt;どちらの見方も簡単には退けられません。&lt;/p&gt;
&lt;p&gt;オープンモデルには自由が必要ですが、責任も必要です。現実的な方向は、モデルを完全に封じることでも、すべてを放任することでもなく、より明確なコミュニティ規範、モデルカード、利用制限、来歴追跡ツール、通報メカニズムを整えることです。&lt;/p&gt;
&lt;h2 id=&#34;どんな人が注目すべきか&#34;&gt;どんな人が注目すべきか
&lt;/h2&gt;&lt;p&gt;Sulphur 2 は次のようなユーザーに向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;すでに ComfyUI や本地動画生成ワークフローに慣れている人。&lt;/li&gt;
&lt;li&gt;LTX 2.3 派生モデルの挙動を研究したい開発者。&lt;/li&gt;
&lt;li&gt;より高いプロンプト追従性を必要とするクリエイター。&lt;/li&gt;
&lt;li&gt;本地環境で制御可能な実験をしたいチーム。&lt;/li&gt;
&lt;li&gt;微調整、LoRA、ワークフロー最適化を行いたいモデルユーザー。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SNS向けの短い動画をすばやく作りたいだけなら、オンライン製品のほうが今でも楽です。Sulphur 2 の価値は「ワンクリックで完成動画」ではなく、試行錯誤する人により多くの制御権を渡すことにあります。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Sulphur 2 の意味は、単に AI 動画生成モデルが一つ増えたことではありません。&lt;/p&gt;
&lt;p&gt;商用プラットフォームの保守的な方針に対する、オープン動画生成コミュニティからの一つの応答に近いものです。モデルが強力になるほど、内容境界は誰が定義すべきなのでしょうか。&lt;/p&gt;
&lt;p&gt;技術的には、LTX 2.3 をベースにし、複数の精度版、LoRA、ComfyUI ワークフロー、Prompt Enhancer を提供しており、本地生成と追加開発に向いています。&lt;/p&gt;
&lt;p&gt;エコシステムの観点では、動画生成の開放性は大きな創作自由と高い悪用リスクを同時にもたらすことを示しています。今後オープンな AI 動画モデルが健全に発展できるかは、技術能力、コミュニティ規範、ユーザー責任が一緒に追いつけるかにかかっています。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://zhuanlan.zhihu.com/p/2036113362052965203&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Zhihu: Open video generation breakthrough, Sulphur 2 brings &amp;ldquo;uncensored&amp;rdquo; AI video to the public&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://sulphur-2.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sulphur 2 公式概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://opencsg.com/models/AIWizards/Sulphur-2-base&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sulphur 2 OpenCSG モデルページ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://sulphur2.org/deploy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sulphur 2 Base Deploy Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Free AI Image Generator はどれが使いやすい？無料 AI 画像生成ツール比較ガイド</title>
        <link>https://knightli.com/ja/2026/05/17/free-ai-image-generator-tools-guide/</link>
        <pubDate>Sun, 17 May 2026 23:10:43 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/17/free-ai-image-generator-tools-guide/</guid>
        <description>&lt;p&gt;使いやすい &lt;strong&gt;free ai image generator&lt;/strong&gt; を探すとき、いまは「あるかどうか」ではなく、「どれを選ぶべきか」が問題です。&lt;/p&gt;
&lt;p&gt;市場にある無料 AI 画像生成ツールは、大きく三つに分けられます。本地で動かすオープンソースツール、無料枠を提供するWebツール、そして大手企業が提供する高めの無料枠または無料入口です。どれも画像を生成できますが、向いているユーザー、学習コスト、権利面、制御性は大きく異なります。&lt;/p&gt;
&lt;p&gt;最初に明確にしておきたいのは、無料は永久無料、無制限、商用利用可を意味しないということです。Webツールの無料枠、待ち行列、透かし、解像度制限、商用利用条件は変わる可能性があります。本地のオープンソースツールもソフトウェア自体は無料ですが、GPU、モデルファイル、時間、モデルライセンスの確認が必要です。&lt;/p&gt;
&lt;h2 id=&#34;本地オープンソース長期的な無料利用と深い制御に向く&#34;&gt;本地オープンソース：長期的な無料利用と深い制御に向く
&lt;/h2&gt;&lt;p&gt;RTX 3060、4060 以上のような十分な NVIDIA GPU があるなら、本地デプロイは「実質的に無制限の無料」に最も近い選択肢です。画像枚数ごとに課金されず、プロンプトや素材を第三者プラットフォームへアップロードする必要もありません。ヘビーユーザー、デザイナー、プライバシーを重視するワークフローに向いています。&lt;/p&gt;
&lt;h3 id=&#34;stable-diffusion-webui--comfyui&#34;&gt;Stable Diffusion WebUI / ComfyUI
&lt;/h3&gt;&lt;p&gt;Stable Diffusion エコシステムは、現在もっとも成熟したオープンソース AI 画像生成環境の一つです。代表的な入口には Stable Diffusion WebUI と ComfyUI があります。&lt;/p&gt;
&lt;p&gt;Stable Diffusion WebUI は従来型ソフトウェアに近い画面で、text-to-image、image-to-image、inpainting、高解像度化をすばやく始めたい人に向いています。ComfyUI はノード型ワークフローで、学習曲線は高めですが、制御性が非常に高く、バッチ生成、ControlNet、参照画像制約、複数モデルの組み合わせ、自動化パイプラインに向いています。&lt;/p&gt;
&lt;p&gt;最大の強みは「無料」だけではなくエコシステムです。Checkpoint、LoRA、ControlNet、VAE、ワークフローテンプレート、各種プラグインが豊富です。写実的な人物、アニメキャラクター、EC商品画像、建築コンセプト、ゲームアセット草案を生成したり、固定スタイルを繰り返し磨いたりできます。&lt;/p&gt;
&lt;p&gt;代償も明確です。環境構築、モデル管理、パラメータ学習が必要で、モデルごとのライセンス条項にも注意しなければなりません。初心者にとって最も手軽な free ai image generator ではありませんが、長期的な実験と深いカスタマイズには最適です。&lt;/p&gt;
&lt;h3 id=&#34;fooocus&#34;&gt;Fooocus
&lt;/h3&gt;&lt;p&gt;Fooocus は、Stable Diffusion XL をより簡単に使えるようにした本地ツールと考えられます。多くのパラメータを裏側に隠し、ユーザーは主にプロンプト入力とスタイル選択だけで、品質のよい画像を生成できます。&lt;/p&gt;
&lt;p&gt;ComfyUI がエンジニア向けすぎる、Stable Diffusion WebUI はパラメータが多すぎる、と感じるなら、Fooocus はより入りやすい出発点です。スタイル探索、カバー案、キャラクターコンセプト、製品ビジュアル、SNS画像に向いています。完全な ComfyUI ワークフローほどの制御性はありませんが、多くの人にとってはそのシンプルさが利点です。&lt;/p&gt;
&lt;h2 id=&#34;webの無料枠インストールせず毎日軽く使いたい人向け&#34;&gt;Webの無料枠：インストールせず毎日軽く使いたい人向け
&lt;/h2&gt;&lt;p&gt;独立GPUがない場合や、たまに数枚生成するだけなら、Webツールのほうが手軽です。多くは毎日のクレジット、無料 Token、待ち行列、低速モードなどで無料利用を提供します。&lt;/p&gt;
&lt;p&gt;この種のツールで見るべきなのは「無料枠の多さ」だけではありません。枠が安定しているか、画質が十分か、中国語に対応するか、image-to-image や局所編集ができるか、高解像度でダウンロードできるか、商用利用が許されるかも重要です。&lt;/p&gt;
&lt;h3 id=&#34;seaart-ai&#34;&gt;SeaArt AI
&lt;/h3&gt;&lt;p&gt;SeaArt AI は機能が比較的そろった Web ベースの AI 画像生成プラットフォームです。多数の Stable Diffusion 系モデルを統合しており、text-to-image、image-to-image、条件制御、高解像度化、outpainting、モデルコミュニティなどに対応します。&lt;/p&gt;
&lt;p&gt;強みは、始めやすさ、スタイルの多さ、中国語フレンドリーな UI です。アニメキャラクター、写実写真、テック系ポスター、製品コンセプト、既存モデルを使った特定スタイルの再現に使えます。&lt;/p&gt;
&lt;p&gt;注意すべきなのは、ポイント、毎日タスク、無料枠が運営方針によって変わることです。具体的な枠を長期保証と考えるのではなく、「毎日軽く使える無料Webツール」として捉えるほうが安全です。&lt;/p&gt;
&lt;h3 id=&#34;leonardoai&#34;&gt;Leonardo.ai
&lt;/h3&gt;&lt;p&gt;Leonardo.ai はクリエイティブ制作とゲームアートのワークフロー寄りです。質感、光、コンセプトデザイン、3D風表現が強く、ゲーム原画、キャラクター設定、シーンコンセプト、ブランドビジュアル、製品レンダリング草案に向いています。&lt;/p&gt;
&lt;p&gt;通常は無料プランまたは無料クレジットを提供していますが、地域、アカウント状態、製品方針によって枠は変わる可能性があります。本地デプロイは避けたいが、高い画面品質がほしい人には、試す価値のある Web 版 free ai image generator です。&lt;/p&gt;
&lt;h3 id=&#34;clipdrop&#34;&gt;Clipdrop
&lt;/h3&gt;&lt;p&gt;Clipdrop は Stability AI エコシステムのツールです。text-to-image だけでなく、背景削除、画像拡大、不要物削除、relighting、落書きから画像への変換など、実用的な機能を提供します。&lt;/p&gt;
&lt;p&gt;単なる画像生成入口というより、AI 画像ツールボックスに近い存在です。既存画像の編集、素早いビジュアル処理、素材草案の生成では、生成後の後処理機能に価値があります。&lt;/p&gt;
&lt;p&gt;無料ユーザーには、回数、待ち時間、透かし、解像度の制限がある場合があります。具体的な条件は必ず現在のプラットフォームルールを確認してください。&lt;/p&gt;
&lt;h2 id=&#34;大手企業の入口手軽さと言語理解を重視する人向け&#34;&gt;大手企業の入口：手軽さと言語理解を重視する人向け
&lt;/h2&gt;&lt;p&gt;大手企業の AI 画像ツールは、安定性、使いやすさ、プロンプト理解の強さが魅力です。自然言語で複雑な場面を説明したい場合や、文字入りのポスター、カバー、イラストを作りたい場合、オープンソースモデルより楽なことがあります。&lt;/p&gt;
&lt;h3 id=&#34;microsoft-designer--bing-image-creator&#34;&gt;Microsoft Designer / Bing Image Creator
&lt;/h3&gt;&lt;p&gt;Microsoft Designer と Bing Image Creator は、OpenAI の DALL-E 系画像機能に接続されています。プロンプト理解、複雑なシーンの再現、画像内の英字、ポスター見出し、デザイン的な構図の扱いが強みです。&lt;/p&gt;
&lt;p&gt;「中国語または英語でカバー画像を説明し、完成度の高い画像をすぐ得たい」という用途なら、Microsoft 系の入口は合っています。記事カバー、SNSポスター、イベント画像、クリエイティブイラスト、軽めの商用ビジュアル案に向きます。&lt;/p&gt;
&lt;p&gt;無料利用には、ブースト枠、待ち行列、速度差が関係する場合があります。実際の枠と制限は Microsoft の現在のページで確認してください。&lt;/p&gt;
&lt;h3 id=&#34;adobe-firefly&#34;&gt;Adobe Firefly
&lt;/h3&gt;&lt;p&gt;Adobe Firefly は、通常の AI 画像生成サイトとは少し違う位置づけです。デザインワークフロー、Generative Fill、スマートな拡張、文字効果、Adobe エコシステムとの統合を重視しています。&lt;/p&gt;
&lt;p&gt;すでに Photoshop、Illustrator、Express を使っているなら、Firefly の強みはより分かりやすくなります。レタッチ、outpainting、背景差し替え、デザイン素材生成、既存画像をもとにしたクリエイティブ編集に向いています。&lt;/p&gt;
&lt;p&gt;Firefly は「商用利用の安全性」とあわせて語られることも多く、Adobe は学習データの出所とライセンス境界を強調しています。ただし、商用利用可否、有料プランの必要性、無料クレジットの計算方法は、Adobe の現在の規約とアカウントプラン次第です。&lt;/p&gt;
&lt;h2 id=&#34;選び方知名度ではなく用途から考える&#34;&gt;選び方：知名度ではなく用途から考える
&lt;/h2&gt;&lt;p&gt;手軽なカバー画像、ポスター、文字入りクリエイティブ画像がほしいなら、Microsoft Designer または Bing Image Creator を先に試すのがよいでしょう。自然言語理解が強く、完成度の高い画像をすばやく出しやすいため、専門外のユーザーにも向いています。&lt;/p&gt;
&lt;p&gt;写実、アニメ、ゲーム原画、製品レンダリング、テック系ビジュアルなど複数スタイルを試したいなら、SeaArt AI や Leonardo.ai が向いています。スタイル探索が速く、本地GPUがない人にも使いやすい選択肢です。&lt;/p&gt;
&lt;p&gt;新しい画像を生成するだけでなく既存画像を処理したいなら、Adobe Firefly と Clipdrop に注目できます。前者はデザイン制作寄り、後者は軽量な画像ツールボックス寄りです。&lt;/p&gt;
&lt;p&gt;学習する意思があり、PC性能も十分なら、Stable Diffusion WebUI、ComfyUI、Fooocus は長期的に最も投資価値の高い無料方案です。上限が高く、限界コストも低い一方で、学習とメンテナンスは必要です。&lt;/p&gt;
&lt;h2 id=&#34;無料-ai-画像生成ツールの落とし穴&#34;&gt;無料 AI 画像生成ツールの落とし穴
&lt;/h2&gt;&lt;p&gt;第一に、無料枠は変わります。今日毎日もらえるポイント数が、来月も同じとは限りません。ワークフローに組み込む前に、最新ルールを確認しましょう。&lt;/p&gt;
&lt;p&gt;第二に、無料は商用利用可を意味しません。多くのツールは無料生成を許可しますが、商用権利、著作権の帰属、学習データをめぐる議論、ブランド素材の利用制限は別途確認が必要です。&lt;/p&gt;
&lt;p&gt;第三に、生成品質はモデルだけで決まりません。プロンプト、参照画像、解像度、後処理、inpainting、画像選別の能力が最終結果を左右します。&lt;/p&gt;
&lt;p&gt;第四に、本地オープンソースにもライセンス問題があります。ソフトウェアがオープンソースでも、すべてのモデルが商用利用できるとは限りません。Checkpoint、LoRA、ワークフローをダウンロードするときは作者の説明を確認しましょう。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;無料の AI 画像生成入口を探しているだけなら、Microsoft Designer、Bing Image Creator、SeaArt AI、Leonardo.ai、Clipdrop、Adobe Firefly はどれも試す価値があります。&lt;/p&gt;
&lt;p&gt;長期的に安定し、低コストで大量の画像を生成したいなら、本地 Stable Diffusion エコシステムが「究極の無料」により近い答えです。&lt;/p&gt;
&lt;p&gt;本当に使いやすい free ai image generator は、無料枠が一番多いツールではなく、用途、権利要件、学習コストに最も合うツールです。&lt;/p&gt;
&lt;h2 id=&#34;参考リンク&#34;&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Stable Diffusion WebUI: &lt;a class=&#34;link&#34; href=&#34;https://github.com/AUTOMATIC1111/stable-diffusion-webui&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/AUTOMATIC1111/stable-diffusion-webui&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ComfyUI: &lt;a class=&#34;link&#34; href=&#34;https://github.com/comfyanonymous/ComfyUI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/comfyanonymous/ComfyUI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fooocus: &lt;a class=&#34;link&#34; href=&#34;https://github.com/lllyasviel/Fooocus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/lllyasviel/Fooocus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;SeaArt AI: &lt;a class=&#34;link&#34; href=&#34;https://www.seaart.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.seaart.ai/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Leonardo.ai: &lt;a class=&#34;link&#34; href=&#34;https://leonardo.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://leonardo.ai/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clipdrop: &lt;a class=&#34;link&#34; href=&#34;https://clipdrop.co/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://clipdrop.co/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Microsoft Designer: &lt;a class=&#34;link&#34; href=&#34;https://designer.microsoft.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://designer.microsoft.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bing Image Creator: &lt;a class=&#34;link&#34; href=&#34;https://www.bing.com/images/create&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.bing.com/images/create&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Adobe Firefly: &lt;a class=&#34;link&#34; href=&#34;https://www.adobe.com/products/firefly.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.adobe.com/products/firefly.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>QuillBot AI Detector は正確？AI文章検出の仕組み、向いている人、注意点</title>
        <link>https://knightli.com/ja/2026/05/17/quillbot-ai-checker-detector-guide/</link>
        <pubDate>Sun, 17 May 2026 23:05:51 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/17/quillbot-ai-checker-detector-guide/</guid>
        <description>&lt;p&gt;QuillBot AI Checker は、QuillBot AI Detector とも呼ばれる QuillBot の AI コンテンツ検出ツールです。&lt;/p&gt;
&lt;p&gt;目的はシンプルです。ある文章が AI によって生成された可能性を推定するためのツールです。&lt;/p&gt;
&lt;p&gt;まず整理しておきたいのは、QuillBot のテキスト向け AI Detector は文章を分析するツールであり、画像、動画、その他のリッチメディアは分析しないという点です。QuillBot には別途 AI Image Detector もあり、画像が人間によって撮影・描画されたものに近いのか、AI 画像生成ツールで作られたものに近いのかを判定します。どちらも QuillBot の検出ツール群に含まれますが、入力対象は異なります。&lt;/p&gt;
&lt;h2 id=&#34;quillbot-ai-checker-でできること&#34;&gt;QuillBot AI Checker でできること
&lt;/h2&gt;&lt;p&gt;QuillBot AI Checker の中心機能は、文章の AI 検出です。&lt;/p&gt;
&lt;p&gt;ユーザーは文章を検出欄に貼り付けたり、アカウント権限によってはファイルをアップロードしたりできます。ツールは文章の特徴を分析し、AI 生成の可能性やリスクの目安を返します。&lt;/p&gt;
&lt;p&gt;見ているのは単語単体ではなく、文章全体のパターンです。たとえば次のような点です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文構造が均一すぎないか。&lt;/li&gt;
&lt;li&gt;語彙選択が予測しやすすぎないか。&lt;/li&gt;
&lt;li&gt;段落展開がテンプレート的ではないか。&lt;/li&gt;
&lt;li&gt;同じような表現が多すぎないか。&lt;/li&gt;
&lt;li&gt;文体がなめらかすぎて自然な揺れが少なくないか。&lt;/li&gt;
&lt;li&gt;論理展開が大規模言語モデルの一般的な回答に似ていないか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;結果は通常、パーセンテージやリスクレベルとして表示され、その文章が AI 生成と見なされる可能性を判断する材料になります。&lt;/p&gt;
&lt;h2 id=&#34;文ごとのハイライトは何に役立つか&#34;&gt;文ごとのハイライトは何に役立つか
&lt;/h2&gt;&lt;p&gt;この種の AI 検出ツールは、全体スコアだけでなく、文章の一部を局所的にマークすることがあります。&lt;/p&gt;
&lt;p&gt;たとえば、ある記事の中で一部の文は AI らしい、一部の文は人間が書いたように見える、また別の文は AI で書かれた後に書き換えられたように見える、といった形です。&lt;/p&gt;
&lt;p&gt;このハイライトの意味は、機械的に 0% AI を目指すことではありません。問題のある箇所を見つけることです。&lt;/p&gt;
&lt;p&gt;ある段落のスコアが高い場合は、次の点を見直せます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;説明書のように見えすぎていないか。&lt;/li&gt;
&lt;li&gt;一般論ばかりになっていないか。&lt;/li&gt;
&lt;li&gt;具体例が足りないのではないか。&lt;/li&gt;
&lt;li&gt;文の長さやリズムが揃いすぎていないか。&lt;/li&gt;
&lt;li&gt;実体験、判断の過程、細部が欠けていないか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;書き手にとっては、総合スコアだけを見るより役に立ちます。本当に直すべきなのは「検出器に見破られない文章」ではなく、より具体的で、判断があり、実際の執筆目的に合った文章です。&lt;/p&gt;
&lt;h2 id=&#34;quillbot-には-ai-image-detector-もある&#34;&gt;QuillBot には AI Image Detector もある
&lt;/h2&gt;&lt;p&gt;文章検出のほかに、QuillBot は独立した AI Image Detector も提供しています。&lt;/p&gt;
&lt;p&gt;これは画像向けのツールで、画像が人間によって撮影・描画されたものなのか、AI 画像モデルで生成されたものなのかを推定します。Midjourney、DALL-E、Stable Diffusion などの生成ツールと一緒に語られることもあります。&lt;/p&gt;
&lt;p&gt;ただし、テキスト向け AI Detector と AI Image Detector は別のツールです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;テキスト検出器は文章を分析します。&lt;/li&gt;
&lt;li&gt;画像検出器は画像を分析します。&lt;/li&gt;
&lt;li&gt;どちらも確率的な判断であり、鑑定や絶対的な結論ではありません。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;記事と画像の両方を確認したい場合は、それぞれの入力に対応したツールを使う必要があります。&lt;/p&gt;
&lt;h2 id=&#34;典型的な利用シーン&#34;&gt;典型的な利用シーン
&lt;/h2&gt;&lt;p&gt;QuillBot AI Checker の主な利用シーンは三つあります。&lt;/p&gt;
&lt;p&gt;一つ目は、学生による自己確認です。&lt;/p&gt;
&lt;p&gt;多くの学校では Turnitin などの学術誠実性ツールを使って論文、レポート、課題を確認します。学生が提出前に AI Detector を使うのは、自分の文章が AI コンテンツと誤判定される可能性を知るためです。&lt;/p&gt;
&lt;p&gt;ただし、ここには注意が必要です。AI 検出器は最終的な判定者ではなく、学校側のシステムと同じ結果を保証するものでもありません。「AI スコアが低い」ことが安全を保証するわけでもありません。より確実なのは、執筆過程、参考資料、下書き、修正履歴を残しておくことです。&lt;/p&gt;
&lt;p&gt;二つ目は、教師や教育関係者による課題確認です。&lt;/p&gt;
&lt;p&gt;教師は AI Detector を、明らかに不自然な文章を見つけるための手がかりとして使えます。ただし、ひとつの検出スコアだけで不正を判断するのは危険です。授業での様子、執筆記録、口頭での説明、引用元、バージョン履歴とあわせて判断するほうが合理的です。&lt;/p&gt;
&lt;p&gt;三つ目は、コンテンツ制作者、編集者、サイト運営者による外部原稿の確認です。&lt;/p&gt;
&lt;p&gt;大量の寄稿、SEO 記事、外注原稿を受け取るサイトでは、AI Detector が低品質でテンプレート的な大量生成コンテンツの初期選別に役立ちます。経験、視点、事実確認のない AI つなぎ合わせ記事でサイトが埋まるのを避けたいメディアやコンテンツサイトには有用です。&lt;/p&gt;
&lt;p&gt;それでも、検出器は補助にすぎません。本当に重要なのは、内容が独自で、正確で、有用で、信頼できるかどうかです。&lt;/p&gt;
&lt;h2 id=&#34;paraphraser-と-ai-humanizer-との関係&#34;&gt;Paraphraser と AI Humanizer との関係
&lt;/h2&gt;&lt;p&gt;QuillBot の代表的な機能の一つに Paraphraser、つまり文章の言い換えツールがあります。さらに AI 生成文を人間らしい文体に近づける AI Humanizer も提供されています。&lt;/p&gt;
&lt;p&gt;これらのツールは、しばしば一緒に使われます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ChatGPT、Claude、その他のモデルで初稿を書く。&lt;/li&gt;
&lt;li&gt;QuillBot Paraphraser で文を書き換える。&lt;/li&gt;
&lt;li&gt;または AI Humanizer で語調を調整する。&lt;/li&gt;
&lt;li&gt;最後に AI Checker に入れて検出結果を見る。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;この流れは一般的ですが、目的を誤りやすい使い方でもあります。&lt;/p&gt;
&lt;p&gt;目的が「AI らしさのスコアを下げること」だけになると、機械的な書き換えになりがちです。文章が回りくどく、不自然になり、元の情報の正確性が損なわれることもあります。&lt;/p&gt;
&lt;p&gt;よりよい使い方は次のようなものです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Paraphraser で表現を明確にする。&lt;/li&gt;
&lt;li&gt;Humanizer で語調とリズムを整える。&lt;/li&gt;
&lt;li&gt;AI Checker でテンプレート的な段落を見つける。&lt;/li&gt;
&lt;li&gt;最後に人間が事実、論理、表現意図を確認する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、AI Checker は「検出を回避する」ためだけのものではなく、コンテンツ品質を高めるために使うべきです。&lt;/p&gt;
&lt;h2 id=&#34;ai-検出器の誤判定リスク&#34;&gt;AI 検出器の誤判定リスク
&lt;/h2&gt;&lt;p&gt;すべての AI コンテンツ検出器には誤判定があります。&lt;/p&gt;
&lt;p&gt;理由は単純です。検出器は「誰が書いたか」を読んでいるのではなく、文章パターンを推定しているからです。人間が書いた文章でも、整いすぎていたり、標準化されていたり、テンプレート的だったりすると AI と誤判定される可能性があります。逆に、AI 生成文でも十分に編集され、具体的な細部や個人的な判断が加わると、人間が書いたように見えることがあります。&lt;/p&gt;
&lt;p&gt;誤判定されやすい内容には、次のようなものがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;学術要旨。&lt;/li&gt;
&lt;li&gt;公文書や通知文。&lt;/li&gt;
&lt;li&gt;製品説明。&lt;/li&gt;
&lt;li&gt;標準化されたレポート。&lt;/li&gt;
&lt;li&gt;非ネイティブ話者が書いた整った英語。&lt;/li&gt;
&lt;li&gt;何度も推敲された簡潔な文章。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;したがって、学生、教師、編集者のいずれであっても、AI 検出スコアだけを唯一の証拠にすべきではありません。&lt;/p&gt;
&lt;p&gt;より安全なのは、証拠のつながりを見ることです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;下書きや修正履歴があるか。&lt;/li&gt;
&lt;li&gt;執筆の考え方を説明できるか。&lt;/li&gt;
&lt;li&gt;実在する情報源を引用しているか。&lt;/li&gt;
&lt;li&gt;具体的な経験、観察、判断が含まれているか。&lt;/li&gt;
&lt;li&gt;事実誤認、架空の引用、明らかなテンプレート構造がないか。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;使うときのアドバイス&#34;&gt;使うときのアドバイス
&lt;/h2&gt;&lt;p&gt;自分の記事を確認したいだけなら、QuillBot AI Checker は補助的な注意喚起ツールとして使うのがよいでしょう。&lt;/p&gt;
&lt;p&gt;高いスコアが出ても、すぐに文章を「洗う」必要はありません。まず内容そのものを見直します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;主張が空疎ではないか。&lt;/li&gt;
&lt;li&gt;例が少なすぎないか。&lt;/li&gt;
&lt;li&gt;事実に出典がないのではないか。&lt;/li&gt;
&lt;li&gt;段落が繰り返しになっていないか。&lt;/li&gt;
&lt;li&gt;文のリズムが揃いすぎていないか。&lt;/li&gt;
&lt;li&gt;実際の文脈が欠けていないか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;教師や編集者であれば、スコアのスクリーンショットだけで結論を出すべきではありません。AI 検出結果は追加確認の出発点であり、最終判定ではありません。&lt;/p&gt;
&lt;p&gt;サイトのコンテンツ審査に使う場合は、AI Detector を人間の編集、盗用チェック、事実確認、引用確認と組み合わせるとよいでしょう。低品質な大量コンテンツを見つける助けにはなりますが、編集判断の代わりにはなりません。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;QuillBot AI Checker は、文章が AI 生成に見えるかどうかを初期判断するための便利な AI 文章検出ツールです。全体の可能性を示し、AI らしく見える文や段落を見つける助けにもなります。&lt;/p&gt;
&lt;p&gt;しかし、絶対的な判定者ではありません。&lt;/p&gt;
&lt;p&gt;AI 検出器の価値は、「この記事は必ず AI が書いた」と断定することではありません。テンプレート的すぎる、なめらかすぎる、具体的な細部が足りない箇所を知らせることにあります。&lt;/p&gt;
&lt;p&gt;信頼できるコンテンツ審査には、執筆過程、事実の出典、人間の判断、文脈上の証拠が必要です。QuillBot AI Checker は補助ツールとして使えば有用ですが、最終結論として扱うと、通常の書き手を傷つける可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://quillbot.com/ai-content-detector&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;QuillBot AI Detector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://quillbot.com/ai-image-detector&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;QuillBot AI Image Detector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.quillbot.com/hc/en-us/articles/35295733817111-Is-QuillBot-s-AI-Detector-free-or-premium&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;QuillBot Help Center: Is QuillBot’s AI Detector free or premium?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Midjourney 2026年5月アップデート：会話モード、AI支援開発、SREF整理</title>
        <link>https://knightli.com/ja/2026/05/17/midjourney-2026-05-office-hours-conversational-mode/</link>
        <pubDate>Sun, 17 May 2026 20:20:51 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/17/midjourney-2026-05-office-hours-conversational-mode/</guid>
        <description>&lt;p&gt;Midjourney 2026年5月14日の Office Hours で重要なのは、単一のモデルパラメータではない。プロダクトの形が「プロンプトを入力して画像を生成する」ものから、「より自然に創作ワークフローを組み立てる」ものへ進んでいることだ。&lt;/p&gt;
&lt;p&gt;今回の内容は、Midjourney チームの最近の Q&amp;amp;A をまとめた日本語記事に基づいている。扱われているのは、会話モードの強化、AI支援開発、サイト改修、SREF とタグ整理、Omni-reference、複数キャラクターの一貫性、そしてチーム内での Midjourney 利用だ。&lt;/p&gt;
&lt;p&gt;一言で言えば、Midjourney は画像生成を、会話でき、整理でき、継続的に反復できる創作システムに近づけようとしている。&lt;/p&gt;
&lt;h2 id=&#34;会話モードの重要性が増している&#34;&gt;会話モードの重要性が増している
&lt;/h2&gt;&lt;p&gt;今回もっとも直接的な変化は Conversational Mode、つまり会話モードだ。&lt;/p&gt;
&lt;p&gt;これまで Midjourney を使うには、多くの操作がパラメータや固定された書き方に依存していた。アスペクト比、画像参照、スタイル参照、モデルパラメータなどのルールを覚え、それを prompt や UI 設定に入れる必要があった。&lt;/p&gt;
&lt;p&gt;新しい会話モードの方向性は、こうした設定をより自然な言葉で指定できるようにすることだ。&lt;/p&gt;
&lt;p&gt;たとえば、音声やテキストで次の内容を指定できる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;デフォルトパラメータ。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;16:9&lt;/code&gt; のようなアスペクト比。&lt;/li&gt;
&lt;li&gt;画像参照。&lt;/li&gt;
&lt;li&gt;スタイル参照、つまり &lt;code&gt;--sref&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;V7 の Omni-reference。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは Midjourney が生成品質だけでなく、パラメータ操作の負担も下げようとしていることを示している。&lt;/p&gt;
&lt;p&gt;普通のユーザーにとって最大の変化は、コマンドを常に覚えなくてもよくなることだ。ヘビーユーザーにとっては、会話モードが十分安定すれば、自然言語で生成設定を調整する入口になり得る。&lt;/p&gt;
&lt;h2 id=&#34;ai支援開発が-midjourney-チームの反復速度を変えている&#34;&gt;AI支援開発が Midjourney チームの反復速度を変えている
&lt;/h2&gt;&lt;p&gt;もう一つ興味深い点は、Midjourney チーム自身が AI支援開発を大規模に使っていることだ。&lt;/p&gt;
&lt;p&gt;元記事によれば、チームは小さな bug、UI 上の摩擦、ワークフロー上の問題を以前よりずっと速く修正できるようになっている。ユーザーとの通話中に製品 bug が見つかり、AI支援でリアルタイム修正し、レビュー後すぐに展開した例も紹介されている。&lt;/p&gt;
&lt;p&gt;これは「AI がエンジニアのコードを書く」という話以上に重要だ。&lt;/p&gt;
&lt;p&gt;AI 開発ツールが、AI 製品自身の反復方法に影響し始めているということだからだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ユーザーフィードバックを修正フローへ早く入れられる。&lt;/li&gt;
&lt;li&gt;小さな体験上の問題を処理しやすくなる。&lt;/li&gt;
&lt;li&gt;エンジニアはアーキテクチャ、レビュー、設計判断、テストへより多くの力を使える。&lt;/li&gt;
&lt;li&gt;プロダクトチームは edge case をより頻繁に整理できる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Midjourney のような製品には、創作経路、パラメータ組み合わせ、モバイル体験、検索、整理フローが大量にある。多くの問題は「コアモデルが画像を生成できない」ことではなく、入口が使いにくい、操作が一手多い、特殊な状態が気持ちよくない、といったものだ。&lt;/p&gt;
&lt;p&gt;AI支援開発は、このような小さく大量にある改善を加速するのに向いている。&lt;/p&gt;
&lt;h2 id=&#34;サイト改修の重点はワークフローであり機能削除ではない&#34;&gt;サイト改修の重点はワークフローであり、機能削除ではない
&lt;/h2&gt;&lt;p&gt;Office Hours では、Midjourney の Web サイトが大きく改修中であることも触れられている。&lt;/p&gt;
&lt;p&gt;目標は複雑な機能を削ることではなく、創作フローをより直感的にし、新規ユーザーが入りやすくし、ツールと機能をより分かりやすく整理することだ。&lt;/p&gt;
&lt;p&gt;これは重要だ。&lt;/p&gt;
&lt;p&gt;Midjourney の問題は機能不足ではない。機能が増えるほど、入口、保存、整理、参照、探索、再利用が複雑になる。ライトユーザーにとって難しいのは「どこから始めるか」であり、ヘビーユーザーにとって難しいのは「大量のスタイル、参照、実験結果をどう管理するか」だ。&lt;/p&gt;
&lt;p&gt;可能な展開方針としては、次のようなものがある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;新旧インターフェースを並行提供する。&lt;/li&gt;
&lt;li&gt;まず alpha テストを行う。&lt;/li&gt;
&lt;li&gt;ヘビーユーザーへの影響を避けるため、段階的に移行する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この方針から、チームが Midjourney を単なる画像生成の玩具とは見ていないことが分かる。多くのユーザーはすでに実際の創作ワークフローに組み込んでおり、UI 変更で既存の習慣を簡単に壊すことはできない。&lt;/p&gt;
&lt;h2 id=&#34;srefスタイルタグ整理はまだ痛点&#34;&gt;SREF、スタイル、タグ整理はまだ痛点
&lt;/h2&gt;&lt;p&gt;SREF とスタイル整理は、今回の Q&amp;amp;A で特に注目すべき部分だ。&lt;/p&gt;
&lt;p&gt;ユーザーはよりよい整理システムを求めている。特に次のようなものだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ランダム SREF。&lt;/li&gt;
&lt;li&gt;スタイル参照。&lt;/li&gt;
&lt;li&gt;保存した美学方向。&lt;/li&gt;
&lt;li&gt;タグと色付きタグ。&lt;/li&gt;
&lt;li&gt;より強いフィルタリング、分類、再利用。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一方でチームは、現在のフォルダーシステムが一つの画像を複数フォルダーに入れられ、無制限のフォルダー数をサポートし、フィルタリングと並び替えもできるなら、タグはフォルダーにない何を提供するのか、という問いも投げている。&lt;/p&gt;
&lt;p&gt;これは現実的な問いだ。&lt;/p&gt;
&lt;p&gt;多くのプロダクトは、ユーザーがタグを欲しいと言うからタグを追加する。しかしタグシステムの設計が悪いと、別の混乱した分類層になる。フォルダー、タグ、お気に入り、検索、フィルター、プロジェクト、スタイルライブラリの境界が曖昧だと、かえって管理しにくくなる。&lt;/p&gt;
&lt;p&gt;そのため Midjourney チームは、より具体的なワークフロー例を集めたいと考えている。ユーザーはどの場面でタグを必要とするのか。なぜフォルダーでは足りないのか。スタイルを素早く組み合わせたいのか、プロジェクトをまたいで再利用したいのか、テーマ、色調、写真スタイル、キャラクター関係で絞り込みたいのか。&lt;/p&gt;
&lt;p&gt;Midjourney にとって、整理システムは生成モデルと同じくらい重要になり得る。ユーザーが長期的に創作を始めると、難しいのは一枚の画像を生成することではなく、数千枚の画像、数百のスタイル方向、反復実験の結果を管理することだからだ。&lt;/p&gt;
&lt;h2 id=&#34;omni-reference-はより複雑なキャラクター制御へ向かう&#34;&gt;Omni-reference はより複雑なキャラクター制御へ向かう
&lt;/h2&gt;&lt;p&gt;元記事では、将来の Omni-reference / subject reference システムが、複数のキャラクター参照を同時に扱い、異なる主体をよりよく分離できる可能性にも触れている。&lt;/p&gt;
&lt;p&gt;これは AI 画像生成の長年の痛点、つまりキャラクター一貫性と複数キャラクター関係に直結する。&lt;/p&gt;
&lt;p&gt;一人のキャラクターを一貫させるだけでも難しい。複数人になるとさらに難しい。よくある問題は次の通りだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A の特徴が B に移る。&lt;/li&gt;
&lt;li&gt;複数人物の身份が混ざる。&lt;/li&gt;
&lt;li&gt;服装、髪型、顔の特徴が画像ごとに安定しない。&lt;/li&gt;
&lt;li&gt;参照画像が主体だけでなく全体スタイルへ強く影響しすぎる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Omni-reference が主体分離をよりうまく扱えるなら、Midjourney は漫画、絵コンテ、広告ビジュアル、キャラクター設定、ゲームコンセプトアート、連続した物語により向くようになる。&lt;/p&gt;
&lt;p&gt;これは V7 以降も継続して注目すべき方向だ。&lt;/p&gt;
&lt;h2 id=&#34;midjourney-は-prompt-を捉え直している&#34;&gt;Midjourney は prompt を捉え直している
&lt;/h2&gt;&lt;p&gt;今回のまとめには、興味深い考え方もある。言語は想像力を圧縮する層だ、というものだ。&lt;/p&gt;
&lt;p&gt;これは Midjourney の製品方向をよく説明している。&lt;/p&gt;
&lt;p&gt;多くのユーザーは、AI 画像生成の核心はより長く、より正確な prompt を書くことだと思いがちだ。しかし実際の創作では、画像参照、スタイル参照、moodboard、SREF、バリエーション、再生成、後処理の方が、長文 prompt より役立つことが多い。&lt;/p&gt;
&lt;p&gt;Midjourney チームの Duncan のワークフローもそれを示している。彼は Midjourney を sketchbook のように使い、moodboard、SREF、少ない文字、高い &lt;code&gt;--r&lt;/code&gt; 再生成、強い/微妙なバリエーション、Photoshop レタッチ、外部アップスケールを組み合わせる。&lt;/p&gt;
&lt;p&gt;つまり成熟した Midjourney ユーザーは、「魔法のプロンプト」だけで作業しているわけではない。&lt;/p&gt;
&lt;p&gt;より現実的な流れは次の通りだ。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;少ない言葉で方向を与える。&lt;/li&gt;
&lt;li&gt;画像参照で視覚的文脈を与える。&lt;/li&gt;
&lt;li&gt;SREF でスタイルを絞る。&lt;/li&gt;
&lt;li&gt;多数のバリエーションで空間を探索する。&lt;/li&gt;
&lt;li&gt;人間の審美眼で結果を選ぶ。&lt;/li&gt;
&lt;li&gt;外部ツールで後処理する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Prompt は重要だが、すべてではない。&lt;/p&gt;
&lt;h2 id=&#34;ユーザーにとっての意味&#34;&gt;ユーザーにとっての意味
&lt;/h2&gt;&lt;p&gt;たまに画像を生成するだけなら、今回の更新で最も直接的な影響は会話モードが使いやすくなることだ。将来的には、比率、参照画像、スタイル、パラメータを、コマンドを覚えずに自然に伝えられるかもしれない。&lt;/p&gt;
&lt;p&gt;ヘビーユーザーなら、注目すべき方向は三つある。&lt;/p&gt;
&lt;p&gt;第一に、整理システム。&lt;/p&gt;
&lt;p&gt;SREF、スタイル、フォルダー、お気に入り、タグがどう進化するかは、長期的な創作効率に直結する。&lt;/p&gt;
&lt;p&gt;第二に、サイト改修。&lt;/p&gt;
&lt;p&gt;新しい UI が探索、整理、再利用、書き出しをつなげられるなら、Midjourney は単一の生成器ではなく、より専門的な創作ツールに近づく。&lt;/p&gt;
&lt;p&gt;第三に、キャラクターと主体参照。&lt;/p&gt;
&lt;p&gt;Omni-reference が複数キャラクターと主体分離を安定して扱えるなら、Midjourney は単発画像だけでなく、継続プロジェクトにより向くようになる。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Midjourney 2026年5月の Office Hours の重点は、派手な単一パラメータではない。プロダクトが引き続き「創作システム」へ進化していることだ。&lt;/p&gt;
&lt;p&gt;会話モードは入力のハードルを下げる。AI支援開発は反復速度を上げる。サイト改修はワークフロー再編を目指す。SREF とタグの議論は長期的なアセット管理を示す。Omni-reference はキャラクター一貫性と複雑な主体制御に関わる。&lt;/p&gt;
&lt;p&gt;AI 画像生成ツールにとって、モデル能力が重要なのは当然だ。しかし生成品質が一定水準に達したあと、ユーザーが長く残るかどうかを決めるのは、ワークフロー、整理能力、制御性、反復速度であることが多い。&lt;/p&gt;
&lt;p&gt;Midjourney はその部分を補い始めている。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://note.com/akisuke0925/n/nc9e099d9c77f&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Midjourney 最新ニュース（2026年5月14 日）｜アキスケ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenClaw 作者 Peter Steinberger は AI ソフトウェア開発をどう見ているのか：OpenClaw から閉ループ開発へ</title>
        <link>https://knightli.com/ja/2026/05/17/peter-steinberger-ai-software-development/</link>
        <pubDate>Sun, 17 May 2026 20:02:26 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/17/peter-steinberger-ai-software-development/</guid>
        <description>&lt;p&gt;Peter Steinberger の経歴は、AI ソフトウェア開発で何が変わっているのかを見るうえでよい材料になる。&lt;/p&gt;
&lt;p&gt;彼は「AI で突然注目された新人」ではない。OpenClaw の前から、PSPDFKit の創業者として PDF レンダリング、文書処理、開発者ツールに長く取り組んできた。この種のプロダクトは、コンセプトだけでは勝てない。性能、互換性、API 設計、企業顧客、長期保守に向き合う必要がある。&lt;/p&gt;
&lt;p&gt;そのため、Steinberger が後に AI ツールで OpenClaw を作り、AI Agent、個人自動化、AI coding について語ったとき、重要なのは「一人で大量のコードを書いた」ことだけではない。より面白いのは、長年のソフトウェア工学経験と新世代の AI coding agent を組み合わせ、開発プロセスをどう捉え直したかだ。&lt;/p&gt;
&lt;h2 id=&#34;ai-coding-は魔法のボタンではない&#34;&gt;AI coding は魔法のボタンではない
&lt;/h2&gt;&lt;p&gt;AI coding の議論は、よく二つの極端に分かれる。&lt;/p&gt;
&lt;p&gt;一方は、AI はすでにコードを書けるのでプログラマーは不要になる、と言う。&lt;/p&gt;
&lt;p&gt;もう一方は、AI が書くコードは信頼できず、本当のエンジニアリングは人間が手で書くべきだ、と言う。&lt;/p&gt;
&lt;p&gt;Steinberger の経験は第三の見方に近い。AI はソフトウェア開発の操作単位を変えるが、エンジニアリング判断を消すわけではない。&lt;/p&gt;
&lt;p&gt;従来、開発者の仕事は主に「コードを編集する」ことを中心に回っていた。要求分解、アーキテクチャ判断、実装、テスト、バグ修正は、すべて人間によるコード変更を軸にしていた。&lt;/p&gt;
&lt;p&gt;AI coding agent が入ると、開発者はだんだん実行システムを管理する存在に近づく。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;目標を説明する。&lt;/li&gt;
&lt;li&gt;コンテキストを与える。&lt;/li&gt;
&lt;li&gt;境界を決める。&lt;/li&gt;
&lt;li&gt;agent にコードを変更させる。&lt;/li&gt;
&lt;li&gt;テストとチェックを実行する。&lt;/li&gt;
&lt;li&gt;結果に基づいて反復する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは単にキーボードをモデルに渡すことではない。人間の役割を「すべての行を自分で打つ」ことから、「方向を定義し、フィードバックを設計し、結果を判断する」ことへ移すものだ。&lt;/p&gt;
&lt;h2 id=&#34;なぜ彼は-vibe-coding-という呼び方を好まないのか&#34;&gt;なぜ彼は vibe coding という呼び方を好まないのか
&lt;/h2&gt;&lt;p&gt;Steinberger をめぐる議論でよく出る言葉に &lt;code&gt;vibe coding&lt;/code&gt; がある。&lt;/p&gt;
&lt;p&gt;この言葉はもともと、開発者が自然言語でアイデアを説明し、AI に大量のコードを生成させ、実行結果とフィードバックで調整していく新しい開発スタイルを指していた。&lt;/p&gt;
&lt;p&gt;しかし Steinberger は、この言葉を全面的には受け入れていない。公開記事では、彼が &lt;code&gt;vibe coding&lt;/code&gt; をやや軽蔑的な表現になりやすいと見ていることが紹介されている。AI 支援開発を「感覚で適当に生成する」もののように見せ、背後にある技能、判断、経験を見落とすからだ。&lt;/p&gt;
&lt;p&gt;この批判には筋がある。&lt;/p&gt;
&lt;p&gt;本当に有効な AI coding は、適当に一文を入力してモデル出力を信じることではない。必要なのは次のような能力だ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;曖昧な要求を実行可能なタスクに分解する。&lt;/li&gt;
&lt;li&gt;モデルが目標を誤解したかどうかを見抜く。&lt;/li&gt;
&lt;li&gt;テストと受け入れ基準を設計する。&lt;/li&gt;
&lt;li&gt;コード構造が長期保守に影響するか判断する。&lt;/li&gt;
&lt;li&gt;いつ生成を止めて人間のレビューに切り替えるべきか分かる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、AI はコードを書く摩擦を下げるが、システムを理解する責任を下げるわけではない。&lt;/p&gt;
&lt;h2 id=&#34;鍵は閉ループにある&#34;&gt;鍵は閉ループにある
&lt;/h2&gt;&lt;p&gt;Steinberger のインタビューや記事でよく要約される考え方の一つが「ループ」だ。&lt;/p&gt;
&lt;p&gt;AI にコードを生成させるだけなら、開ループである。&lt;/p&gt;
&lt;p&gt;AI にコードを生成させ、実行させ、エラーを読み、問題を修正し、再びテストを走らせるなら、閉ループに近づく。&lt;/p&gt;
&lt;p&gt;この差は非常に大きい。&lt;/p&gt;
&lt;p&gt;開ループ生成は、表面上は使えそうなソフトウェアを作りやすい。ページは開き、機能はあるように見え、コードも多い。しかし実際の環境に入ると、状態管理、権限、例外処理、境界条件、デプロイの問題が出てくる。&lt;/p&gt;
&lt;p&gt;閉ループ開発では、出力がフィードバックによって制約される。もっとも単純なループは次の通りだ。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;目標を明確に書く。&lt;/li&gt;
&lt;li&gt;AI にコードを変更させる。&lt;/li&gt;
&lt;li&gt;テスト、型チェック、lint、ビルドを自動実行する。&lt;/li&gt;
&lt;li&gt;エラーを AI に返す。&lt;/li&gt;
&lt;li&gt;通るまで繰り返す。&lt;/li&gt;
&lt;li&gt;最後に人間が重要経路をレビューする。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;AI ソフトウェア開発が本当に効率を上げるのはここだ。モデルが一度で正解を書くからではない。生成、検証、修復のサイクルに高速に参加できるからだ。&lt;/p&gt;
&lt;h2 id=&#34;経験が多いほど-ai-を使いやすい&#34;&gt;経験が多いほど AI を使いやすい
&lt;/h2&gt;&lt;p&gt;AI coding で生まれやすい誤解の一つは、「経験はもう重要ではない」というものだ。&lt;/p&gt;
&lt;p&gt;Steinberger の事例はむしろ逆を示している。経験はより重要になる。ただし役割が変わる。&lt;/p&gt;
&lt;p&gt;経験あるエンジニアは、次の判断がしやすい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;どのタスクを agent に渡すべきか。&lt;/li&gt;
&lt;li&gt;どのモジュールに先にテストを書くべきか。&lt;/li&gt;
&lt;li&gt;どの変更はリスクが高く、AI に広範囲リファクタを任せるべきではないか。&lt;/li&gt;
&lt;li&gt;どの生成コードは見た目だけ妥当なのか。&lt;/li&gt;
&lt;li&gt;どの問題はパッチではなくアーキテクチャ調整で解くべきか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AI は大量の候補案を生成できる。しかし候補が多いほど判断力が必要になる。経験が少ない人は「動いた」ことに惑わされやすい。経験ある人は、保守できるか、拡張できるか、安全境界を壊さないか、問題が起きたときに定位できるかを問う。&lt;/p&gt;
&lt;p&gt;だから AI coding agent は、ソフトウェア工学を単なるチャットにはしない。一部の実行労働を外に出しつつ、計画、レビュー、検証、取捨選択の重要性を増幅する。&lt;/p&gt;
&lt;h2 id=&#34;openclaw-の意味はプロジェクトそのものにとどまらない&#34;&gt;OpenClaw の意味はプロジェクトそのものにとどまらない
&lt;/h2&gt;&lt;p&gt;OpenClaw が注目されたのは、単にオープンソース AI agent だからでも、成長が速かったからでもない。&lt;/p&gt;
&lt;p&gt;それは一つのシグナルでもある。開発者は、AI に単に質問へ答えてほしいのではなく、実際のツールに接続し、実際の行動を完了してほしいと思い始めている。&lt;/p&gt;
&lt;p&gt;従来のチャットボットは会話欄の中にとどまる。コードを説明し、下書きを書き、助言はできるが、多くの場合、人間がコピー、貼り付け、ソフトウェア起動、コマンド実行を行う必要がある。&lt;/p&gt;
&lt;p&gt;Agent の方向性は、モデルをツールにつなぐことだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ファイルシステム。&lt;/li&gt;
&lt;li&gt;ブラウザ。&lt;/li&gt;
&lt;li&gt;ターミナル。&lt;/li&gt;
&lt;li&gt;メール。&lt;/li&gt;
&lt;li&gt;カレンダー。&lt;/li&gt;
&lt;li&gt;第三者サービス。&lt;/li&gt;
&lt;li&gt;プロジェクトリポジトリ。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;モデルがこれらのツールを使えるようになると、ソフトウェア開発の境界が変わる。AI は単なる「コード補完」ではなく、プロジェクト読解、タスク分解、ファイル編集、テスト実行、PR 整理、ワークフロー自動化に関わるようになる。&lt;/p&gt;
&lt;p&gt;Steinberger が OpenAI に加わったことで注目された理由もここにある。彼は一人の開発者の物語だけではなく、個人 agent がデモから日常業務へ進むというプロダクト方向を示している。&lt;/p&gt;
&lt;h2 id=&#34;普通の開発者にとっての意味&#34;&gt;普通の開発者にとっての意味
&lt;/h2&gt;&lt;p&gt;普通の開発者にとって、Steinberger の経験をそのまま再現できるとは限らない。&lt;/p&gt;
&lt;p&gt;誰もが複数の agent を同時に管理できるわけではない。すべてのプロジェクトが高強度の AI 生成に向くわけでもない。すべてのチームが「まず生成し、すばやく反復する」速度を受け入れるわけでもない。&lt;/p&gt;
&lt;p&gt;それでも学べることはいくつかある。&lt;/p&gt;
&lt;p&gt;第一に、タスクを明確に書く。&lt;/p&gt;
&lt;p&gt;AI は曖昧な目標に敏感だ。「最適化して」と言うと、スタイル、構造、機能、ロジックまで変えるかもしれない。「ログイン失敗時のエラーメッセージを英語から中国語へ変更し、認証フローは変えない」と言えば、結果はより制御しやすい。&lt;/p&gt;
&lt;p&gt;第二に、検証コマンドを固定する。&lt;/p&gt;
&lt;p&gt;テストもビルドコマンドも lint もないプロジェクトでは、AI はループを作りにくい。&lt;code&gt;npm test&lt;/code&gt;、&lt;code&gt;go test ./...&lt;/code&gt;、&lt;code&gt;pytest&lt;/code&gt;、&lt;code&gt;hugo&lt;/code&gt; のような基本的なコマンドだけでも、目視確認だけよりはずっとよい。&lt;/p&gt;
&lt;p&gt;第三に、変更範囲を制御する。&lt;/p&gt;
&lt;p&gt;一度に一つのモジュール、一つの bug、一つのページだけを AI に扱わせる方が、「プロジェクト全体をリファクタして」と頼むより通常は信頼できる。&lt;/p&gt;
&lt;p&gt;第四に、人間のレビューを残す。&lt;/p&gt;
&lt;p&gt;認証、決済、権限、データ削除、デプロイスクリプト、データベース移行、セキュリティ設定では、コードが AI 生成だからといってレビュー基準を下げてはいけない。&lt;/p&gt;
&lt;p&gt;第五に、prompt と失敗パターンを振り返る。&lt;/p&gt;
&lt;p&gt;AI がある種のタスクをよく誤解するなら、その制約をプロジェクトルール、agent instructions、skill ファイルに書く。AI coding 能力はモデルだけでなく、周囲に作る作業環境からも生まれる。&lt;/p&gt;
&lt;h2 id=&#34;ai-ソフトウェア開発はどこへ向かうのか&#34;&gt;AI ソフトウェア開発はどこへ向かうのか
&lt;/h2&gt;&lt;p&gt;Steinberger の物語は、AI ソフトウェア開発が「コードを書く支援」から「ソフトウェア生産フローを組織する」方向へ進んでいることを示している。&lt;/p&gt;
&lt;p&gt;初期の AI coding ツールの価値は、関数補完、エラー説明、テンプレート生成が中心だった。今の変化は、agent がファイルをまたいで作業し、ツールを呼び出し、チェックを実行し、フィードバックに基づいて修正を続けられることだ。&lt;/p&gt;
&lt;p&gt;そこからいくつかの流れが見えてくる。&lt;/p&gt;
&lt;p&gt;第一に、個人開発者の生産上限は上がる。&lt;/p&gt;
&lt;p&gt;一人でより多くのプロトタイプ、スクリプト、社内ツール、小型プロダクトを進められる。ただし生産量が増えることは品質が自動で上がることではない。生成が速いほど検証が重要になる。&lt;/p&gt;
&lt;p&gt;第二に、プロジェクト構造がより重要になる。&lt;/p&gt;
&lt;p&gt;コードが明確で、テストがはっきりしていて、ドキュメントが整っているほど、AI は正しく変更しやすい。混乱したプロジェクトは人間にも AI にも難しい。&lt;/p&gt;
&lt;p&gt;第三に、ソフトウェアエンジニアはワークフロー設計者に近づく。&lt;/p&gt;
&lt;p&gt;今後重要なのは、ある言語を書けるかどうかだけではない。要求、コンテキスト、ツール、テスト、デプロイ、権限を制御可能なループに組み立てられるかだ。&lt;/p&gt;
&lt;p&gt;第四に、セキュリティ境界はより敏感になる。&lt;/p&gt;
&lt;p&gt;Agent が何かを実行できるなら、間違ったことも実行できる。ファイルを読み、コマンドを実行し、サービスへアクセスできるなら、権限、監査、ロールバックは AI 開発環境の基盤になる。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Peter Steinberger の AI ソフトウェア開発観で最も価値があるのは、「AI がどれだけコードを生成したか」ではない。彼が示した新しい開発姿勢だ。&lt;/p&gt;
&lt;p&gt;人間はエディタ内で一行ずつ入力するだけではなくなりつつある。目標を設計し、agent を管理し、フィードバックループを作り、結果をレビューし、システムを調整する。コードは今も重要だが、労働の唯一の中心ではなくなっている。&lt;/p&gt;
&lt;p&gt;従来のソフトウェア開発が「コードを正しく書く」ことを重視していたとすれば、AI ソフトウェア開発は「システムが検証可能に正しい結果を継続して出す」ことをより重視するようになる。&lt;/p&gt;
&lt;p&gt;これは単にエンジニアリングのハードルを下げる話ではない。能力の形を変える話だ。手作業の実装から、タスク分解、コンテキスト管理、ツール編成、自動検証、最終判断へ移っていく。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://techcrunch.com/2026/02/25/openclaw-creators-advice-to-ai-builders-is-to-be-more-playful-and-allow-yourself-time-to-improve/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;TechCrunch：OpenClaw creator’s advice to AI builders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://builtin.com/articles/openclaw-founder-to-openai-analysis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Built In：What Is OpenAI Getting From the OpenClaw Deal?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://podwise.ai/dashboard/episodes/7026858&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;The Pragmatic Engineer：The creator of Clawd: I ship code I don&amp;rsquo;t read&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.teamday.ai/ai/steinberger-openclaw-builders-unscripted-openai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;TeamDay：Peter Steinberger: Building OpenClaw as a Solo Dev&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Scientific Agent Skills：研究ワークフローを AI Agent に渡すためのスキルライブラリ</title>
        <link>https://knightli.com/ja/2026/05/17/scientific-agent-skills/</link>
        <pubDate>Sun, 17 May 2026 17:52:04 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/17/scientific-agent-skills/</guid>
        <description>&lt;p&gt;&lt;code&gt;K-Dense-AI/scientific-agent-skills&lt;/code&gt; は、科学研究や調査作業向けの Agent Skills 集です。&lt;/p&gt;
&lt;p&gt;目的は、また別のチャットボットを作ることではありません。研究でよく発生する、ドキュメント調査、データベース接続、分析スクリプト作成、ファイル処理、図表生成、レポート作成といった流れを、AI Agent が発見して呼び出せるスキルに分解することです。&lt;/p&gt;
&lt;p&gt;プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/K-Dense-AI/scientific-agent-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/K-Dense-AI/scientific-agent-skills&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2026-05-17 時点で、GitHub API では約 23.4k stars、2.5k forks、MIT ライセンス、最終 push は 2026-05-11 と表示されます。README では 135 個の ready-to-use scientific and research skills とされていますが、&lt;code&gt;scientific-skills&lt;/code&gt; ディレクトリは GitHub API で 137 項目確認できます。この差は集計方法、最近追加されたディレクトリ、README の更新遅れによる可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;まず結論&#34;&gt;まず結論
&lt;/h2&gt;&lt;p&gt;Scientific Agent Skills は、Codex、Claude Code、Cursor、Gemini CLI、または Agent Skills 標準をサポートするツールをすでに使っている人に向いています。&lt;/p&gt;
&lt;p&gt;価値は主に三つです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;科学ツールチェーンの使い方を &lt;code&gt;SKILL.md&lt;/code&gt; に書き、agent が毎回ライブラリの使い方を推測しなくてよくする。&lt;/li&gt;
&lt;li&gt;科学データベース、Python パッケージ、ドキュメント処理、科学執筆、可視化のワークフローを一つのスキル集に整理する。&lt;/li&gt;
&lt;li&gt;AI Agent を、概念を答えるだけでなく、研究ワークフローを実行できる助手に近づける。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし、インストールすれば自動的に研究が完了する魔法のボタンではありません。スキルは agent が正しい道具を選び、より信頼できるコードや手順を生成する助けになりますが、データ品質、実験設計、統計仮定、臨床・研究上の結論は人間が判断する必要があります。&lt;/p&gt;
&lt;h2 id=&#34;何が含まれるか&#34;&gt;何が含まれるか
&lt;/h2&gt;&lt;p&gt;README は、このプロジェクトを研究、科学計算、工学、分析、金融、執筆タスクをカバーするスキル集として説明しています。主な領域は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;バイオインフォマティクスとゲノミクス&lt;/li&gt;
&lt;li&gt;ケモインフォマティクスと創薬&lt;/li&gt;
&lt;li&gt;プロテオミクスと質量分析&lt;/li&gt;
&lt;li&gt;臨床研究と精密医療&lt;/li&gt;
&lt;li&gt;医療 AI と臨床機械学習&lt;/li&gt;
&lt;li&gt;医用画像とデジタル病理&lt;/li&gt;
&lt;li&gt;機械学習と AI&lt;/li&gt;
&lt;li&gt;材料科学と化学&lt;/li&gt;
&lt;li&gt;物理と天文学&lt;/li&gt;
&lt;li&gt;工学シミュレーションと最適化&lt;/li&gt;
&lt;li&gt;データ分析と可視化&lt;/li&gt;
&lt;li&gt;地理空間科学とリモートセンシング&lt;/li&gt;
&lt;li&gt;実験室自動化&lt;/li&gt;
&lt;li&gt;科学執筆、文献レビュー、査読、引用管理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらのスキルは、agent が使えるライブラリを制限するためのものではありません。README でも、agent は Python を書いたり、利用可能な API やパッケージを呼び出したりできると説明されています。スキルの役割は、整理済みの説明、例、ベストプラクティス、統合手順をあらかじめ提供することです。&lt;/p&gt;
&lt;p&gt;言い換えると、「科学ツールの説明書 + ワークフローテンプレート + agent 呼び出し規約」の集合に近いものです。&lt;/p&gt;
&lt;h2 id=&#34;データベースと-python-パッケージ&#34;&gt;データベースと Python パッケージ
&lt;/h2&gt;&lt;p&gt;研究者にとって最も魅力的なのは、科学データベースと Python エコシステムのカバー範囲です。&lt;/p&gt;
&lt;p&gt;README では次が示されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;database-lookup&lt;/code&gt; による 78 個の公開データベースへの統一アクセス。&lt;/li&gt;
&lt;li&gt;PubChem、ChEMBL、UniProt、COSMIC、ClinicalTrials.gov、FRED、USPTO など。&lt;/li&gt;
&lt;li&gt;DepMap、Imaging Data Commons、PrimeKG、U.S. Treasury Fiscal Data、Hugging Science などの専用データアクセススキル。&lt;/li&gt;
&lt;li&gt;70 個以上の最適化済み Python Package Skills。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ディレクトリには、なじみのある名前が多くあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;rdkit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scanpy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;biopython&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bioservices&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pydeseq2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scvelo&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scvi-tools&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pymatgen&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;qiskit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pennylane&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openmm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mdanalysis&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scikit-learn&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;statsmodels&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;matplotlib&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;seaborn&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;networkx&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sympy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pytorch-lightning&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;transformers&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;timesfm-forecasting&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらのライブラリ自体は珍しくありません。重要なのは、agent が作業中に、そのライブラリ固有の制約、コード例、よくある流れ、注意点を読めることです。モデルの古い記憶だけに頼るより安定します。&lt;/p&gt;
&lt;h2 id=&#34;典型的な場面&#34;&gt;典型的な場面
&lt;/h2&gt;&lt;p&gt;Scientific Agent Skills は、単発の質問応答より、多段階の研究タスクに向いています。&lt;/p&gt;
&lt;p&gt;創薬なら、agent に ChEMBL から EGFR 阻害剤を探させ、RDKit で構造活性相関を分析し、DiffDock で仮想スクリーニングを行い、文献検索とレポート作成までつなげられます。&lt;/p&gt;
&lt;p&gt;シングルセル解析なら、10X データを Scanpy に読み込み、QC、統合、細胞型同定、差次的発現、経路エンリッチメントを実行できます。&lt;/p&gt;
&lt;p&gt;マルチオミクスなら、RNA-seq、質量分析、代謝物、タンパク質相互作用、臨床試験、統計モデリングをつなげられます。&lt;/p&gt;
&lt;p&gt;これらを普通の prompt だけで行うと、agent は方向性を知っていても各ステップで人間の補助が必要になりがちです。スキルライブラリの意味は、こうした頻出経路を保存し、agent が回り道を減らせるようにすることです。&lt;/p&gt;
&lt;h2 id=&#34;インストール方法&#34;&gt;インストール方法
&lt;/h2&gt;&lt;p&gt;README が推奨する標準方式は Agent Skills ツールです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add K-Dense-AI/scientific-agent-skills
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;GitHub CLI &lt;code&gt;v2.90.0+&lt;/code&gt; を使う場合は &lt;code&gt;gh skill&lt;/code&gt; でもインストールできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;特定のスキルを入れる場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills scanpy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;対象 agent を指定する場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills --agent codex
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills --agent cursor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills --agent claude-code
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills --agent gemini
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;再現性を保つには release tag または commit SHA に pin できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills --pin v1.0.0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills --pin abc123def
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは研究環境では重要です。「先週は動いたが、今週は結果が変わり、理由がわからない」という状況は避けたいものです。分析にスキルが関与するなら、スキル、依存関係、データのバージョンを一緒に記録すべきです。&lt;/p&gt;
&lt;h2 id=&#34;実行環境&#34;&gt;実行環境
&lt;/h2&gt;&lt;p&gt;README の基本要件は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python 3.11+、3.12+ 推奨。&lt;/li&gt;
&lt;li&gt;Python 依存関係のインストールに &lt;code&gt;uv&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;Agent Skills 標準をサポートするクライアント。&lt;/li&gt;
&lt;li&gt;macOS、Linux、または Windows with WSL2。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Windows ユーザーは WSL2 の記述に注意すべきです。科学計算ライブラリはネイティブ Windows でも動くことがありますが、依存関係、コンパイラ、バイナリパッケージ、パスの問題が起きやすくなります。README が Windows with WSL2 としていることは、Unix 系の研究計算環境を想定していることを示しています。&lt;/p&gt;
&lt;h2 id=&#34;普通の-prompt-集との違い&#34;&gt;普通の prompt 集との違い
&lt;/h2&gt;&lt;p&gt;普通の prompt 集は、モデルに「どう答えるか」を伝えるものです。Scientific Agent Skills はさらに、ツール、ライブラリ、データベース、ワークフローを agent が発見できるスキルとして記述します。&lt;/p&gt;
&lt;p&gt;実際の違いは次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;スキルには構造化された説明とコード例を含められる。&lt;/li&gt;
&lt;li&gt;特定のライブラリやデータベースを中心に長期保守できる。&lt;/li&gt;
&lt;li&gt;agent はタスクに応じて関連スキルを選べる。&lt;/li&gt;
&lt;li&gt;チームは必要なスキルだけを入れ、コンテキストノイズを減らせる。&lt;/li&gt;
&lt;li&gt;スキルはリポジトリとともに versioning、review、update できる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;複雑な研究作業では、巨大な万能 prompt をコピーするより、この方が保守しやすくなります。モデル、データベース、Python パッケージは変わります。その変化をスキルにまとめる方が制御しやすいです。&lt;/p&gt;
&lt;h2 id=&#34;セキュリティと信頼境界&#34;&gt;セキュリティと信頼境界
&lt;/h2&gt;&lt;p&gt;README のセキュリティ警告ははっきりしています。Skills はコードを実行でき、coding agent の挙動に影響します。&lt;/p&gt;
&lt;p&gt;研究スキルは、Python 依存関係をインストールし、ネットワークデータベースへアクセスし、ローカルファイルを読み書きし、分析スクリプトを実行し、機密性の高い実験データや臨床データを処理し、後で引用される可能性のあるレポートを生成するかもしれません。&lt;/p&gt;
&lt;p&gt;したがって、すべてを無条件にインストールするべきではありません。より安全な方法は次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;現在のタスクに必要なスキルだけを入れる。&lt;/li&gt;
&lt;li&gt;インストール前に対応する &lt;code&gt;SKILL.md&lt;/code&gt; を読む。&lt;/li&gt;
&lt;li&gt;呼び出すパッケージ、API、ファイル、外部サービスを確認する。&lt;/li&gt;
&lt;li&gt;コミュニティ提供のスキルには特に慎重になる。&lt;/li&gt;
&lt;li&gt;データ処理やコード実行は隔離環境で行う。&lt;/li&gt;
&lt;li&gt;研究結論、臨床提案、統計結果は人間がレビューする。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;README では Cisco AI Defense Skill Scanner も触れられており、第三者スキルのローカルスキャンも推奨されています。スキャンは人間のレビューを置き換えませんが、スキルのサプライチェーンリスクを意識していることはわかります。&lt;/p&gt;
&lt;h2 id=&#34;向いている人&#34;&gt;向いている人
&lt;/h2&gt;&lt;p&gt;このプロジェクトは次の人に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;日常的に AI coding agent を使っている。&lt;/li&gt;
&lt;li&gt;科学データ、論文、図表、レポートをよく扱う。&lt;/li&gt;
&lt;li&gt;Python の科学計算エコシステムを頻繁に行き来する。&lt;/li&gt;
&lt;li&gt;agent に多段階分析を実行させたい。&lt;/li&gt;
&lt;li&gt;チームの研究ワークフローを再利用可能なスキルにしたい。&lt;/li&gt;
&lt;li&gt;Agent Skills 標準が専門分野へどう適用されるかを調べたい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;逆に、たまに論文を説明してもらうだけ、ローカル Python 環境がない、依存関係を扱いたくない、データプライバシーやネットワークアクセスやコード実行の境界が未整備、厳格な臨床・本番意思決定システムなのに人間のレビューがない、といった場合には向きません。&lt;/p&gt;
&lt;p&gt;一度きりの分析なら agent にスクリプトを書かせるだけで軽いかもしれません。似た研究フローを繰り返すなら、スキルライブラリの価値は大きくなります。&lt;/p&gt;
&lt;h2 id=&#34;使い方のすすめ&#34;&gt;使い方のすすめ
&lt;/h2&gt;&lt;p&gt;最初からリポジトリ全体を入れて、すべてのタスクを agent に渡すべきではありません。&lt;/p&gt;
&lt;p&gt;現実的な流れは次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;文献整理、図表生成、公開データ探索など低リスクなタスクを選ぶ。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;literature-review&lt;/code&gt;、&lt;code&gt;scientific-writing&lt;/code&gt;、&lt;code&gt;scanpy&lt;/code&gt;、&lt;code&gt;rdkit&lt;/code&gt; など関連スキルだけを入れる。&lt;/li&gt;
&lt;li&gt;agent にまず計画を説明させてからコードを実行させる。&lt;/li&gt;
&lt;li&gt;入力データ、スクリプト、環境、スキルバージョンを残す。&lt;/li&gt;
&lt;li&gt;出力結果を人間が確認する。&lt;/li&gt;
&lt;li&gt;フローが安定したら、チームの SOP や独自スキルに書き込む。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;研究 agent の核心は、すべてを自動化することではありません。繰り返しが多く、面倒で、ドキュメント確認が必要な部分をツールに任せ、判断、仮定、結論を人間に残すことです。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Scientific Agent Skills の意味は、Agent Skills を一般的なプログラミングから研究の現場へ広げることにあります。&lt;/p&gt;
&lt;p&gt;研究作業は本質的に、多ツール、多データベース、多ファイル、多段階の流れです。チャット型 prompt だけでは、こうした細部を安定して扱うのは難しいです。このプロジェクトは、よく使われる科学ライブラリ、データソース、研究フローをスキルとして整理し、AI Agent が実際の研究ワークフローに入りやすくします。&lt;/p&gt;
&lt;p&gt;ただし、強力であるほど境界も必要です。スキルは agent の挙動に影響し、コードを実行し、ネットワークへアクセスし、ファイルを処理することがあります。インストール前に内容を読み、実行環境を隔離し、研究結論では人間の検証を省かないことが重要です。&lt;/p&gt;
&lt;p&gt;Codex、Claude Code、Cursor、Gemini CLI を研究やデータ分析に使っているなら、Scientific Agent Skills は一度見る価値があります。全面的に導入しなくても、スキルの分割方法はチームの研究 AI ワークフローを整理する参考になります。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/K-Dense-AI/scientific-agent-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;K-Dense-AI/scientific-agent-skills&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/K-Dense-AI/scientific-agent-skills/blob/main/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README 原文&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://agentskills.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Agent Skills 標準&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/K-Dense-AI/k-dense-byok&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;K-Dense BYOK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.blog/changelog/2026-04-16-manage-agent-skills-with-github-cli/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub CLI gh skill changelog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>ai-goofish-monitor：AI で閒魚の商品を自動監視するオープンソースシステム</title>
        <link>https://knightli.com/ja/2026/05/17/ai-goofish-monitor/</link>
        <pubDate>Sun, 17 May 2026 17:24:03 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/17/ai-goofish-monitor/</guid>
        <description>&lt;p&gt;ai-goofish-monitor は、Usagi-org が公開している閒魚向けの商品監視システムです。&lt;/p&gt;
&lt;p&gt;目的は明確です。閒魚での検索、絞り込み、商品分析、結果記録、通知を自動化し、大量の中古商品から条件に合うものをより早く見つけることです。プロジェクトは Playwright でページ操作を自動化し、画像入力に対応する AI モデルを接続して商品情報をさらに判断します。&lt;/p&gt;
&lt;p&gt;プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/Usagi-org/ai-goofish-monitor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/Usagi-org/ai-goofish-monitor&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;先に結論&#34;&gt;先に結論
&lt;/h2&gt;&lt;p&gt;ai-goofish-monitor は、単純なキーワード通知スクリプトというより、「閒魚の購入インテリジェンスダッシュボード」に近いです。&lt;/p&gt;
&lt;p&gt;主な特徴は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;タスク、アカウント、AI 判定基準、ログ、結果を管理できる Web 管理画面。&lt;/li&gt;
&lt;li&gt;複数タスクの並行実行。各タスクでキーワード、価格、絞り込み条件、AI Prompt を設定できる。&lt;/li&gt;
&lt;li&gt;Playwright で閒魚ページを取得し、ログイン状態やページ操作が必要な場面に対応しやすい。&lt;/li&gt;
&lt;li&gt;キーワード一致だけでなく、AI で商品が条件に合うか判断する。&lt;/li&gt;
&lt;li&gt;ntfy.sh、企業微信、Bark、Telegram、Webhook などの通知に対応する。&lt;/li&gt;
&lt;li&gt;Cron 定期実行、複数アカウント管理、プロキシローテーション、失敗時リトライ、Docker デプロイに対応する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;特定の商品をよく閒魚で探す人、たとえば中古デジタル機器、カメラ機材、GPU、HDD、ゲーム機、楽器、家電、コレクション品を探す人に向いています。ただし「自動で掘り出し物を買うツール」ではありません。閒魚の検索結果は変化し、ログイン状態は失効することがあり、プラットフォームのリスク制御も自動化の安定性に影響します。人間の判断を置き換えるものではなく、補助的なフィルタリングツールとして使うべきです。&lt;/p&gt;
&lt;h2 id=&#34;解決する問題&#34;&gt;解決する問題
&lt;/h2&gt;&lt;p&gt;閒魚で中古商品を探すと、よく次の問題があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;商品数が多すぎて手で見るのが疲れる。&lt;/li&gt;
&lt;li&gt;タイトルや説明が不統一で、キーワードの取りこぼしや誤判定が起きやすい。&lt;/li&gt;
&lt;li&gt;良い価格の出品は短時間で消える。&lt;/li&gt;
&lt;li&gt;同じ商品でも地域、価格、状態、出品者が違う。&lt;/li&gt;
&lt;li&gt;安い商品にはアクセサリ、故障品、再生品、誘導的なタイトルが混ざる。&lt;/li&gt;
&lt;li&gt;複数キーワードを継続的に監視するのは手作業では続きにくい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;普通のキーワード通知で解決できるのは一部だけです。たとえば「ThinkPad X1」を検索すると、アクセサリ、壊れた画面、空箱、分解部品が混ざることがあります。「ソニー A7C」では、レンズセット、レンタル情報、釣りタイトル、異常価格に出会うこともあります。&lt;/p&gt;
&lt;p&gt;ai-goofish-monitor の考え方は、まず自動化で候補商品を集め、それを AI に渡して条件に合うか再判断し、最後に注目すべき結果を通知する、というものです。&lt;/p&gt;
&lt;h2 id=&#34;主な機能&#34;&gt;主な機能
&lt;/h2&gt;&lt;p&gt;README に列挙されている機能はかなりそろっています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web 可視化管理：タスク管理、アカウント管理、AI 基準編集、実行ログ、結果閲覧。&lt;/li&gt;
&lt;li&gt;AI 駆動：自然言語でタスクを作成し、マルチモーダルモデルで商品を分析。&lt;/li&gt;
&lt;li&gt;複数タスク並行：タスクごとにキーワード、価格、絞り込み条件、AI Prompt を個別設定。&lt;/li&gt;
&lt;li&gt;高度な絞り込み：送料無料、新規出品時間範囲、省 / 市 / 区の地域フィルタ。&lt;/li&gt;
&lt;li&gt;即時通知：ntfy.sh、企業微信、Bark、Telegram、Webhook など。&lt;/li&gt;
&lt;li&gt;定期実行：Cron による周期タスク。&lt;/li&gt;
&lt;li&gt;アカウントとプロキシのローテーション：複数アカウント、タスクへのアカウント紐付け、プロキシプール、失敗時リトライ。&lt;/li&gt;
&lt;li&gt;Docker デプロイ：コンテナ化された運用。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらを組み合わせることで、「監視タスク作成」から「命中通知」までの流れをカバーします。&lt;/p&gt;
&lt;h2 id=&#34;ワークフロー&#34;&gt;ワークフロー
&lt;/h2&gt;&lt;p&gt;典型的な流れは次のようなものです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;サービスをデプロイして Web UI を開く。&lt;/li&gt;
&lt;li&gt;閒魚アカウントのログイン状態をインポートする。&lt;/li&gt;
&lt;li&gt;監視タスクを作成する。&lt;/li&gt;
&lt;li&gt;キーワード、価格範囲、地域、新規出品範囲などを設定する。&lt;/li&gt;
&lt;li&gt;判定基準を書く、または AI に生成させる。&lt;/li&gt;
&lt;li&gt;タスクをリアルタイムまたは定期実行する。&lt;/li&gt;
&lt;li&gt;Playwright がページを開き、商品情報を取得する。&lt;/li&gt;
&lt;li&gt;AI がタイトル、説明、画像、Prompt をもとに条件適合を判断する。&lt;/li&gt;
&lt;li&gt;命中結果を SQLite に保存する。&lt;/li&gt;
&lt;li&gt;設定済みの通知チャネルで結果を送る。&lt;/li&gt;
&lt;li&gt;Web UI で結果、ログ、価格履歴を見る。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;この流れで AI の価値が最も大きいのは 8 番目です。「状態が良い、価格が妥当、アクセサリだけではない、修理品ではない、できれば同城で手渡し」などの自然言語条件を理解できるため、単純なキーワード規則より柔軟です。&lt;/p&gt;
&lt;h2 id=&#34;docker-デプロイ&#34;&gt;Docker デプロイ
&lt;/h2&gt;&lt;p&gt;プロジェクトは Docker デプロイを推奨しています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/Usagi-org/ai-goofish-monitor &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ai-goofish-monitor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;vim .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose logs -f app
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose down
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;デフォルトの Web UI アドレス：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://127.0.0.1:8000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;公式イメージ：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ghcr.io/usagi-org/ai-goofish:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;イメージ取得が遅い場合、README にはミラー例もあります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker pull ghcr.nju.edu.cn/usagi-org/ai-goofish:latest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker tag ghcr.nju.edu.cn/usagi-org/ai-goofish:latest ghcr.io/usagi-org/ai-goofish:latest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Docker イメージには Chromium が含まれているため、ホスト側に別途ブラウザを入れる必要はありません。デフォルトの永続化ディレクトリは次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;data/&lt;/code&gt;：SQLite の主ストレージ。タスク、結果、価格履歴を保存。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;state/&lt;/code&gt;：ログイン状態の cookie ファイル。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prompts/&lt;/code&gt;：タスク用プロンプト。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;logs/&lt;/code&gt;：実行ログ。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;images/&lt;/code&gt;：商品画像とタスク一時画像ディレクトリ。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;.env&lt;/code&gt; の &lt;code&gt;SERVER_PORT&lt;/code&gt; を変更した場合は、&lt;code&gt;docker-compose.yaml&lt;/code&gt; のポートマッピングも合わせて変更します。&lt;/p&gt;
&lt;h2 id=&#34;最小構成&#34;&gt;最小構成
&lt;/h2&gt;&lt;p&gt;最小構成は主に AI モデルと Web UI ログインに関するものです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_api_key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENAI_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_openai_compatible_base_url
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENAI_MODEL_NAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_multimodal_model
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;WEB_USERNAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;admin
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;WEB_PASSWORD&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;change_me
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;最初の 3 つは AI モデル接続に必須です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;OPENAI_API_KEY&lt;/code&gt;：モデル API Key。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OPENAI_BASE_URL&lt;/code&gt;：OpenAI 互換 API エンドポイント。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OPENAI_MODEL_NAME&lt;/code&gt;：画像入力に対応するモデル名。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;WEB_USERNAME&lt;/code&gt; と &lt;code&gt;WEB_PASSWORD&lt;/code&gt; は Web UI ログイン用です。README ではデフォルト認証情報が &lt;code&gt;admin/admin123&lt;/code&gt; とされていますが、本番環境では必ず変更してください。&lt;/p&gt;
&lt;h2 id=&#34;初回利用&#34;&gt;初回利用
&lt;/h2&gt;&lt;p&gt;初回利用の流れはおおよそ次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;http://127.0.0.1:8000&lt;/code&gt; を開く。&lt;/li&gt;
&lt;li&gt;Web UI にログインする。&lt;/li&gt;
&lt;li&gt;「閒魚アカウント管理」に入る。&lt;/li&gt;
&lt;li&gt;プロジェクト付属の Chrome 拡張で閒魚ログイン状態 JSON をエクスポートする。&lt;/li&gt;
&lt;li&gt;ログイン状態をシステムに貼り付ける。&lt;/li&gt;
&lt;li&gt;ログイン状態ファイルは &lt;code&gt;state/&lt;/code&gt; に保存される。例：&lt;code&gt;state/acc_1.json&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;「タスク管理」に戻り、タスクを作成してアカウントを紐付ける。&lt;/li&gt;
&lt;li&gt;タスクを実行し、結果を見る。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ここで最も重要なのはログイン状態です。閒魚は第三者が自由に取得できる標準 API を公開しているわけではないため、プロジェクトはブラウザのログイン状態を使って通常のページアクセスを模擬します。ログイン状態の失効、リスク制御、captcha、アカウント異常はいずれもタスク実行に影響します。&lt;/p&gt;
&lt;h2 id=&#34;ai-タスクとキーワードタスク&#34;&gt;AI タスクとキーワードタスク
&lt;/h2&gt;&lt;p&gt;プロジェクトは 2 種類のタスク作成方式をサポートします。&lt;/p&gt;
&lt;p&gt;1 つ目は &lt;code&gt;AI判断&lt;/code&gt; です。&lt;/p&gt;
&lt;p&gt;「詳細な要件」を入力すると、システムが非同期に分析基準を生成します。複雑な条件に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本体のみ、アクセサリは不要。&lt;/li&gt;
&lt;li&gt;市場価格より明らかに安い場合だけ通知。&lt;/li&gt;
&lt;li&gt;状態が良く、説明に水没、修理、隠れた不具合がない。&lt;/li&gt;
&lt;li&gt;同城優先、手渡しできるとなお良い。&lt;/li&gt;
&lt;li&gt;画像にシリアル番号、箱、重要付属品が写っている。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2 つ目は &lt;code&gt;关键词判断&lt;/code&gt; です。&lt;/p&gt;
&lt;p&gt;これは従来のルール型監視に近く、キーワード、価格、地域などの条件で直接タスクを作成します。AI 生成を使いません。ルールが単純で、多少の誤検知を許容できる場面に向いています。&lt;/p&gt;
&lt;p&gt;実際には併用できます。キーワードで初期フィルタし、AI で誤検知を減らす形です。&lt;/p&gt;
&lt;h2 id=&#34;web-ui-でできること&#34;&gt;Web UI でできること
&lt;/h2&gt;&lt;p&gt;Web UI は、このプロジェクトが普通のスクリプトと違う重要な部分です。&lt;/p&gt;
&lt;p&gt;タスク管理ページでは次を設定できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI 作成タスク。&lt;/li&gt;
&lt;li&gt;キーワード規則。&lt;/li&gt;
&lt;li&gt;価格範囲。&lt;/li&gt;
&lt;li&gt;新規出品範囲。&lt;/li&gt;
&lt;li&gt;地域フィルタ。&lt;/li&gt;
&lt;li&gt;アカウント紐付け。&lt;/li&gt;
&lt;li&gt;定期実行ルール。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;アカウント管理ページでは次ができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;閒魚アカウントログイン状態のインポート。&lt;/li&gt;
&lt;li&gt;ログイン状態の更新。&lt;/li&gt;
&lt;li&gt;アカウント削除。&lt;/li&gt;
&lt;li&gt;タスクへのアカウント指定。&lt;/li&gt;
&lt;li&gt;システムによる自動アカウント選択。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;結果とログページでは次ができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;命中商品の確認。&lt;/li&gt;
&lt;li&gt;結果のエクスポート。&lt;/li&gt;
&lt;li&gt;履歴検索。&lt;/li&gt;
&lt;li&gt;タスク実行過程の確認。&lt;/li&gt;
&lt;li&gt;ログイン失効、リスク制御、AI 呼び出し問題の調査。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;システム設定ページでは次ができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;システム状態の確認。&lt;/li&gt;
&lt;li&gt;Prompt の編集。&lt;/li&gt;
&lt;li&gt;プロキシとローテーション設定の調整。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;長期監視では Web UI が重要です。タスクが増えると、設定、ログ、結果、通知はすぐ管理しにくくなります。&lt;/p&gt;
&lt;h2 id=&#34;データ保存&#34;&gt;データ保存
&lt;/h2&gt;&lt;p&gt;現在のオンライン主ストレージは SQLite で、デフォルトパスは次です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;data/app.sqlite3
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Docker はデフォルトで SQLite の主 DB を次のようにマウントします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./data:/app/data
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;アプリ起動時に DB とテーブルを自動作成し、古い &lt;code&gt;config.json&lt;/code&gt;、&lt;code&gt;jsonl/&lt;/code&gt;、&lt;code&gt;price_history/&lt;/code&gt; から一度だけ履歴データをインポートしようとします。&lt;/p&gt;
&lt;p&gt;注意点として、&lt;code&gt;state/&lt;/code&gt;、&lt;code&gt;prompts/&lt;/code&gt;、&lt;code&gt;logs/&lt;/code&gt;、&lt;code&gt;images/&lt;/code&gt; は引き続きファイルシステム上のディレクトリであり、SQLite 内には入りません。商品画像は次のようなディレクトリに一時保存されます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;images/task_images_&amp;lt;task_name&amp;gt;/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;タスク終了後、デフォルトではクリーンアップされます。&lt;/p&gt;
&lt;p&gt;この構成は個人または小規模チームに向いています。SQLite は軽量で移行しやすく、ファイルディレクトリにログイン状態、画像、ログが残るため調査もしやすいです。&lt;/p&gt;
&lt;h2 id=&#34;通知チャネル&#34;&gt;通知チャネル
&lt;/h2&gt;&lt;p&gt;プロジェクトは複数の通知チャネルに対応します。よく使う設定は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;NTFY_TOPIC_URL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GOTIFY_URL&lt;/code&gt; / &lt;code&gt;GOTIFY_TOKEN&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BARK_URL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;WX_BOT_URL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TELEGRAM_BOT_TOKEN&lt;/code&gt; / &lt;code&gt;TELEGRAM_CHAT_ID&lt;/code&gt; / &lt;code&gt;TELEGRAM_API_BASE_URL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;WEBHOOK_*&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;通知はこの種のツールの体験の中心です。監視システムが結果をバックエンドに書くだけなら、ユーザーは結局ページを何度も開く必要があります。プッシュ通知があれば、命中商品をすぐ受け取れます。&lt;/p&gt;
&lt;p&gt;実用的には商品価値で通知を分けるとよいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;普通のキーワード命中はバックエンドにだけ記録。&lt;/li&gt;
&lt;li&gt;AI 高信頼度の結果はスマホへ通知。&lt;/li&gt;
&lt;li&gt;高価値商品は企業微信または Telegram へ通知。&lt;/li&gt;
&lt;li&gt;デバッグ中はログを増やし、安定後にノイズを減らす。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;開発者向け実行&#34;&gt;開発者向け実行
&lt;/h2&gt;&lt;p&gt;Docker を使わないローカル開発には次が必要です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python 3.10+&lt;/li&gt;
&lt;li&gt;Node.js + npm&lt;/li&gt;
&lt;li&gt;Playwright CLI&lt;/li&gt;
&lt;li&gt;Chromium または Chrome / Edge ブラウザ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;基本コマンド：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/Usagi-org/ai-goofish-monitor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ai-goofish-monitor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ワンコマンド起動：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chmod +x start.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./start.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;start.sh&lt;/code&gt; は Playwright CLI とブラウザ条件を確認し、依存関係のインストール、フロントエンドビルド、成果物コピー、バックエンド起動を行います。&lt;/p&gt;
&lt;p&gt;バックエンドを手動起動：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python -m src.app
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;または：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uvicorn src.app:app --host 0.0.0.0 --port &lt;span class=&#34;m&#34;&gt;8000&lt;/span&gt; --reload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;フロントエンド開発：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; web-ui
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;テストとビルド：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PYTEST_DISABLE_PLUGIN_AUTOLOAD&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; pytest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; web-ui &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm run build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;向いている人&#34;&gt;向いている人
&lt;/h2&gt;&lt;p&gt;ai-goofish-monitor は次のようなユーザーに向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;閒魚で特定モデルをよく探す人。&lt;/li&gt;
&lt;li&gt;中古デジタル機器、カメラ機材、ゲーム機、ハードウェア部品を監視したい人。&lt;/li&gt;
&lt;li&gt;「キーワード検索 + 手動選別」を自動化したい人。&lt;/li&gt;
&lt;li&gt;OpenAI 互換モデル API を持ち、AI 判定コストを受け入れられる人。&lt;/li&gt;
&lt;li&gt;Docker または基本的なコマンドラインデプロイに慣れている人。&lt;/li&gt;
&lt;li&gt;命中結果をスマホ、企業微信、Telegram に通知したい人。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;あまり向いていないケース：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;デプロイを全く知らず、すぐ使える App だけが欲しい。&lt;/li&gt;
&lt;li&gt;ログイン状態、captcha、アカウントリスク制御を扱いたくない。&lt;/li&gt;
&lt;li&gt;公式認可された強いコンプライアンスのデータ API が必要。&lt;/li&gt;
&lt;li&gt;大規模かつ高頻度にプラットフォームデータを収集したい。&lt;/li&gt;
&lt;li&gt;AI に取引リスクを自動判断させ、注文まで代行してほしい。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;リスクと境界&#34;&gt;リスクと境界
&lt;/h2&gt;&lt;p&gt;この種のツールでは境界を意識する必要があります。&lt;/p&gt;
&lt;p&gt;第一に、プラットフォーム規則を守ることです。&lt;/p&gt;
&lt;p&gt;閒魚には独自の利用規約、リスク制御、アカウント安全機構があります。自動化アクセスは制限を引き起こす可能性があります。高頻度に取得したり、リスク制御を回避したり、出品者への迷惑行為、プライバシーの一括収集、プラットフォーム秩序の破壊に使ってはいけません。&lt;/p&gt;
&lt;p&gt;第二に、アカウントのログイン状態を保護することです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;state/&lt;/code&gt; に保存されるのはログイン状態 cookie ファイルです。これは実質的にアカウントアクセス資格情報です。Git リポジトリにコミットせず、信頼できないサーバーにも置かないでください。サーバーをインターネットに公開する場合、Web UI のデフォルトパスワードは必ず変更し、VPN、リバースプロキシ認証、または内部ネットワークの背後に置くべきです。&lt;/p&gt;
&lt;p&gt;第三に、AI 判定は事実保証ではありません。&lt;/p&gt;
&lt;p&gt;AI は誤検知を減らせますが、商品の真偽、出品者の信頼性、価格の妥当性、取引安全性を保証しません。最終的には商品詳細、出品者評価、チャット履歴、配送方法、支払いプロセスを人間が確認する必要があります。&lt;/p&gt;
&lt;p&gt;第四に、コストに注意してください。&lt;/p&gt;
&lt;p&gt;すべての候補商品をマルチモーダルモデルで分析すると、呼び出しコストはすぐ増えます。まずキーワード、価格、地域で強く絞り込み、少数の候補だけを AI に渡すのがよいです。&lt;/p&gt;
&lt;p&gt;第五に、プライバシーに注意してください。&lt;/p&gt;
&lt;p&gt;商品スクリーンショット、チャット関連内容、アカウント状態、通知内容には機密情報が含まれる可能性があります。通知 Webhook、ログディレクトリ、データベースは適切に保護してください。&lt;/p&gt;
&lt;h2 id=&#34;普通のスクリプトとの違い&#34;&gt;普通のスクリプトとの違い
&lt;/h2&gt;&lt;p&gt;普通の閒魚監視スクリプトは、通常 3 つのことだけをします。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;キーワードを検索する。&lt;/li&gt;
&lt;li&gt;価格を判定する。&lt;/li&gt;
&lt;li&gt;通知を送る。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ai-goofish-monitor はさらに進んでいます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web UI でタスクとアカウントを管理する。&lt;/li&gt;
&lt;li&gt;AI Prompt で複雑な購入基準を表現する。&lt;/li&gt;
&lt;li&gt;マルチモーダルモデルで商品画像と説明を見る。&lt;/li&gt;
&lt;li&gt;SQLite に結果と価格履歴を保存する。&lt;/li&gt;
&lt;li&gt;ログページでタスク失敗原因を調査する。&lt;/li&gt;
&lt;li&gt;プロキシローテーションと複数アカウントで安定性を高める。&lt;/li&gt;
&lt;li&gt;定期タスクで長期運用を支える。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;機能が多いぶん、デプロイと運用コストも高くなります。一般ユーザーには Docker デプロイが最も簡単です。開発者にとっては、Web UI、FastAPI、Playwright、SQLite の構成が二次開発しやすい形です。&lt;/p&gt;
&lt;h2 id=&#34;使い方の例&#34;&gt;使い方の例
&lt;/h2&gt;&lt;p&gt;実用的には、小さなタスクから始めるのがよいです。&lt;/p&gt;
&lt;p&gt;たとえば中古カメラを探すなら、次のようなタスクを作れます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;キーワード：&lt;code&gt;A7C&lt;/code&gt;、&lt;code&gt;索尼 A7C&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;価格範囲：市場価格に基づいて上限を設定&lt;/li&gt;
&lt;li&gt;地域：同じ省または同じ市を優先&lt;/li&gt;
&lt;li&gt;新規出品範囲：直近 1 日または数時間&lt;/li&gt;
&lt;li&gt;AI 基準：レンズ単体を除外、修理品を除外、明らかなアクセサリを除外、シャッター数と状態に注目&lt;/li&gt;
&lt;li&gt;通知：AI 判定を通過した結果だけ通知&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安定して動くようになってから、タスク数を少しずつ増やします。最初から数十キーワード、複数アカウント、高頻度 Cron にしないでください。ログイン状態の安定性、誤検知率、AI コスト、通知ノイズを見てから調整するのが安全です。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;ai-goofish-monitor は、閒魚監視を「キーワードスクリプト」から「管理可能な AI 監視システム」へ進めるプロジェクトです。Playwright でページ操作を自動化し、AI で複雑な判断を行い、Web UI でタスクと結果を管理し、SQLite にデータを保存し、複数通知チャネルで結果を届けます。&lt;/p&gt;
&lt;p&gt;特定商品を監視したい個人や小規模チームに向いています。特に中古デジタル機器、ハードウェア、カメラ機材のように、価格変動が大きく、出品タイミングが重要で、説明ノイズが多いカテゴリに適しています。&lt;/p&gt;
&lt;p&gt;ただし慎重に使う必要があります。ログイン状態を保護し、デフォルトパスワードを変更し、取得頻度を抑え、AI 結果を人間が確認し、プラットフォーム規則とプライバシー境界を守ることが重要です。補助的なフィルタリングツールとしては価値がありますが、完全自動取引システムとして見ると能力を過大評価しやすいです。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Usagi-org/ai-goofish-monitor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Usagi-org/ai-goofish-monitor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Usagi-org/ai-goofish-monitor/blob/master/README_EN.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;プロジェクト英語 README&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Usagi-org/ai-goofish-monitor/blob/master/DISCLAIMER.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;プロジェクト免責事項&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenKB：ドキュメントを継続更新される LLM ナレッジベースへコンパイルする</title>
        <link>https://knightli.com/ja/2026/05/17/openkb-llm-knowledge-base/</link>
        <pubDate>Sun, 17 May 2026 17:15:08 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/17/openkb-llm-knowledge-base/</guid>
        <description>&lt;p&gt;OpenKB は、VectifyAI が公開しているオープンソースの LLM ナレッジベースツールです。&lt;/p&gt;
&lt;p&gt;これは、ドキュメントをチャンク化し、ベクトル化し、問い合わせ時にコンテキストを組み直すだけの従来型 RAG システムではありません。OpenKB はまず生のドキュメントを構造化された wiki にコンパイルします。そこには文書要約、概念ページ、相互参照、後続の問い合わせ、lint チェックが含まれます。言い換えると、資料を継続的に整理していくナレッジベース CLI に近い存在です。&lt;/p&gt;
&lt;p&gt;プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/OpenKB&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/VectifyAI/OpenKB&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;先に結論&#34;&gt;先に結論
&lt;/h2&gt;&lt;p&gt;OpenKB で注目したい点は 3 つあります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ナレッジベースを専用データベースに閉じ込めず、通常の Markdown ファイルとして出力する。&lt;/li&gt;
&lt;li&gt;PageIndex で長い PDF を処理し、ベクトル DB なしの長文ドキュメント検索を重視している。&lt;/li&gt;
&lt;li&gt;「知識のコンパイル」を重視し、毎回ゼロから検索するのではなく、LLM が要約、概念ページ、相互リンクを生成する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;そのため OpenKB は、論文読解、プロジェクト文書、社内資料、技術仕様、製品調査、個人ナレッジベースのように、資料を長期的に蓄積する場面に向いています。&lt;/p&gt;
&lt;p&gt;一方で万能の代替ではありません。高並行のオンライン Q&amp;amp;A、複雑な権限管理、Web 管理画面、企業向け監査、大規模なマルチテナント機能が必要なら、現時点の OpenKB は完全な企業ナレッジプラットフォームというより、開発者向けツール兼ナレッジベースのプロトタイプに近いです。&lt;/p&gt;
&lt;h2 id=&#34;openkb-とは&#34;&gt;OpenKB とは
&lt;/h2&gt;&lt;p&gt;OpenKB は Open Knowledge Base の略です。&lt;/p&gt;
&lt;p&gt;CLI として動作し、知識庫に入れた原始ドキュメントを変換、整理、要約し、一連の wiki ファイルを生成します。公式 README の説明は明快です。OpenKB は LLM を使って原始ドキュメントを構造化された相互リンク付き wiki スタイルのナレッジベースへコンパイルし、PageIndex によってベクトルレスな長文ドキュメント検索を支援します。&lt;/p&gt;
&lt;p&gt;対応する入力形式は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PDF&lt;/li&gt;
&lt;li&gt;Word&lt;/li&gt;
&lt;li&gt;Markdown&lt;/li&gt;
&lt;li&gt;PowerPoint&lt;/li&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;Excel&lt;/li&gt;
&lt;li&gt;プレーンテキスト&lt;/li&gt;
&lt;li&gt;markitdown で変換できるその他の形式&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;生成されたナレッジベースは &lt;code&gt;wiki/&lt;/code&gt; に置かれ、主に次の内容を含みます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;index.md&lt;/code&gt;：ナレッジベースの概要&lt;/li&gt;
&lt;li&gt;&lt;code&gt;log.md&lt;/code&gt;：操作タイムライン&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;：ナレッジベース構造とメンテナンス方針&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sources/&lt;/code&gt;：変換後の原文&lt;/li&gt;
&lt;li&gt;&lt;code&gt;summaries/&lt;/code&gt;：各ドキュメントの要約&lt;/li&gt;
&lt;li&gt;&lt;code&gt;concepts/&lt;/code&gt;：ドキュメント横断の概念ページ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;explorations/&lt;/code&gt;：保存された問い合わせ結果&lt;/li&gt;
&lt;li&gt;&lt;code&gt;reports/&lt;/code&gt;：lint レポート&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この設計の最大の利点は透明性です。ブラックボックスの検索インターフェイスから答えを受け取るだけでなく、Markdown ファイルを直接開いて知識庫を確認できます。&lt;/p&gt;
&lt;h2 id=&#34;従来型-rag-との違い&#34;&gt;従来型 RAG との違い
&lt;/h2&gt;&lt;p&gt;従来型 RAG の典型的な流れは次のようなものです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ドキュメントをチャンクに分割する。&lt;/li&gt;
&lt;li&gt;embedding を生成する。&lt;/li&gt;
&lt;li&gt;ベクトルデータベースに保存する。&lt;/li&gt;
&lt;li&gt;問い合わせ時に関連チャンクを取得する。&lt;/li&gt;
&lt;li&gt;それらを LLM に渡して回答を生成する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;この流れは成熟しており、Q&amp;amp;A システムにも向いています。ただし、知識そのものは本当の意味では蓄積されません。質問のたびに、関連片を探し、コンテキストを組み立て、回答を生成し直すことになります。&lt;/p&gt;
&lt;p&gt;OpenKB の考え方は「先に整理し、それから問う」に近いです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ドキュメントを &lt;code&gt;raw/&lt;/code&gt; に入れる。&lt;/li&gt;
&lt;li&gt;短いドキュメントは markitdown で Markdown に変換する。&lt;/li&gt;
&lt;li&gt;長い PDF は PageIndex でツリーインデックスと要約を生成する。&lt;/li&gt;
&lt;li&gt;LLM が文書要約を生成する。&lt;/li&gt;
&lt;li&gt;LLM が既存の概念ページを読み、ドキュメント横断の概念を作成または更新する。&lt;/li&gt;
&lt;li&gt;ナレッジベースの索引、ログ、相互リンクを更新する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;その結果、新しいドキュメントを 1 つ追加することは、単に検索可能なファイルを 1 つ増やすことではありません。十数個の wiki ページが更新されることもあります。知識は概念ページに書き込まれ、既存資料と接続されます。&lt;/p&gt;
&lt;p&gt;これは人間がナレッジベースを維持する方法に近いです。新しい資料が入ったら、保管するだけではなく、トピックページを更新し、差分を要約し、参照を追加します。&lt;/p&gt;
&lt;h2 id=&#34;pageindex-が解決する問題&#34;&gt;PageIndex が解決する問題
&lt;/h2&gt;&lt;p&gt;長文ドキュメントは、RAG と LLM ナレッジベースにとって常に難所です。&lt;/p&gt;
&lt;p&gt;長い PDF を単純に多数の chunk に分けると、次の問題が起きやすくなります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;章や節の関係が失われる。&lt;/li&gt;
&lt;li&gt;表、画像、脚注を扱いにくい。&lt;/li&gt;
&lt;li&gt;検索される断片が細かすぎて、回答に全体構造が欠ける。&lt;/li&gt;
&lt;li&gt;コンテキストウィンドウが大きくても、文書全体を詰め込むのは適切ではない。&lt;/li&gt;
&lt;li&gt;要約の連鎖が長いと、細部が圧縮されて失われやすい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenKB は長い PDF の処理に PageIndex を使います。プロジェクト説明によると、PageIndex は長文ドキュメントに対してツリーインデックスと要約を作成し、LLM が全文を直接読むのではなく、文書ツリー上で推論できるようにします。&lt;/p&gt;
&lt;p&gt;この路線の要点は「ベクトル類似度が最も高い数段落」を探すことではありません。モデルが文書の階層構造を利用して関連内容を見つけられるようにすることです。研究レポート、論文、マニュアル、目論見書、コンプライアンス文書のような長い資料では、この考え方はかなり有効です。&lt;/p&gt;
&lt;p&gt;OpenKB はデフォルトでオープンソース版 PageIndex をローカル実行できます。OCR、複雑な PDF 処理、より高速な構造生成が必要な場合は、&lt;code&gt;PAGEINDEX_API_KEY&lt;/code&gt; を設定して PageIndex Cloud を使うこともできます。&lt;/p&gt;
&lt;h2 id=&#34;インストールとクイックスタート&#34;&gt;インストールとクイックスタート
&lt;/h2&gt;&lt;p&gt;OpenKB は pip で直接インストールできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install openkb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;GitHub の最新バージョンを入れることもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install git+https://github.com/VectifyAI/OpenKB.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ソースから開発用にインストールする場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/VectifyAI/OpenKB.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; OpenKB
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -e .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ナレッジベース用ディレクトリを作成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir my-kb &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; my-kb
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ドキュメントを追加します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb add paper.pdf
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb add ~/papers/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;質問します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb query &lt;span class=&#34;s2&#34;&gt;&amp;#34;What are the main findings?&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;対話モードに入ります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb chat
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;新しいファイルを自動処理したい場合は watch モードを使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb watch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;その後 &lt;code&gt;raw/&lt;/code&gt; にファイルを置くと、OpenKB が自動的に wiki を更新します。&lt;/p&gt;
&lt;h2 id=&#34;llm-設定&#34;&gt;LLM 設定
&lt;/h2&gt;&lt;p&gt;OpenKB は LiteLLM を通じて、OpenAI、Claude、Gemini など複数のモデルプロバイダーに対応します。&lt;/p&gt;
&lt;p&gt;モデルは初期化時に設定できますし、&lt;code&gt;.openkb/config.yaml&lt;/code&gt; に書くこともできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gpt-5.4&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;language&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;en&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;pageindex_threshold&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;モデル名は LiteLLM の &lt;code&gt;provider/model&lt;/code&gt; 形式に従います。OpenAI モデルでは provider 接頭辞を省略できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gpt-5.4&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Anthropic や Gemini のモデルは通常、次のように書きます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;anthropic/claude-sonnet-4-6&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gemini/gemini-3.1-pro-preview&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;API key は &lt;code&gt;.env&lt;/code&gt; に入れます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;LLM_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_llm_api_key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;PageIndex Cloud を有効にする場合は、さらに追加します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PAGEINDEX_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_pageindex_api_key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;よく使うコマンド&#34;&gt;よく使うコマンド
&lt;/h2&gt;&lt;p&gt;OpenKB のコマンドは開発者にとって扱いやすいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;openkb init&lt;/code&gt;：新しいナレッジベースを初期化する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb add &amp;lt;file_or_dir&amp;gt;&lt;/code&gt;：ファイルまたはディレクトリを追加する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb remove &amp;lt;doc&amp;gt;&lt;/code&gt;：ドキュメントを削除し、関連する wiki ページ、画像、レジストリ、PageIndex 状態を整理する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb query &amp;quot;question&amp;quot;&lt;/code&gt;：ナレッジベースに対して単発の質問を行う。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb chat&lt;/code&gt;：複数ターンの対話に入る。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb watch&lt;/code&gt;：&lt;code&gt;raw/&lt;/code&gt; を監視し、自動更新する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb lint&lt;/code&gt;：構造と知識の健全性を確認する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb list&lt;/code&gt;：索引済みドキュメントと概念を一覧する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb status&lt;/code&gt;：ナレッジベースの統計を表示する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;openkb chat&lt;/code&gt; は、連続した探索には &lt;code&gt;openkb query&lt;/code&gt; より向いています。セッションの再開、一覧、削除に対応し、チャット内では &lt;code&gt;/status&lt;/code&gt;、&lt;code&gt;/list&lt;/code&gt;、&lt;code&gt;/add &amp;lt;path&amp;gt;&lt;/code&gt;、&lt;code&gt;/save&lt;/code&gt;、&lt;code&gt;/lint&lt;/code&gt; のような slash commands も使えます。&lt;/p&gt;
&lt;h2 id=&#34;markdown-wiki-が重要な理由&#34;&gt;Markdown wiki が重要な理由
&lt;/h2&gt;&lt;p&gt;多くのナレッジベースツールで厄介なのは移行コストです。&lt;/p&gt;
&lt;p&gt;資料が専用データベース、専用インデックス、専用フォーマットに入ると、直接確認、編集、バックアップ、移行するのが難しくなります。OpenKB は結果を通常の Markdown として書き出すため、既存ツールと自然に組み合わせられます。&lt;/p&gt;
&lt;p&gt;最も直接的な使い方は、Obsidian で &lt;code&gt;wiki/&lt;/code&gt; を開くことです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;要約ページをそのまま読める。&lt;/li&gt;
&lt;li&gt;概念ページを &lt;code&gt;[[wikilinks]]&lt;/code&gt; で相互接続できる。&lt;/li&gt;
&lt;li&gt;グラフビューで知識間の関係を確認できる。&lt;/li&gt;
&lt;li&gt;問い合わせ結果を &lt;code&gt;explorations/&lt;/code&gt; に保存できる。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; でナレッジベースの維持方法を定義できる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これにより OpenKB は単なる Q&amp;amp;A ツールではなく、個人やチームの知識整理パイプラインにもなります。&lt;/p&gt;
&lt;h2 id=&#34;向いている場面&#34;&gt;向いている場面
&lt;/h2&gt;&lt;p&gt;OpenKB は特に次の場面に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;論文や技術レポートの読解。&lt;/li&gt;
&lt;li&gt;プロジェクト文書の整理。&lt;/li&gt;
&lt;li&gt;製品調査資料庫。&lt;/li&gt;
&lt;li&gt;オープンソースプロジェクト周辺の文書ナレッジベース。&lt;/li&gt;
&lt;li&gt;社内規程、会議メモ、説明資料の整理。&lt;/li&gt;
&lt;li&gt;個人 Obsidian ナレッジベースの自動メンテナンス。&lt;/li&gt;
&lt;li&gt;長い PDF、PPT、Word、Web 資料の構造化。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;大量のドキュメントに向き合うとき、単に「一問一答」したいだけでなく、資料を徐々に閲覧可能、再利用可能、追跡可能な知識庫にしたいなら、OpenKB の方向性は合っています。&lt;/p&gt;
&lt;h2 id=&#34;使うときの注意点&#34;&gt;使うときの注意点
&lt;/h2&gt;&lt;p&gt;第一に、OpenKB は LLM の品質に依存します。&lt;/p&gt;
&lt;p&gt;要約、概念ページ、相互リンクはモデルによって生成されます。モデルが強いほど知識コンパイルの品質は安定します。モデル能力が不足していると、概念抽出、矛盾検出、ドキュメント横断の統合は弱くなります。&lt;/p&gt;
&lt;p&gt;第二に、コストは先に見積もるべきです。&lt;/p&gt;
&lt;p&gt;大量の長文ドキュメントを一度に投入すると、LLM 呼び出しコストは低くありません。まず小規模な資料セットで試し、出力構造と品質を確認してから範囲を広げるのがよいです。&lt;/p&gt;
&lt;p&gt;第三に、生成された wiki には人間の確認が必要です。&lt;/p&gt;
&lt;p&gt;OpenKB は資料を整理できますが、事実の完全な正確性を自動保証するものではありません。重要な知識庫では、要約、概念ページ、引用関係を人間が確認する必要があります。&lt;/p&gt;
&lt;p&gt;第四に、機密資料には慎重に扱う必要があります。&lt;/p&gt;
&lt;p&gt;クラウド LLM や PageIndex Cloud を使う場合、文書内のプライバシー、営業秘密、コンプライアンス要件に注意してください。社内資料では、モデルプロバイダー、データ保持方針、アクセス境界を先に確認するのが安全です。&lt;/p&gt;
&lt;p&gt;第五に、現時点では CLI ツール寄りです。&lt;/p&gt;
&lt;p&gt;ロードマップでは Web UI、データベースストレージ、大規模コレクション対応、階層型概念インデックスが挙げられています。ただし現在の段階では、チームメンバーがコマンドラインに慣れていない場合、導入のハードルはまだあります。&lt;/p&gt;
&lt;h2 id=&#34;obsidiannotebooklm企業-rag-との関係&#34;&gt;Obsidian、NotebookLM、企業 RAG との関係
&lt;/h2&gt;&lt;p&gt;OpenKB と Obsidian の関係は、「自動整理レイヤー」と「閲覧・編集レイヤー」と考えると分かりやすいです。&lt;/p&gt;
&lt;p&gt;Obsidian は人間が書き、直し、閲覧し、リンクを作るのに向いています。OpenKB は原始ドキュメントを Obsidian に入れられる wiki へまとめるのに向いています。&lt;/p&gt;
&lt;p&gt;OpenKB と NotebookLM の違いは、「ローカルで制御しやすいこと」と「開かれたファイル形式」にあります。&lt;/p&gt;
&lt;p&gt;NotebookLM は資料を入れてすぐ質問や要約を行う体験に優れています。OpenKB は、整理結果をローカルディレクトリに残し、Markdown として継続的に管理したい開発者に向いています。&lt;/p&gt;
&lt;p&gt;OpenKB と企業 RAG の関係は、置き換えではなく補完です。&lt;/p&gt;
&lt;p&gt;企業 RAG は権限、監査、サービス化、アクセス分離、監視、安定したスループットを重視します。OpenKB は、読みやすく編集しやすく長期的に蓄積できる知識レイヤーを作るのに向いています。将来的にオンライン Q&amp;amp;A を作る場合でも、OpenKB が生成した wiki は高品質なコーパスとして使えます。&lt;/p&gt;
&lt;h2 id=&#34;おすすめのワークフロー&#34;&gt;おすすめのワークフロー
&lt;/h2&gt;&lt;p&gt;OpenKB を試すなら、次の順番がよいです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;テスト用のナレッジベースディレクトリを作る。&lt;/li&gt;
&lt;li&gt;同じテーマのドキュメントを 3 から 5 件入れる。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb add&lt;/code&gt; を実行する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wiki/&lt;/code&gt; を開いて要約と概念ページを確認する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb query&lt;/code&gt; で具体的な質問をいくつか試す。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb lint&lt;/code&gt; でナレッジベースの健全性を確認する。&lt;/li&gt;
&lt;li&gt;Obsidian で &lt;code&gt;wiki/&lt;/code&gt; を開き、リンクグラフが意味を持つか見る。&lt;/li&gt;
&lt;li&gt;品質を確認してから、より大きなドキュメント集合を取り込む。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;最初から数百ファイルを一気に投入しないほうがよいです。まず自分の資料タイプをうまく理解できるか、特に表、画像、長い PDF、複数文書の概念統合を確認しましょう。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;OpenKB の価値は、LLM ナレッジベースを「問い合わせ時に一時的にコンテキストを組む」段階から一歩前に進めることです。まず資料を wiki として整理し、その wiki 上で質問、チャット、検査、継続的なメンテナンスを行います。&lt;/p&gt;
&lt;p&gt;この方向性はすべての Q&amp;amp;A システムに合うわけではありませんが、長期的な蓄積が必要な知識作業には向いています。Markdown ファイル、Obsidian 互換、PageIndex による長文処理、複数モデル対応、CLI ワークフローを組み合わせると、開発者や調査型ユーザーにとって実用的なナレッジベースツールになります。&lt;/p&gt;
&lt;p&gt;大量の PDF、レポート、Web ページ、論文、プロジェクト文書を持っているなら、OpenKB は試す価値があります。成熟した企業ナレッジベースをすぐ置き換えるものではないかもしれませんが、資料整理の入口としては実用的です。まずドキュメントを読める、リンクできる、追跡できる知識に変え、その上で LLM を働かせることができます。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/OpenKB&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;VectifyAI/OpenKB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openkb.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenKB プロジェクトページ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://pageindex.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;PageIndex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/markitdown&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;markitdown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.litellm.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;LiteLLM&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Google Gemini Spark リーク解説：24 時間オンラインの Gemini Agent が登場するかもしれない</title>
        <link>https://knightli.com/ja/2026/05/17/google-gemini-spark-ai-agent-leak/</link>
        <pubDate>Sun, 17 May 2026 11:58:08 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/17/google-gemini-spark-ai-agent-leak/</guid>
        <description>&lt;p&gt;Google はまだ &lt;code&gt;Gemini Spark&lt;/code&gt; を正式発表していません。&lt;/p&gt;
&lt;p&gt;現在の情報は、主に Gemini Web 内部のテスト画面、コミュニティのスクリーンショット、TestingCatalog の報道、そして 36Kr / 新智元による関連リークの整理に基づいています。比較的一致している見方は、&lt;code&gt;Gemini Spark BETA&lt;/code&gt; が Google の準備している常時稼働 AI Agent かもしれないというものです。単なるチャットアシスタントではなく、バックグラウンドでメール、オンラインタスク、複数ステップのワークフローを処理する「日常の AI 代理人」という位置付けです。&lt;/p&gt;
&lt;p&gt;まず境界をはっきりさせると、これはリーク解説であり、Google の公式発表ではありません。機能、名称、公開時期はいずれも Google の正式発表を待つ必要があります。&lt;/p&gt;
&lt;h2 id=&#34;まず結論&#34;&gt;まず結論
&lt;/h2&gt;&lt;p&gt;現時点で露出している情報を見ると、Gemini Spark の要点は 3 つです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Gemini 体系の中で 24 時間オンラインの Agent になる可能性があり、通常のチャットモデルではない。&lt;/li&gt;
&lt;li&gt;Google アプリ、チャット履歴、タスク、ログイン済みサイト、位置情報など、より広い個人コンテキストを利用する可能性がある。&lt;/li&gt;
&lt;li&gt;情報共有、リモートブラウザデータ、購入操作、第三者サービス呼び出しに関わるため、魅力と同じくらいリスクも大きい。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Google が本当に Spark を投入すれば、Gemini の位置付けは「質問に答える AI」から「継続的に用事を処理する AI」へ変わります。&lt;/p&gt;
&lt;h2 id=&#34;gemini-spark-とは何か&#34;&gt;Gemini Spark とは何か
&lt;/h2&gt;&lt;p&gt;TestingCatalog は 2026 年 5 月 14 日、Google が Gemini Web 内で &lt;code&gt;Gemini Spark BETA&lt;/code&gt; をテストしていると報じました。露出した welcome テキストでは、inbox、online tasks、さらに多くの複数ステップ作業を 24/7 で支援する everyday AI agent と説明されています。&lt;/p&gt;
&lt;p&gt;36Kr / 新智元の記事も、Spark が見つかった後、外部からは「常時稼働 Agent」方向に見えると述べています。終日待機し、受信箱を処理し、オンラインタスクを実行し、購入や情報共有に関わる可能性もあります。&lt;/p&gt;
&lt;p&gt;つまり Spark は単なる新モデル名ではありません。Gemini を会話ウィンドウから出し、ユーザーのメール、Web、予定、タスク、アプリ横断ワークフローへ入れる Gemini 製品レイヤーのアップグレードに近いものです。&lt;/p&gt;
&lt;h2 id=&#34;どのように動く可能性があるか&#34;&gt;どのように動く可能性があるか
&lt;/h2&gt;&lt;p&gt;TestingCatalog が公開した隠し onboarding テキストによると、Gemini Spark は複数の情報源からコンテキストを取得します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Connected Apps。&lt;/li&gt;
&lt;li&gt;skills。&lt;/li&gt;
&lt;li&gt;chats。&lt;/li&gt;
&lt;li&gt;tasks。&lt;/li&gt;
&lt;li&gt;ユーザーがログインした Web サイト。&lt;/li&gt;
&lt;li&gt;Personal intelligence。&lt;/li&gt;
&lt;li&gt;location。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの情報は、Spark がユーザーのやりたいことを理解し、タスク実行時に必要なコンテキストを呼び出す助けになります。文面ではさらに、一部のアクションを完了するために、Gemini が名前、連絡先、ファイル、好み、ユーザーが機密と考える可能性のある情報を第三者に共有する場合があるとも示されています。&lt;/p&gt;
&lt;p&gt;これらの説明が最終的に正しければ、Spark の動作は一回限りの Q&amp;amp;A ではなく、「コンテキストを持つ代理システム」に近くなります。現在の 1 つの prompt だけを見るのではなく、長期的な好み、連携アプリ、ブラウザ状態、タスク履歴を組み合わせる可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;なぜ重要なのか&#34;&gt;なぜ重要なのか
&lt;/h2&gt;&lt;p&gt;Gemini Spark の重要性は、チャット入口が 1 つ増えることではありません。Google が自然なエコシステム入口を持っている点にあります。&lt;/p&gt;
&lt;p&gt;OpenAI や Anthropic も強力な Agent を作れますが、Gmail、Calendar、Drive、Chrome、Android、Workspace という完全なチェーンを自然に持っているわけではありません。Google が Spark をこれらの製品に接続すれば、ユーザーは追加のワークフローをあまり構築しなくても、Agent を日常業務に入れられます。&lt;/p&gt;
&lt;p&gt;これにより 3 つの変化が起きます。&lt;/p&gt;
&lt;p&gt;第一に、Gemini は受動的な Q&amp;amp;A から能動的な実行へ移ります。ユーザーは「このメールを要約して」と聞くだけでなく、inbox の整理、タスク追跡、後続アクションを継続的に任せるかもしれません。&lt;/p&gt;
&lt;p&gt;第二に、Agent は個人コンテキストにより依存します。メール、予定、ファイル、ブラウザ状態、好みを理解するほど、有用な結果を返しやすくなります。&lt;/p&gt;
&lt;p&gt;第三に、権限境界がより敏感になります。できることが増えるほど、いつ実行できるのか、どこまでできるのか、確認が必要かを明確にする必要があります。&lt;/p&gt;
&lt;h2 id=&#34;リスクはどこにあるか&#34;&gt;リスクはどこにあるか
&lt;/h2&gt;&lt;p&gt;TestingCatalog が公開した文面には、注意すべき点がいくつかあります。&lt;/p&gt;
&lt;p&gt;第一に、Spark は experimental です。仮に公開されても、完全に成熟した監督不要のシステムとして扱うべきではありません。&lt;/p&gt;
&lt;p&gt;第二に、システム設計上は機微な操作の前に許可を求めるものの、文面では、確認なしに情報を共有したり購入を完了したりする可能性も示されています。&lt;/p&gt;
&lt;p&gt;第三に、会話の継続性を保つため、Gemini は login details や remote code execution data などの remote browser data を保存します。ユーザーは Settings からこれらのデータを削除でき、Connected Apps や Personal intelligence 関連機能も無効化できます。&lt;/p&gt;
&lt;p&gt;これらを合わせると、Spark の製品方向はかなり攻めています。提案を生成するだけではなく、本当にタスクを実行できる Agent を目指しています。ただし実行に近づくほど、厳格な権限、監査、確認、ロールバック機構が必要になります。&lt;/p&gt;
&lt;h2 id=&#34;remyai-ultra-との関係&#34;&gt;Remy、AI Ultra との関係
&lt;/h2&gt;&lt;p&gt;TestingCatalog は、Spark が以前 &lt;code&gt;Remy&lt;/code&gt; という内部コードネームで呼ばれていた agentic Gemini upgrade のリネーム版であり、Google AI Ultra 加入者向け Gemini Agent の方向とも関係している可能性があると述べています。&lt;/p&gt;
&lt;p&gt;この手がかりが正しければ、Spark は突然現れた新規プロジェクトではなく、Google が以前のより高階でクローズドな Agent 機能を再パッケージし、より広いユーザー層へ展開しようとしているものかもしれません。&lt;/p&gt;
&lt;p&gt;36Kr / 新智元も、これを “Remy” から “Spark” へのアップグレードとして描写しています。Gemini Agent は単なる機能ではなく、24/7 のデジタル生活マネージャーへ向かうという見方です。&lt;/p&gt;
&lt;p&gt;ただし、これはあくまでリーク情報に基づく判断です。Google が &lt;code&gt;Spark&lt;/code&gt; を正式名称として使うのか、AI Ultra 限定なのか、より軽量なサブスクリプション層を出すのかは、公式確認を待つ必要があります。&lt;/p&gt;
&lt;h2 id=&#34;mcpskillsツールエコシステム&#34;&gt;MCP、skills、ツールエコシステム
&lt;/h2&gt;&lt;p&gt;同じコミュニティスクリーンショット群では、&lt;code&gt;MCP Tool Testing&lt;/code&gt; のようなモデルセレクター項目も見つかっています。36Kr の記事は、これが新しい Gemini の MCP サードパーティツール統合ネイティブ対応や Thinking モード再構築を示唆している可能性があると見ています。&lt;/p&gt;
&lt;p&gt;この手がかりは Spark と一緒に見ると面白くなります。&lt;/p&gt;
&lt;p&gt;Spark が単なる「チャットできる助手」なら、skills や MCP の意味は限定的です。しかし Spark が長時間動作する Agent なら、ツール呼び出し、Web ページアクセス、タスク実行、コンテキストの読み書き、結果の納品が安定して必要になります。&lt;/p&gt;
&lt;p&gt;つまり Spark は単独機能ではなく、Google Agent ツールエコシステムの一部かもしれません。モデルが理解と計画を担い、skills / MCP / connected apps が実行と拡張を担う構図です。&lt;/p&gt;
&lt;h2 id=&#34;一般ユーザーにとっての意味&#34;&gt;一般ユーザーにとっての意味
&lt;/h2&gt;&lt;p&gt;Gemini Spark が本当に公開されれば、一般ユーザーにとって直接的な変化は次のようなものになる可能性があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;メールは要約されるだけでなく、分類、フォローアップ、タスク化される。&lt;/li&gt;
&lt;li&gt;Web タスクは提案されるだけでなく、リモートブラウザ内で継続的に実行される可能性がある。&lt;/li&gt;
&lt;li&gt;予定、位置、好み、過去の会話が Agent の長期コンテキストになる。&lt;/li&gt;
&lt;li&gt;購入、予約、フォーム入力などの操作が AI 実行範囲に入る可能性がある。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;便利に聞こえますが、ユーザーには新しい習慣が必要になります。AI が何を言ったかだけでなく、何をしようとしているのか、何をすでにしたのか、取り消せるのか、記録があるのかを見る必要があります。&lt;/p&gt;
&lt;p&gt;将来の AI Agent 体験は、モデルの賢さだけでなく、権限プロンプトが明確か、タスクログを確認できるか、誤操作から回復できるかにも左右されます。&lt;/p&gt;
&lt;h2 id=&#34;開発者とチームにとっての意味&#34;&gt;開発者とチームにとっての意味
&lt;/h2&gt;&lt;p&gt;開発者にとって Spark が重要なのは、Google が Agent を「デモ製品」から実際のワークフロープラットフォームへ移そうとしている可能性があるからです。&lt;/p&gt;
&lt;p&gt;Spark が Google アプリ、サードパーティツール、ブラウザ状態に安定して接続できるなら、開発者は次の点を気にします。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;API や拡張機構は公開されるのか。&lt;/li&gt;
&lt;li&gt;MCP や skills は第三者が接続できるのか。&lt;/li&gt;
&lt;li&gt;企業管理者は権限、データ保持、監査を制御できるのか。&lt;/li&gt;
&lt;li&gt;Agent 実行失敗時に追跡可能なログがあるのか。&lt;/li&gt;
&lt;li&gt;サンドボックス、承認フロー、機微な操作の確認をサポートするのか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;チームにとって、Spark はまず Gmail、Calendar、Docs、Drive、Chrome のような高頻度シーンから入る可能性があります。最初から高リスク業務を完全自動化するのには向かないかもしれませんが、inbox triage、会議フォローアップ、資料整理、市場調査、軽量な運用タスクには適しています。&lt;/p&gt;
&lt;h2 id=&#34;今どう見るべきか&#34;&gt;今どう見るべきか
&lt;/h2&gt;&lt;p&gt;このニュースは「方向性の確度は高いが、細部の確定度は低い」と読むのがよさそうです。&lt;/p&gt;
&lt;p&gt;方向性の確度が高いのは、Google が Gemini Agent をより能動的、より長時間稼働、より深くエコシステムへ接続する方向に進めている点です。TestingCatalog が報じた Gemini Web のテスト文面、コミュニティのスクリーンショット、36Kr が整理した複数のリークは、同じ方向を示しています。&lt;/p&gt;
&lt;p&gt;細部の確定度が低いのは、正式名称、公開時期、権限ルール、サブスクリプション階層、利用可能地域、API 公開の有無、本当に Gemini Spark と呼ばれるかがまだ分からないためです。&lt;/p&gt;
&lt;p&gt;現時点で最も安全な見方は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Spark をすでに公開済みの正式製品として扱わない。&lt;/li&gt;
&lt;li&gt;Google の次段階の AI Agent 路線を示す強いシグナルとして見る。&lt;/li&gt;
&lt;li&gt;権限、プライバシー、第三者へのデータ共有、リモートブラウザデータ保存について、Google がどう説明するかを待つ。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Gemini Spark&lt;/code&gt; が最終的に公開されれば、Gemini がチャットアシスタントから常時稼働 Agent へ進む重要な一歩になるかもしれません。単にモデルを入れ替える話ではなく、Gemini を Google エコシステムのメール、Web、タスク、位置情報、personal intelligence、第三者サービスの中に入れる話です。&lt;/p&gt;
&lt;p&gt;可能性は大きいです。より能動的で、実際のワークフローに近く、Google のエコシステムによって多くのユーザーへ配布しやすいからです。リスクも同じくらい大きいです。AI が情報を共有し、ブラウザ状態を保存し、購入を実行し、第三者サービスを呼び出せるなら、権限境界は非常に明確でなければなりません。&lt;/p&gt;
&lt;p&gt;だから Gemini Spark で最も注目すべきなのは「どれだけ賢いか」ではなく、Google が 24 時間オンラインの AI Agent をどのように制御可能で、監査可能で、信頼できるものにするかです。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.testingcatalog.com/google-prepares-gemini-spark-ai-agent-ahead-of-i-o-launch/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;TestingCatalog：Google prepares Gemini Spark AI Agent ahead of I/O launch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://36kr.com/p/3810432812162816&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;36Kr：Gemini 3.5 Pro 全網首曝，編程追平 GPT-5.5，谷歌終於狠起來了&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Gemini Intelligence on Android 解説：Google はスマートフォンをプロアクティブな AI システムへ変えようとしている</title>
        <link>https://knightli.com/ja/2026/05/17/google-gemini-intelligence-android/</link>
        <pubDate>Sun, 17 May 2026 09:13:32 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/17/google-gemini-intelligence-android/</guid>
        <description>&lt;p&gt;Google は 2026 年 5 月 12 日に「A smarter, more proactive Android with Gemini Intelligence」を公開し、Gemini Intelligence on Android を発表しました。これは単独のチャットアプリではありません。Gemini の機能を Android、Chrome、Gboard、Autofill、widgets、マルチデバイス体験に組み込み、スマートフォンを「ユーザーのタップを待つ道具」から「ユーザーのタスクを能動的に手伝うシステム」へ変えるものです。&lt;/p&gt;
&lt;p&gt;簡単に言えば、Google は Android を operating system から intelligence system へ進めようとしています。スマートフォンはアプリを開き、通知を表示し、設定を動かすだけではなく、画面、アプリ、音声、個人コンテキストを理解し、ユーザーの確認のもとでより複雑な操作を実行できるようになります。&lt;/p&gt;
&lt;h2 id=&#34;まず結論&#34;&gt;まず結論
&lt;/h2&gt;&lt;p&gt;Gemini Intelligence on Android は主に 5 つの方向を持っています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;マルチステップ自動化：Gemini がアプリ間で配車、買い物、調査などの流れを完了する。&lt;/li&gt;
&lt;li&gt;Chrome のスマートブラウジング：Android 上でページを要約し、情報を比較し、一部の反復的な Web タスクを処理する。&lt;/li&gt;
&lt;li&gt;Autofill の強化：Gemini と個人コンテキストを使い、より複雑なフォームを入力する。&lt;/li&gt;
&lt;li&gt;Rambler：自然な話し言葉を、より明確で整ったテキストに変える。&lt;/li&gt;
&lt;li&gt;自然言語ウィジェット：ユーザーが欲しいものを一文で説明すると、Android がカスタム widgets を生成する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの機能は 2026 年夏から段階的に展開され、まず一部の Samsung Galaxy と Google Pixel に提供され、その後、時計、自動車、メガネ、ノート PC を含むより多くの Android デバイスに広がります。&lt;/p&gt;
&lt;h2 id=&#34;マルチステップ自動化提案から実行へ&#34;&gt;マルチステップ自動化：提案から実行へ
&lt;/h2&gt;&lt;p&gt;今回 Google が最も重視しているのは、Gemini がアプリをまたいで複数ステップのタスクを完了することです。&lt;/p&gt;
&lt;p&gt;原文では、Gemini にスピンクラスを予約させる、Gmail から授業シラバスを見つけて必要な本を買い物カートに入れる、旅行ポスターを見て Expedia で似た旅行を探させる、といった例が挙げられています。&lt;/p&gt;
&lt;p&gt;この能力のポイントは、単に一文を理解することではありません。同時に次のことを理解する必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ユーザーの現在の画面や画像に何があるか。&lt;/li&gt;
&lt;li&gt;ユーザーが許可した範囲のアプリ情報。&lt;/li&gt;
&lt;li&gt;次にどのアプリを開くべきか。&lt;/li&gt;
&lt;li&gt;どの手順を自動実行できるか。&lt;/li&gt;
&lt;li&gt;どの手順でユーザー確認が必要か。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Google は、Gemini がユーザーの指示に従って動き、タスク完了時に停止し、最終確認はユーザーが保持すると強調しています。これは完全自律のエージェントではなく、人間の確認を含むモバイル端末上の agent です。&lt;/p&gt;
&lt;h2 id=&#34;画面と画像コンテキストが重要になる&#34;&gt;画面と画像コンテキストが重要になる
&lt;/h2&gt;&lt;p&gt;今回の更新で注目すべき変化は、screen context と image context です。&lt;/p&gt;
&lt;p&gt;従来のスマートフォンアシスタントは、音声コマンドやアプリ内の固定インターフェースに大きく依存していました。Gemini Intelligence は「今の画面を見る」ことをより重視します。たとえば、メモに買い物リストがある場合、電源ボタンを長押しして Gemini を呼び出し、そのリストから配送カートを作らせることができます。&lt;/p&gt;
&lt;p&gt;つまり Android AI は単なるチャットボットではなく、ユーザーの目の前の操作環境を理解しようとしています。今後のモバイル AI 競争は、モデルの回答品質だけでなく、次の点にも左右される可能性があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;現在の画面を理解できるか。&lt;/li&gt;
&lt;li&gt;アプリをまたいで実行できるか。&lt;/li&gt;
&lt;li&gt;バックグラウンドでタスク進行を追跡できるか。&lt;/li&gt;
&lt;li&gt;重要な場面で確実にユーザー確認を求められるか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これはモバイル AI と Web チャット AI の大きな違いです。&lt;/p&gt;
&lt;h2 id=&#34;chrome-のスマートブラウジング検索から-web-タスク代理へ&#34;&gt;Chrome のスマートブラウジング：検索から Web タスク代理へ
&lt;/h2&gt;&lt;p&gt;Google によると、2026 年 6 月下旬から Android デバイスによりスマートな Gemini in Chrome が提供されます。&lt;/p&gt;
&lt;p&gt;これは、Web コンテンツの調査、要約、比較を支援し、Chrome auto browse によって予約や駐車場予約など一部の反復的な Web タスクを処理できます。&lt;/p&gt;
&lt;p&gt;つまり Gemini in Chrome は単なるページ要約機能ではなく、ブラウザエージェントへ向かっています。ブラウザはもともと多くの Web タスクの入口です。Gemini がページを理解し、情報を入力し、選択肢を比較し、一部手順を実行できれば、Chrome は閲覧ツールからタスク実行インターフェースへ変わります。&lt;/p&gt;
&lt;p&gt;ただし、この種の機能には現実的な課題もあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web サイト構造は複雑で、自動操作は失敗しやすい。&lt;/li&gt;
&lt;li&gt;フォーム、支払い、ログイン、CAPTCHA などは慎重に扱う必要がある。&lt;/li&gt;
&lt;li&gt;ユーザーは Gemini が何をしたのか知る必要がある。&lt;/li&gt;
&lt;li&gt;最終送信、支払い、予約は人間の確認を残すべきです。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本当の難しさはモデル能力だけではなく、ブラウザ自動化、安全境界、ユーザー信頼にあります。&lt;/p&gt;
&lt;h2 id=&#34;autofillパスワード入力から複雑なフォーム入力へ&#34;&gt;Autofill：パスワード入力から複雑なフォーム入力へ
&lt;/h2&gt;&lt;p&gt;Autofill with Google はもともと、パスワード、住所、支払い情報などの基本的な便利機能でした。Google はこれを、よりスマートなフォームアシスタントへ進化させようとしています。&lt;/p&gt;
&lt;p&gt;原文では、Gemini の Personal Intelligence により、Android が接続アプリ内の関連情報を使い、Chrome 内のフォームを含むより複雑なフォーム項目を自動入力できると説明しています。&lt;/p&gt;
&lt;p&gt;これは実用的です。モバイルで複雑なフォームを入力するのは面倒です。画面は小さく、項目は多く、メール、カレンダー、チャット、文書から情報をコピーする必要があります。Gemini がユーザー許可のもとで整理して入力できれば、多くの時間を節約できます。&lt;/p&gt;
&lt;p&gt;Google は、Gemini と Autofill with Google の接続は厳密に opt-in だとも強調しています。ユーザー自身が接続するかを選び、設定からいつでもオン・オフできます。&lt;/p&gt;
&lt;p&gt;Autofill は個人情報、住所、アカウント、支払い、仕事情報、敏感なフォームに関わるため、この点は重要です。便利になるほど、明確な許可と制御可能な退出が必要になります。&lt;/p&gt;
&lt;h2 id=&#34;rambler話し言葉を送信できるテキストへ&#34;&gt;Rambler：話し言葉を送信できるテキストへ
&lt;/h2&gt;&lt;p&gt;Rambler は今回の更新で特に興味深い機能です。&lt;/p&gt;
&lt;p&gt;Gboard はすでに音声入力に対応していますが、人が話すときには繰り返し、間、フィラー、自分での言い直しがよくあります。Rambler は自然な話し言葉を、より明確で送信しやすいテキストに整えることを目指しています。&lt;/p&gt;
&lt;p&gt;向いている場面は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;メッセージを素早く口述したいが、一語ずつ修正したくない。&lt;/li&gt;
&lt;li&gt;話し言葉に間、繰り返し、フィラーが混ざる。&lt;/li&gt;
&lt;li&gt;思いつきを、よりプロらしい SMS、メール、チャット文に整理したい。&lt;/li&gt;
&lt;li&gt;複数言語を切り替えながら話し、文脈を理解してほしい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Google は、Rambler が有効になっていることを明確に表示し、音声はリアルタイム文字起こしにのみ使われ保存されないと説明しています。これはプライバシーと透明性への対応です。&lt;/p&gt;
&lt;p&gt;製品として見ると、Rambler は「音声入力」を「音声ライティング」にアップグレードするものです。言ったことを記録するだけでなく、口語を送信できる文章へ整えます。&lt;/p&gt;
&lt;h2 id=&#34;自然言語でウィジェットを作る&#34;&gt;自然言語でウィジェットを作る
&lt;/h2&gt;&lt;p&gt;Gemini Intelligence には Create My Widget も含まれます。ユーザーは「毎週 3 つの高タンパク作り置きレシピをすすめて」のように自然言語で欲しいウィジェットを説明し、Android がホーム画面用のカスタム widget を生成します。&lt;/p&gt;
&lt;p&gt;これは Android が generative UI を試していることを意味します。ユーザーは固定テンプレートから選ぶだけでなく、見たい情報と表示方法を説明できます。&lt;/p&gt;
&lt;p&gt;この方向が成熟すれば、スマートフォンのホーム画面はより個人化されます。天気、予定、健康、通勤、食事、学習、仕事のリマインダーが、ユーザーの需要に応じて生成される動的モジュールになります。&lt;/p&gt;
&lt;p&gt;ただし、生成 UI には安定性が必要です。ウィジェットは一度限りのチャット回答ではなく、長くホーム画面に表示されます。信頼でき、読みやすく、設定可能で、画面を乱さない必要があります。&lt;/p&gt;
&lt;h2 id=&#34;material-3-expressive-とインテリジェント-ui&#34;&gt;Material 3 Expressive とインテリジェント UI
&lt;/h2&gt;&lt;p&gt;Google は、Gemini Intelligence が Material 3 Expressive に基づくデザイン更新ももたらすと述べています。&lt;/p&gt;
&lt;p&gt;これは単なる見た目の改善ではありません。AI が能動的にタスクを処理し始めると、UI は次を明確に示す必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI が何をしているか。&lt;/li&gt;
&lt;li&gt;どの手順が完了したか。&lt;/li&gt;
&lt;li&gt;どこでユーザー確認が必要か。&lt;/li&gt;
&lt;li&gt;ユーザーがどうキャンセルまたは変更できるか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;明確な UI のないプロアクティブ AI は、ユーザーに制御不能感を与えやすいです。そのためデザイン言語そのものが AI 製品体験の一部になります。&lt;/p&gt;
&lt;h2 id=&#34;提供時期と展開&#34;&gt;提供時期と展開
&lt;/h2&gt;&lt;p&gt;Google によると、Gemini Intelligence の機能は最新の Samsung Galaxy と Google Pixel から始まり、2026 年夏に段階的に展開されます。その後、時計、自動車、メガネ、ノート PC を含むより多くの Android デバイスへ広がります。&lt;/p&gt;
&lt;p&gt;これは一度に全世界で提供されるものではありません。利用可否は、端末、地域、言語、アプリ対応、アカウント設定に依存する可能性があります。&lt;/p&gt;
&lt;p&gt;試したい場合、現実的な期待は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;まず Pixel と Samsung のフラッグシップ機を見る。&lt;/li&gt;
&lt;li&gt;2026 年夏以降のシステム更新に注目する。&lt;/li&gt;
&lt;li&gt;Gemini、Chrome、Gboard、Autofill、Android 設定内の新しいトグルを見る。&lt;/li&gt;
&lt;li&gt;地域や言語によって、すべての機能が同時に使えるとは限らない。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;android-にとっての意味&#34;&gt;Android にとっての意味
&lt;/h2&gt;&lt;p&gt;Gemini Intelligence on Android の意味は、いくつかの AI 小機能を追加したことではありません。Android の製品ポジションの変化です。&lt;/p&gt;
&lt;p&gt;これまでのスマートフォン OS は、主にアプリ、通知、権限、ファイル、ハードウェアを管理していました。Google は今、システムにユーザー意図を理解させ、アプリ間でタスクを完了させようとしています。この方向が成功すれば、Android の競争軸は「システム機能とアプリエコシステム」から「ユーザーの作業をどれだけ能動的に助けられるか」へ広がります。&lt;/p&gt;
&lt;p&gt;これはモバイル AI 競争を新しい段階に進めます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apple はオンデバイス、プライバシー、システム統合を強調する。&lt;/li&gt;
&lt;li&gt;Google は Gemini、検索、Chrome、Android、マルチデバイスエコシステムを強調する。&lt;/li&gt;
&lt;li&gt;サードパーティ AI アプリはシステムレベルの入口と競争しにくくなる。&lt;/li&gt;
&lt;li&gt;アプリ開発者は、自分のアプリが AI agent からどう呼ばれるかを考える必要がある。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;今後数年、スマートフォン上の AI は単なるチャット入口ではなく、システムレベルの実行層になる可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Google が発表した Gemini Intelligence on Android の中心は、「スマートフォンに Gemini チャット枠を追加する」ことではありません。AI を Android の操作フローに組み込むことです。マルチステップ自動化、Chrome のスマートブラウジング、Autofill、Rambler、自然言語ウィジェットはすべて、スマートフォンを受動的な道具から能動的なアシスタントへ変えるためのものです。&lt;/p&gt;
&lt;p&gt;それが本当にユーザー習慣を変えるかは、自動化の信頼性、明確なプライバシー設定、スムーズなアプリ横断操作、そしてユーザーが最終的な制御を持ち続けられるかにかかっています。少なくとも今回の発表を見る限り、Google は Android の次の段階を、従来型のモバイル OS ではなくプロアクティブな AI システムとして定義しています。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.google/products-and-platforms/platforms/android/gemini-intelligence/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google Blog：A smarter, more proactive Android with Gemini Intelligence&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Codex が ChatGPT モバイルからのリモートアクセスに対応、Enterprise ワークスペースで Access Tokens が利用可能に</title>
        <link>https://knightli.com/ja/2026/05/17/codex-mobile-remote-access-enterprise-access-tokens/</link>
        <pubDate>Sun, 17 May 2026 09:12:07 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/17/codex-mobile-remote-access-enterprise-access-tokens/</guid>
        <description>&lt;p&gt;OpenAI は 2026 年 5 月 14 日、ChatGPT Enterprise &amp;amp; Edu Release Notes を更新し、Codex に関する 2 つの変更を発表しました。Codex が ChatGPT モバイルアプリからのリモートアクセスに対応し、Enterprise ワークスペースで Codex access tokens を使った制御された自動化が可能になりました。&lt;/p&gt;
&lt;p&gt;これはモデル能力の発表ではありません。Codex という製品の形が変わりつつあるという話です。Codex は、ローカル環境や Web セッション内の coding assistant から、長時間実行でき、遠隔から管理でき、企業の自動化ワークフローに接続できる coding agent へ近づいています。&lt;/p&gt;
&lt;h2 id=&#34;今回の更新内容&#34;&gt;今回の更新内容
&lt;/h2&gt;&lt;p&gt;OpenAI Help Center によると、Codex は ChatGPT mobile app からのリモートアクセスに対応しました。ユーザーはスマートフォンから実行中の Codex 環境に接続し、長時間タスクを追跡し、必要なタイミングで介入できます。&lt;/p&gt;
&lt;p&gt;同時に、ChatGPT Enterprise ワークスペースでは Codex access tokens が利用可能になりました。これは信頼された非対話型のローカルワークフロー向けで、毎回ブラウザでログインしなくても、ChatGPT workspace identity と企業側の制御を使って自動化を実行できます。&lt;/p&gt;
&lt;p&gt;今回の更新は、次の 2 つの入口として理解できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;モバイルリモートアクセス：Codex が長時間タスクを実行しているとき、ユーザーが PC の前にいない問題を解決する。&lt;/li&gt;
&lt;li&gt;Access Tokens：企業の自動化スクリプトが制御された ID で Codex ワークフローを使えるようにする。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;モバイルリモートアクセスが解決する問題&#34;&gt;モバイルリモートアクセスが解決する問題
&lt;/h2&gt;&lt;p&gt;Codex のタスクは、いつも数秒で終わるわけではありません。実際の開発では、リポジトリを読み、複数ファイルを変更し、テストを実行し、コマンド出力を待ち、エラーに応じて修正を続け、途中でユーザーの承認を求めることがあります。&lt;/p&gt;
&lt;p&gt;これまでは、こうしたタスクではユーザーがローカル Mac、デスクトップアプリ、CLI、IDE の近くにいる必要がありました。今後は ChatGPT モバイルアプリがリモートコンソールになり、PC から離れていても Codex を追跡できます。&lt;/p&gt;
&lt;p&gt;OpenAI は、モバイル側で基盤環境のリアルタイム状態を確認できると説明しています。対象には次が含まれます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロジェクトコンテキスト。&lt;/li&gt;
&lt;li&gt;approvals。&lt;/li&gt;
&lt;li&gt;screenshots。&lt;/li&gt;
&lt;li&gt;terminal output。&lt;/li&gt;
&lt;li&gt;diffs。&lt;/li&gt;
&lt;li&gt;test results。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ユーザーはスマートフォンから Codex の質問に答え、実行をリダイレクトし、操作を承認し、出力を確認し、複数の connected hosts を切り替えられます。基盤タスクは Mac host や接続されたリモート環境で動き続け、スマートフォンは確認と制御のために使われます。&lt;/p&gt;
&lt;h2 id=&#34;開発者にとっての価値&#34;&gt;開発者にとっての価値
&lt;/h2&gt;&lt;p&gt;この機能は、長時間実行され、途中確認が必要な開発タスクに特に向いています。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Codex が時間のかかるテストを実行していて、外出中に結果を確認したい。&lt;/li&gt;
&lt;li&gt;Codex が複数ファイルを変更し、スマートフォンで diff を見てから次のステップを承認したい。&lt;/li&gt;
&lt;li&gt;Codex が危険な操作の前で確認待ちになっており、遠隔で処理したい。&lt;/li&gt;
&lt;li&gt;ローカル Mac に複数の connected hosts があり、スマートフォンで状態を切り替えて見たい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;価値はスマートフォンでコードを書くことではありません。ずっと PC の前にいる必要がなくなることです。Codex は元の環境で作業を続け、ユーザーは重要な節目だけ介入します。&lt;/p&gt;
&lt;p&gt;これは Codex が「バックグラウンド Agent」に近づいていることも示しています。タスクは継続実行でき、ユーザーが常時オンラインでなくてもよい一方、承認と制御は人間側に残ります。&lt;/p&gt;
&lt;h2 id=&#34;access-tokens-が解決する問題&#34;&gt;Access Tokens が解決する問題
&lt;/h2&gt;&lt;p&gt;Codex access tokens は ChatGPT Enterprise ワークスペース向けです。重点は個人ユーザーの通常ログインではなく、企業内の信頼された自動化です。&lt;/p&gt;
&lt;p&gt;企業には、非対話的に実行したいローカルまたは内部ワークフローがよくあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;定期的なコードチェック。&lt;/li&gt;
&lt;li&gt;管理されたマシン上での Codex ワークフロー起動。&lt;/li&gt;
&lt;li&gt;Codex と社内開発ツールチェーンの接続。&lt;/li&gt;
&lt;li&gt;ブラウザを開かずにワークスペース ID を使うこと。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Access tokens により、これらのワークフローは ChatGPT workspace identity を持って実行され、同時に企業ポリシーの制御を受けます。一時的な手動ログインより自動化に向いており、個人資格情報の共有よりガバナンスに載せやすい仕組みです。&lt;/p&gt;
&lt;h2 id=&#34;普通の-api-key-ではない&#34;&gt;普通の API key ではない
&lt;/h2&gt;&lt;p&gt;この点は重要です。Codex access tokens は、単なる万能 API key と理解すべきではありません。&lt;/p&gt;
&lt;p&gt;OpenAI の説明では、access tokens は ChatGPT Enterprise ワークスペースで利用でき、管理者はワークスペースレベルの可用性を管理でき、許可されたロールを持つメンバーは自分の tokens を作成できます。利用可能な場合、ガバナンス画面にも access token の活動が反映されます。&lt;/p&gt;
&lt;p&gt;つまり、access tokens は企業の権限、ロール、監査フレームワーク内に置かれています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;管理者がワークスペースで有効にするかを決められる。&lt;/li&gt;
&lt;li&gt;すべてのメンバーが当然作成できるわけではない。&lt;/li&gt;
&lt;li&gt;token の活動はガバナンスビューに入る可能性がある。&lt;/li&gt;
&lt;li&gt;ChatGPT workspace identity と企業側の制御を継承する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;個人が長期秘密鍵を気軽に作成するのとは違います。&lt;/p&gt;
&lt;h2 id=&#34;安全な初期設定remote-control-はデフォルトでオフ&#34;&gt;安全な初期設定：Remote Control はデフォルトでオフ
&lt;/h2&gt;&lt;p&gt;Codex mobile remote access は、コード環境、ターミナル出力、diff、テスト結果、操作承認に関わります。デフォルトで有効なら、企業にとって明確なセキュリティリスクになります。&lt;/p&gt;
&lt;p&gt;そのため OpenAI の初期設定は保守的です。remote control はデフォルトでオフで、管理者または owner が Workspace settings で有効にする必要があります。&lt;/p&gt;
&lt;p&gt;モバイルリモートアクセスの有効化には、次の要素が関係する場合があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;workspace-enabled Remote Control access。&lt;/li&gt;
&lt;li&gt;SSO。&lt;/li&gt;
&lt;li&gt;多要素認証。&lt;/li&gt;
&lt;li&gt;passkey。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは、アプリを更新したら全員が自動的に使える機能ではなく、企業の IT とセキュリティチームが設定すべき機能です。&lt;/p&gt;
&lt;h2 id=&#34;利用前に必要な更新&#34;&gt;利用前に必要な更新
&lt;/h2&gt;&lt;p&gt;OpenAI は、モバイルリモートアクセスを使うには両側の更新が必要だと説明しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT mobile app。&lt;/li&gt;
&lt;li&gt;macOS 上の Codex app。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ワークスペース側の要件によっては、セットアップ時に SSO、多要素認証、passkey フローが発生することもあります。&lt;/p&gt;
&lt;p&gt;実際に導入する場合、企業管理者はまず Workspace settings の remote control 設定と、どのメンバーまたはロールに利用を許可するかを確認する必要があります。&lt;/p&gt;
&lt;h2 id=&#34;企業での-codex-利用への影響&#34;&gt;企業での Codex 利用への影響
&lt;/h2&gt;&lt;p&gt;今回の更新は、Codex を 2 つの方向へ進めます。&lt;/p&gt;
&lt;p&gt;第一に、Codex は長時間タスクに向きます。以前は長時間タスクではユーザーがずっと見ている必要がありましたが、今後はスマートフォンで状態を確認し、操作を承認できるため、Codex をバックグラウンドで動かしやすくなります。&lt;/p&gt;
&lt;p&gt;第二に、Codex は企業自動化に向きます。Access tokens により、非対話型ワークフローに正式な ID 経路ができ、内部 CI、コードレビュー、スクリプト、開発プラットフォームとの接続がしやすくなります。&lt;/p&gt;
&lt;p&gt;この 2 つを合わせると、Codex は単なる開発者の手元の AI 助手ではなく、企業の開発フローに組み込まれる管理可能な agent へ近づいています。&lt;/p&gt;
&lt;h2 id=&#34;注意すべき境界&#34;&gt;注意すべき境界
&lt;/h2&gt;&lt;p&gt;今回の更新は便利ですが、Codex を完全に無人で任せてよいという意味ではありません。&lt;/p&gt;
&lt;p&gt;企業利用では、引き続き次の点に注意が必要です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;どのプロジェクトでリモート制御を許可するか。&lt;/li&gt;
&lt;li&gt;どのコマンドに承認が必要か。&lt;/li&gt;
&lt;li&gt;token をどう作成、ローテーション、失効するか。&lt;/li&gt;
&lt;li&gt;mobile remote access が社内のデバイス管理ポリシーに合うか。&lt;/li&gt;
&lt;li&gt;ターミナル出力、スクリーンショット、diff に機密情報が含まれないか。&lt;/li&gt;
&lt;li&gt;監査ログとガバナンス画面が社内コンプライアンス要件を満たすか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;特に access tokens は、自動化フローに入った時点で他の企業資格情報と同じように扱うべきです。最小権限、定期的なローテーション、ハードコード回避、不要 token の速やかな失効が必要です。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;今回の OpenAI Codex 更新は焦点が明確です。ChatGPT モバイルから Codex の長時間タスクにリモートアクセスでき、Enterprise ワークスペースでは Codex access tokens による制御された自動化が可能になりました。&lt;/p&gt;
&lt;p&gt;前者は、開発者がずっと PC の前にいる必要を減らします。後者は、企業が Codex をより正式に社内ワークフローへ接続できるようにします。両者を合わせると、Codex は対話型 coding assistant から、遠隔管理、監査、自動化接続に向いた企業向け coding agent へ進んでいることが分かります。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/10128477-chatgpt-enterprise-edu-release-notes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Help Center：ChatGPT Enterprise &amp;amp; Edu - Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Codex の利用上限はなぜ突然リセットされるのか？Usage Limits の履歴と情報源</title>
        <link>https://knightli.com/ja/2026/05/17/codex-usage-limit-reset-history/</link>
        <pubDate>Sun, 17 May 2026 08:36:15 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/17/codex-usage-limit-reset-history/</guid>
        <description>&lt;p&gt;Codex を使っていると、自分の通常の reset 時刻が来ていないのに、usage limits が突然回復していることがあります。このような「予告なしのリセット」は今回が初めてではなく、上限ルールが恒久的に緩くなったことを意味するとは限りません。障害補償、製品プロモーション、成長マイルストーン、あるいは特定のウィンドウやアカウント状態だけを対象にしたバックエンド側のリセットである可能性があります。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/17/codex-usage-limit-reset-history/tibo-codex-gpt55-reset.png&#34;
	width=&#34;1146&#34;
	height=&#34;712&#34;
	srcset=&#34;https://knightli.com/2026/05/17/codex-usage-limit-reset-history/tibo-codex-gpt55-reset_hu_8e2e55bed895f615.png 480w, https://knightli.com/2026/05/17/codex-usage-limit-reset-history/tibo-codex-gpt55-reset_hu_1736ae030ba80b22.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Codex usage limits のリセットについて説明する Tibo のスクリーンショット&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;160&#34;
		data-flex-basis=&#34;386px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;このスクリーンショットは、OpenAI Codex チームを率いる Tibo Sottiaux（@thsottiaux）が X に投稿した告知です。利用上限を気にしているユーザーにとって重要なのはモデルの細部ではなく、彼がその夜に usage limits を reset すると述べている点です。文脈を見ると、これは通常の周期的な更新ではなく、補償としてのリセットだと考えられます。&lt;/p&gt;
&lt;h2 id=&#34;まず結論&#34;&gt;まず結論
&lt;/h2&gt;&lt;p&gt;Codex の利用上限が突然リセットされる理由は、おおまかに次のように分けられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;障害補償&lt;/strong&gt;：モデルや Codex サービスの問題でユーザーの上限が無駄に消費され、OpenAI が補償としてリセットする。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;リリースやプロモーション&lt;/strong&gt;：新モデル、新クライアント、新機能の公開時に、一時的な増量やリセットが行われる。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;成長マイルストーン&lt;/strong&gt;：Codex のユーザー規模が一定の節目に達したとき、利用継続を促すために上限をリセットまたは拡大する。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;バックエンド方針の調整&lt;/strong&gt;：一部の上限ウィンドウやアカウント状態だけがリセットされ、UI では範囲が明確に説明されない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;よくある誤解は、「リセット」と聞くとすべての上限ウィンドウが回復したと考えてしまうことです。実際には、Codex には短時間ウィンドウ、weekly limit、モデルごとの消費重み、プランごとの制限が同時に存在する場合があります。特別なリセットは、その一部だけに効くことがあります。&lt;/p&gt;
&lt;h2 id=&#34;このスクリーンショットが示していること&#34;&gt;このスクリーンショットが示していること
&lt;/h2&gt;&lt;p&gt;スクリーンショットでは、Tibo が 2026 年 5 月 15 日に更新を投稿し、チームが監視を続け、その夜に usage limits をリセットすると述べています。前の投稿では一部ユーザーからの報告を調査中だと説明していたため、このリセットはサービスの揺らぎに対する補償と見るのが自然です。&lt;/p&gt;
&lt;p&gt;ユーザー向けには、次の 3 点が重要です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;これは各ユーザーの通常周期による回復ではなく、チーム側の能動的なリセットです。&lt;/li&gt;
&lt;li&gt;このリセットには明確な出来事の背景があり、恒久的な上限引き上げではありません。&lt;/li&gt;
&lt;li&gt;「usage limits」という表現だけでは、5 時間ウィンドウや weekly limit がすべて含まれるかは分かりません。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;そのため、上限が回復していても、まずは特別な reset event として捉えるべきです。&lt;/p&gt;
&lt;h2 id=&#34;なぜ-codex-のリセットは予告なしに見えるのか&#34;&gt;なぜ Codex のリセットは予告なしに見えるのか
&lt;/h2&gt;&lt;p&gt;Codex の上限は、単純に「毎日何時に更新される」ものではありません。UI には残り上限やパーセンテージだけが表示されることが多い一方、バックエンドでは次のような要素を同時に追跡している可能性があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;数時間単位の短時間ウィンドウ。&lt;/li&gt;
&lt;li&gt;週単位またはそれ以上の上限。&lt;/li&gt;
&lt;li&gt;モデルごとの消費重み。&lt;/li&gt;
&lt;li&gt;ローカル Codex、Cloud Task、IDE/CLI などの入口の違い。&lt;/li&gt;
&lt;li&gt;Plus、Pro、Business、Team などのプラン差。&lt;/li&gt;
&lt;li&gt;特別リセットの対象となるアカウント状態かどうか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenAI が特別リセットを行っても、ユーザーはそれが通常周期による回復なのか、補償なのかを UI だけでは判断できない場合があります。短時間ウィンドウだけが回復した場合でも、weekly も回復するはずだと誤解されやすく、weekly が変わらないと「リセットが失敗した」と見えることがあります。&lt;/p&gt;
&lt;p&gt;OpenAI の Codex GitHub issue でも、この透明性の問題が指摘されています。公開メッセージでは Codex rate limits が reset されたと説明されても、製品 UI はどのウィンドウがリセットされたのか、weekly limit が含まれるのか、すべての有料プランに同じように適用されたのかを明確に示していませんでした。&lt;/p&gt;
&lt;h2 id=&#34;これまでの主なリセットの型&#34;&gt;これまでの主なリセットの型
&lt;/h2&gt;&lt;h3 id=&#34;1-2026-年-2-月リリース期と一時的な増量&#34;&gt;1. 2026 年 2 月：リリース期と一時的な増量
&lt;/h3&gt;&lt;p&gt;Codex デスクトップアプリと &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; のプロモーション時期には、usage limit reset と一時的な 2x rate limits がコミュニティで話題になりました。Reddit では、Codex app の公開時に期間限定の 2x rate limits と usage limit reset があったという投稿が見られます。&lt;/p&gt;
&lt;p&gt;この種のリセットは、新しいクライアント、モデル、ワークフローを試してもらうためのリリース期の施策と考えられます。&lt;/p&gt;
&lt;h3 id=&#34;2-2026-年-3-月ランダムなリセットと異常消費の議論&#34;&gt;2. 2026 年 3 月：ランダムなリセットと異常消費の議論
&lt;/h3&gt;&lt;p&gt;3 月前後には、コミュニティで「random usage reset」や「weekly limit reset daily」といった話題が何度も出ました。weekly limit が予定より早く回復したという報告や、新しい Codex モデル、安全ブロック、異常な上限消費、バグ修正と関係しているのではないかという見方がありました。&lt;/p&gt;
&lt;p&gt;これらは公式発表ではありませんが、ユーザー側では通常スケジュール以外の回復が複数回観測されていたことを示しています。&lt;/p&gt;
&lt;h3 id=&#34;3-2026-年-4-月成長マイルストーンと有料プランのリセット&#34;&gt;3. 2026 年 4 月：成長マイルストーンと有料プランのリセット
&lt;/h3&gt;&lt;p&gt;4 月下旬には、Codex が週間アクティブユーザー 300 万人に達し、OpenAI が rate limits をリセットしたという報道がありました。今後の成長マイルストーンでも、ユーザーにより多くの利用余地を与える計画だとされています。&lt;/p&gt;
&lt;p&gt;GitHub issue でも、Tibo が 4 月 28 日に X で「good week」を祝って有料プランの Codex rate limits をリセットし、&lt;code&gt;GPT-5.5&lt;/code&gt; でより多く構築できるようにしたという投稿が引用されています。ただし同じ issue では、どの上限ウィンドウが実際にリセットされたのか、weekly limit が含まれたのかを UI が明確に示していないとも指摘されています。&lt;/p&gt;
&lt;p&gt;つまり、成長やイベントに伴うリセットでも、説明の曖昧さがユーザーの混乱につながりやすいということです。&lt;/p&gt;
&lt;h3 id=&#34;4-2026-年-5-月障害補償型のリセット&#34;&gt;4. 2026 年 5 月：障害補償型のリセット
&lt;/h3&gt;&lt;p&gt;今回のスクリーンショットは、より分かりやすい障害補償型のリセットです。Tibo はチームが問題を見つけ、その夜に usage limits をリセットすると述べています。OpenAI Status でも、2026 年 5 月 13 日に Codex 関連のエラー率上昇と遅延悪化が記録されています。&lt;/p&gt;
&lt;p&gt;普通のユーザーにとって重要なのは、どのモデルの細部が原因だったかではありません。サービス側の問題で上限が異常に消費された場合、OpenAI が特別リセットで補償することがある、という点です。&lt;/p&gt;
&lt;h2 id=&#34;リセットの理由をどう判断するか&#34;&gt;リセットの理由をどう判断するか
&lt;/h2&gt;&lt;p&gt;Codex の上限が突然回復した場合は、次の順番で確認するとよいです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;自分の通常 reset 時刻に達していないか確認する。&lt;/li&gt;
&lt;li&gt;OpenAI Status で Codex、モデルエラー、遅延、性能低下の記録を見る。&lt;/li&gt;
&lt;li&gt;Tibo、OpenAI 公式アカウント、Codex GitHub issue に説明があるか確認する。&lt;/li&gt;
&lt;li&gt;コミュニティで「突然 reset」「異常な消費」「weekly が戻らない」といった報告が集中していないか見る。&lt;/li&gt;
&lt;li&gt;短時間ウィンドウと weekly limit を分けて考え、必ず同時に回復するとは決めつけない。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;公式の事故補償であれば、状態ページ、責任者の告知、または多数のユーザー報告がセットで見つかることが多いです。一方、バックエンド側の部分的な更新だけなら、明確な告知がない場合もあります。&lt;/p&gt;
&lt;h2 id=&#34;情報源の信頼性を分けて見る&#34;&gt;情報源の信頼性を分けて見る
&lt;/h2&gt;&lt;p&gt;この種の情報は、層を分けて見るのが安全です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;公式ステータスページ&lt;/strong&gt;：障害、エラー率、遅延、復旧時刻の確認に最も向いています。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tibo / OpenAI 公式アカウント&lt;/strong&gt;：特別リセット、補償、プロモーションの説明を確認するのに向いています。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OpenAI Codex GitHub issue&lt;/strong&gt;：UI、上限ウィンドウ、実際の挙動に関するユーザー報告を見るのに向いています。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reddit / X の議論&lt;/strong&gt;：同じ現象が広く起きているかを見るのに有用ですが、公式確認ではありません。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第三者ニュースやブログ&lt;/strong&gt;：時系列の補足には便利ですが、公式情報や原典で確認する必要があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;記事を書くときや判断するときは、これらを分けて扱うべきです。「OpenAI Status に障害が記録された」は公式の状態情報です。「Reddit でランダムリセットが報告された」はコミュニティ観測です。「GitHub issue で UI の不透明さが指摘された」はユーザー提出の製品課題です。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Codex の利用上限が突然リセットされるのは、単に「無料の追加枠が来た」という話ではありません。障害補償、リリース期のプロモーション、成長施策、バックエンド方針の変更など、複数の理由があり得ます。分かりにくいのは、Codex に複数の上限ウィンドウがあり、特別リセットがすべてを対象にするとは限らない点です。UI が reset scope を明確に示さないこともあります。&lt;/p&gt;
&lt;p&gt;このような状況に遭遇したら、まずクライアント上の実際の上限を確認し、OpenAI Status、Tibo の投稿、Codex GitHub issue、コミュニティ報告を照らし合わせるのが最も安全です。1 回の reset だけで長期的なルール変更だと判断せず、weekly limit、短時間ウィンドウ、すべてのプランが同時に回復すると決めつけない方がよいです。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://status.openai.com/incidents/01KRG6MF021JQ997JCR7R8Y9A0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Status：Codex 5.5 engines are experiencing high error rate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.reddit.com/r/LovingCodex/comments/1teo5ki/tibo_we_foundfixed_two_issues_that_could_explain/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Tibo の告知スクリーンショットと X リンクを転載した Reddit 投稿&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/openai/codex/issues/20395&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub：Clarify Codex rate-limit reset behavior and make reset scope visible in Usage UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.createwith.com/tool/chatgpt/updates/chatgpt-codex-hits-3-million-weekly-users-openai-resets-rate-limits&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Create With：ChatGPT Codex Hits 3 Million Weekly Users, OpenAI Resets Rate Limits&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.reddit.com/r/codex/comments/1rjcwli/usage_limit_reset/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Reddit：Usage limit reset?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.reddit.com/r/codex/comments/1qu2gjx/when_the_unnexpected_usage_limit_reset_hits_ty/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Reddit：when the unexpected usage limit reset hits&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>easy-vibe：Vibe Coding初心者のための学習マップ</title>
        <link>https://knightli.com/ja/2026/05/16/easy-vibe-vibe-coding-learning-map/</link>
        <pubDate>Sat, 16 May 2026 22:44:43 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/16/easy-vibe-vibe-coding-learning-map/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/datawhalechina/easy-vibe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;easy-vibe&lt;/a&gt; は、Datawhaleが公開しているVibe Coding学習プロジェクトです。対象は、すでにAIコーディングツールを使いこなしている開発者ではありません。Vibe Codingに触れ始めたばかりの学生、プロダクトマネージャー、デザイナー、運用担当者、個人開発者、技術好きの一般ユーザーです。&lt;/p&gt;
&lt;p&gt;このプロジェクトの価値は、また別のAIツール一覧を作っていることではありません。「AIでどうやってプロジェクトを作り始めるか」を、より理解しやすい学習パスに分解していることです。多くの初心者にとって本当に難しいのは、Claude Code、Cursor、MCP、Agentの存在を知らないことではありません。最初に何を学び、どう練習し、いつ高度なツールに進むべきかが分からないことです。&lt;/p&gt;
&lt;h2 id=&#34;vibe-coding初心者に最も足りないのは道筋&#34;&gt;Vibe Coding初心者に最も足りないのは道筋
&lt;/h2&gt;&lt;p&gt;Vibe Codingはここ数年注目されていますが、初心者にとって親切とは言えません。&lt;/p&gt;
&lt;p&gt;表面上は、要件を説明できればAIにコードを書かせられるように見えます。実際には、タスクが少し複雑になるだけで問題が出ます。要件が曖昧、モデルが違うファイルを編集する、プロジェクト構造が分からない、エラーを処理できない、依存関係が入らない、プロンプトがどんどん乱れる。最後には「コードをチャットボックスにコピーする」状態へ戻ってしまいます。&lt;/p&gt;
&lt;p&gt;そのため、Vibe Coding入門は「プロンプトの書き方」だけでは足りません。少なくとも次のことを解決する必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;アイデアを実行可能なタスクに分ける方法。&lt;/li&gt;
&lt;li&gt;AIにプロジェクト構造を理解させる方法。&lt;/li&gt;
&lt;li&gt;モデルが生成したコードを読む方法。&lt;/li&gt;
&lt;li&gt;エラーを処理し、反復する方法。&lt;/li&gt;
&lt;li&gt;ターミナルとローカル開発環境を使う方法。&lt;/li&gt;
&lt;li&gt;Webチャットから実際のAIコーディングツールへ移行する方法。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;easy-vibeの意味はここにあります。ツール、チュートリアル、用語の中で初心者を迷わせるのではなく、これらを1つの学習ルートとして整理しようとしています。&lt;/p&gt;
&lt;h2 id=&#34;単発チュートリアルではなくロードマップ&#34;&gt;単発チュートリアルではなくロードマップ
&lt;/h2&gt;&lt;p&gt;プロジェクト説明を見ると、easy-vibeは基礎チュートリアル、インタラクティブ演習、可視化コンテンツ、RAG、ターミナルツール、AIコーディングツール、さらにClaude Code、MCP、Skills、Agent Teamsなどの発展トピックを扱っています。&lt;/p&gt;
&lt;p&gt;この構成は初心者に向いています。AIコーディングは単一のスキルではなく、複数の能力の組み合わせだからです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;要件を説明する。&lt;/li&gt;
&lt;li&gt;タスクを分ける。&lt;/li&gt;
&lt;li&gt;プロジェクトを読む。&lt;/li&gt;
&lt;li&gt;モデルにコードを編集させる。&lt;/li&gt;
&lt;li&gt;実行し、検証する。&lt;/li&gt;
&lt;li&gt;エラーに基づいて反復する。&lt;/li&gt;
&lt;li&gt;よく使う流れをツールやスキルとして蓄積する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;特定のツールだけを学ぶと、そのツールの画面に縛られやすくなります。モデル、エディタ、CLIが変わると、また何をすればよいか分からなくなります。ロードマップの利点は、先に作業方法を身につけ、その後でツールを適切な場所に置けることです。&lt;/p&gt;
&lt;h2 id=&#34;非プログラマーに特に役立つ&#34;&gt;非プログラマーに特に役立つ
&lt;/h2&gt;&lt;p&gt;Vibe Codingの最大の魅力は、専門プログラマーでなくてもプロトタイプを作れることです。&lt;/p&gt;
&lt;p&gt;プロダクトマネージャーは製品アイデアをインタラクティブなdemoにできます。デザイナーはインタラクションのロジックを検証できます。運用担当者は社内ツールを書けます。学生は授業プロジェクトを素早く作れます。起業家は初期段階で需要を検証できます。こうした人たちは、従来の意味でフルタイムエンジニアになる必要はないかもしれませんが、「AIに手伝わせてアイデアを形にする」方法を持つ必要があります。&lt;/p&gt;
&lt;p&gt;これが、easy-vibeが中国語コミュニティに合っている理由でもあります。多くの中国語ユーザーは、AIがコードを書けることをすでに知っています。しかし、開発環境、プロンプト、プロジェクト構造、デバッグ方法、Agentツールの使い方を体系的に学べる入門資料はまだ不足しています。中国語で明確に説明され、演習と一緒に進められることには意味があります。&lt;/p&gt;
&lt;p&gt;この種のユーザーにとって最も重要なのは、最初から複雑なフレームワークを学ぶことではありません。まず、要件を出す、プロジェクトを生成する、動かす、問題を見つける、修正を続ける、最終的に使えるものを得る、という一連のループを回すことです。&lt;/p&gt;
&lt;h2 id=&#34;発展部分は実際のai開発ワークフローに近づく&#34;&gt;発展部分は実際のAI開発ワークフローに近づく
&lt;/h2&gt;&lt;p&gt;easy-vibeで触れられているClaude Code、MCP、Skills、Agent Teamsは、もはや単なる入門概念ではありません。&lt;/p&gt;
&lt;p&gt;Claude Codeはターミナル型コーディングAgentを表します。モデルがローカルプロジェクトに入り、ファイルを読み、コードを変更し、コマンドを実行できます。MCPはツールとデータソースの接続を解決し、モデルをチャットボックス内に閉じ込めません。Skillsは、固定のプロジェクト生成、文書整理、テストチェック、コンテンツ制作などの再利用可能な流れを蓄積します。Agent Teamsはさらに、タスクを複数の智能体へ分割します。&lt;/p&gt;
&lt;p&gt;これらは初心者には少し遠く感じるかもしれません。それでも早めに知っておく価値があります。Vibe Codingの方向性は明確だからです。「AIに一部のコードを書かせる」段階から、「AIに完全なプロジェクトフローへ参加させる」段階へ向かっています。&lt;/p&gt;
&lt;p&gt;学習ルートがプロンプトだけで止まると、ツールの進化についていけません。一方で、最初からすべての高度な概念を初心者に投げると、どこから始めればよいか分からなくなります。easy-vibeの良さは、それらを段階的なアップグレードの道筋に置いていることです。&lt;/p&gt;
&lt;h2 id=&#34;学習時に避けたい2つの誤解&#34;&gt;学習時に避けたい2つの誤解
&lt;/h2&gt;&lt;p&gt;1つ目は、Vibe Codingならコードが分からなくても完全にコードを気にしなくてよい、と思うことです。&lt;/p&gt;
&lt;p&gt;AIは多くのものを生成できますが、ユーザーは結果が正しいか判断する必要があります。少なくとも、プロジェクト構造を理解し、どう実行するかを知り、エラーがどこで起きているかを大まかに把握する必要があります。複雑なコードを書かなくても、基本的なエンジニアリング常識は必要です。&lt;/p&gt;
&lt;p&gt;2つ目は、高度なツールほど良いと思うことです。&lt;/p&gt;
&lt;p&gt;初心者が最初からClaude Code、MCP、複数Agentを必要とするとは限りません。より良い順序は、まず簡単なプロジェクトでフィードバックループを作り、その後でターミナル、バージョン管理、テスト、ツール呼び出し、自動化フローを少しずつ導入することです。ツールはタスクの複雑さに合わせるべきです。そうでなければ「強そうだが何に使うか分からない」ものになります。&lt;/p&gt;
&lt;h2 id=&#34;どう使うとよいか&#34;&gt;どう使うとよいか
&lt;/h2&gt;&lt;p&gt;Vibe Codingに触れ始めたばかりなら、easy-vibeを学習チェックリストとして使えます。&lt;/p&gt;
&lt;p&gt;まず基礎概念と簡単な演習から始めます。すべてのツールを追う必要はありません。個人ホームページ、データダッシュボード、フォームツール、自動化スクリプト、知識ベースdemoなど、小さなプロジェクトを1つ作ります。その過程で、AIがどこで助けになるか、どこは自分で確認すべきかを観察します。&lt;/p&gt;
&lt;p&gt;小さなプロジェクトを安定して完成できるようになったら、より複雑な内容に進みます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ターミナルツールでローカルプロジェクトを扱う。&lt;/li&gt;
&lt;li&gt;Gitで各変更を管理する。&lt;/li&gt;
&lt;li&gt;RAGで自分の資料を接続する。&lt;/li&gt;
&lt;li&gt;MCPで外部ツールを接続する。&lt;/li&gt;
&lt;li&gt;Skillsで反復作業を固定化する。&lt;/li&gt;
&lt;li&gt;Agent Teamsで複雑なタスクを分割する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このように学ぶVibe Codingは、単にAIへ質問することではありません。AIを自分のワークフローに入れることです。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;easy-vibeは、Vibe Codingの中国語入門マップとして見るのがよいでしょう。散らばったAIコーディングの概念、ツール、演習を1つの道筋にまとめ、初心者が「AIはコードを書けるらしい」から「AIでプロジェクトを作れる」へ進みやすくしています。&lt;/p&gt;
&lt;p&gt;Vibe Codingの本当の価値は、すべての学習を飛ばせることではありません。アイデアからプロトタイプまでのハードルを下げることです。要件を理解し、タスクを整理し、結果を検証し、リスクを制御する必要は残ります。ただし、多くの反復的で退屈で詰まりやすい手順は、AIに手伝わせることができます。&lt;/p&gt;
&lt;p&gt;AIコーディングに体系的に入門したいが、最初からツール名や複雑な開発設定に埋もれたくないなら、easy-vibeは保存しておきたい出発点です。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Anthropic financial-services：金融Agentの場面を再利用可能なテンプレートにする</title>
        <link>https://knightli.com/ja/2026/05/16/anthropic-financial-services-agent-templates/</link>
        <pubDate>Sat, 16 May 2026 22:43:08 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/16/anthropic-financial-services-agent-templates/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/anthropics/financial-services&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;anthropics/financial-services&lt;/a&gt; は、金融サービス業界向けにAnthropicが公開した参考プロジェクトです。単一のアプリケーションではなく、個別に学習・再利用できる例の集合です。Agents、Plugins、Skills、MCPコネクタ、そして金融ワークフロー向けに設計されたプロンプトや統合パターンが含まれます。&lt;/p&gt;
&lt;p&gt;このプロジェクトが注目に値するのは、「万能な金融アシスタント」を提供しているからではありません。金融業界でよくあるAI導入課題を、より具体的な部品へ分解しているからです。職種ごとにどのAgentが必要か、どのデータソースを接続するべきか、どの作業を自動化できるか、どの段階では人間の判断が残るべきかを示しています。&lt;/p&gt;
&lt;h2 id=&#34;金融agentのショールームに近い&#34;&gt;金融Agentのショールームに近い
&lt;/h2&gt;&lt;p&gt;企業がAI Agentを語るとき、話は抽象的になりがちです。ファイルを読む、データを調べる、レポートを書く、ツールを呼ぶ、といった表現です。しかし金融の場面に入ると、問題はずっと具体的になります。&lt;/p&gt;
&lt;p&gt;投資銀行のアナリストは会社資料を整理し、取引ブリーフを作成し、類似企業を比較する必要があります。株式リサーチでは財務資料を読み、ニュースを追い、バリュエーションとリスク分析を行います。プライベートエクイティや資産運用チームは案件をスクリーニングし、memoを書き、ポートフォリオ企業を追跡します。ウェルスマネジメントでは、顧客像、市場情報、投資提案をコンプライアンスの枠組みに入れる必要があります。&lt;/p&gt;
&lt;p&gt;こうした場面は、汎用チャットボックスだけでは対応できません。役割、プロセス、データソース、出力形式、権限境界が必要です。このAnthropicリポジトリの価値は、金融サービス業界の複数の典型的な役割とタスクを、参考にできるAgentテンプレートへ分解している点にあります。&lt;/p&gt;
&lt;h2 id=&#34;なぜagentspluginsskillsmcpを同時に提供するのか&#34;&gt;なぜAgents、Plugins、Skills、MCPを同時に提供するのか
&lt;/h2&gt;&lt;p&gt;プロジェクト構成を見ると、Anthropicは単にプロンプト一式を提供しているわけではありません。複数種類のコンポーネントを同時に提供しています。これは、企業がAgentを導入するときの複数の層に対応しています。&lt;/p&gt;
&lt;p&gt;Agentsは、役割やタスクに向けた作業単位に近いものです。そのAgentが何をするのか、どう進めるのか、いつツールを呼ぶのか、どのように出力するのかを定義します。&lt;/p&gt;
&lt;p&gt;Pluginsは外部能力の拡張に近いものです。金融業務はモデル内部だけで完結することが少なく、データベース、文書システム、市場データ、CRM、リサーチライブラリ、社内ワークフローシステムとつながる必要があります。&lt;/p&gt;
&lt;p&gt;Skillsは再利用可能な専門能力パッケージです。固定形式の分析フレームワーク、レポート構造、チェックリスト、データ処理手法は、毎回プロンプトを書き直すのではなく、スキルとして蓄積できます。&lt;/p&gt;
&lt;p&gt;MCPコネクタは、ツール接続とコンテキスト標準化の問題を解きます。企業にとって、ツールが増えるほど比較的統一された接続方式が必要になります。そうでなければ各システムを個別に適配する必要があり、保守コストが高くなります。&lt;/p&gt;
&lt;p&gt;これらを組み合わせて初めて、実際の企業AIワークフローに近づきます。&lt;/p&gt;
&lt;h2 id=&#34;金融業界がagent例に向いている理由&#34;&gt;金融業界がAgent例に向いている理由
&lt;/h2&gt;&lt;p&gt;金融サービスはAgentを示す業界として向いています。3つの特徴を同時に持っているからです。&lt;/p&gt;
&lt;p&gt;第一に、情報密度が高いことです。金融業務は財務資料、公告、会議メモ、リサーチレポート、取引データ、顧客資料、規制文書に大きく依存します。モデルが一般知識だけに頼ると、すぐに役に立たなくなります。実データソースへの接続が必要です。&lt;/p&gt;
&lt;p&gt;第二に、出力形式が安定しています。投資メモ、会社概要、KYC文書、リサーチ要約、顧客ブリーフ、ファンド運用レポートには比較的固定された構造があります。これにより、Agentは検証可能なワークフローを作りやすくなります。&lt;/p&gt;
&lt;p&gt;第三に、リスク境界が明確です。金融業界ではコンプライアンス、監査、権限、追跡可能性への要求が高いです。AIは気軽に投資助言をしたり、承認プロセスを迂回したりできません。むしろこの制約が、Agent設計をよりエンジニアリング寄りにします。引用を残し、事実と推論を分け、ツール呼び出しを記録し、実行可能な操作を制限する必要があります。&lt;/p&gt;
&lt;p&gt;そのため、このプロジェクトは金融会社だけのものではありません。企業向けAgentを作りたいチームなら、Anthropicが業界場面をどう分解しているかを観察できます。&lt;/p&gt;
&lt;h2 id=&#34;対象となる典型的なワークフロー&#34;&gt;対象となる典型的なワークフロー
&lt;/h2&gt;&lt;p&gt;プロジェクト説明によると、このリポジトリは複数の金融サービス領域を扱っています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;投資銀行;&lt;/li&gt;
&lt;li&gt;株式リサーチ;&lt;/li&gt;
&lt;li&gt;プライベートエクイティ;&lt;/li&gt;
&lt;li&gt;ウェルスマネジメント;&lt;/li&gt;
&lt;li&gt;ファンド運用;&lt;/li&gt;
&lt;li&gt;KYCとコンプライアンス関連ワークフロー。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらのワークフローには共通点があります。大量の読解、整理、比較、構造化資料の生成が必要です。ここでAIが最も向いているのは、直接判断を下すことではなく、情報処理と文書作成にかかる時間を減らすことです。&lt;/p&gt;
&lt;p&gt;たとえば投資銀行の場面では、Agentは対象会社の資料を整理し、主要な財務指標を抽出し、取引要約の初稿を作れます。リサーチでは、財務資料やニュースを先に読み、重要な変化と確認すべき論点を列挙できます。KYCでは、資料がそろっているか、異常な手がかりがないかを確認する補助ができます。&lt;/p&gt;
&lt;p&gt;最終判断は専門家が担うべきです。Agentの役割は、助手、アナリスト、ワークフロー加速装置に近いものです。&lt;/p&gt;
&lt;h2 id=&#34;企業導入への示唆&#34;&gt;企業導入への示唆
&lt;/h2&gt;&lt;p&gt;このリポジトリで最も参考になる点は、「モデル能力」を「業務コンポーネント」に変えていることです。&lt;/p&gt;
&lt;p&gt;企業内でAIプロジェクトを進めると、よく同じ問題にぶつかります。モデルのデモは見栄えが良いのに、実業務へ接続すると再利用しにくい。あるチームがプロンプトを書き、別のチームがまた別のプロンプトを書く。あるシステムがデータベースに接続し、別のシステムがまた独自のインターフェースを作る。セキュリティと監査の要件も散らばります。&lt;/p&gt;
&lt;p&gt;より堅実なのは、能力をいくつかの資産に分けることです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;職種向けのAgent;&lt;/li&gt;
&lt;li&gt;プロセス向けのSkills;&lt;/li&gt;
&lt;li&gt;システム接続向けのMCPコネクタ;&lt;/li&gt;
&lt;li&gt;権限と監査向けの実行ルール;&lt;/li&gt;
&lt;li&gt;業務出力向けのテンプレートとチェックリスト。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうすれば、企業は毎回「チャットボットを作る」ところから始める必要がありません。保守できるAIワークフロー資産を少しずつ蓄積できます。&lt;/p&gt;
&lt;h2 id=&#34;コンプライアンスと責任境界は無視できない&#34;&gt;コンプライアンスと責任境界は無視できない
&lt;/h2&gt;&lt;p&gt;金融Agentで最も誤解されやすいのは、「分析を生成できる」ことを「意思決定を代替できる」と見なすことです。&lt;/p&gt;
&lt;p&gt;金融サービスでは、AIの出力は通常、補助材料として扱うべきです。事実を整理し、草稿を生成し、リスクを示し、文書を補完することはできます。しかし投資調査、リスク管理、法務、コンプライアンス、顧客適合性の要件を迂回することはできません。特に投資助言、取引判断、顧客資産配分、本人確認に関わる場合、人間による承認と責任の連鎖は必ず残す必要があります。&lt;/p&gt;
&lt;p&gt;だからこそ、企業向けAgentは回答品質だけで評価できません。次の点も見る必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;データソースは信頼できるか。&lt;/li&gt;
&lt;li&gt;引用と証拠は追跡できるか。&lt;/li&gt;
&lt;li&gt;ツール呼び出しは記録されるか。&lt;/li&gt;
&lt;li&gt;機密データは制限されるか。&lt;/li&gt;
&lt;li&gt;出力は人間が確認しているか。&lt;/li&gt;
&lt;li&gt;誤った結果を発見し、戻せるか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらが解決されないままAgentが自動化されるほど、リスクの半径は大きくなります。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;anthropics/financial-servicesは、開封してすぐ使う金融製品というより、金融Agentの参考実装に近いものです。Anthropicが企業AI導入をどう考えているかを示しています。汎用チャット助手だけを作るのではなく、具体的な役割、具体的なプロセス、具体的なデータソース、具体的な権限境界に沿ってAgentを組織するという考え方です。&lt;/p&gt;
&lt;p&gt;金融機関にとっては、社内AIワークフロー設計の参考になります。開発者にとっては、企業向けAgentアーキテクチャを観察するサンプルです。Agentsは役割とタスクを担い、Skillsは専門プロセスを蓄積し、PluginsとMCPは外部システムを接続し、最終的にモデルを実業務フローに入れます。&lt;/p&gt;
&lt;p&gt;初期のAIツールが「どうすればモデルに質問へ答えさせるか」を解いたのだとすれば、この種のプロジェクトは「どうすればモデルを制御された境界内で仕事に参加させるか」を重視しています。そこにこそ、企業向けAgentの本当の難しさがあります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>DeepSeek-TUI：DeepSeek V4をターミナル上のコーディングAgentにする</title>
        <link>https://knightli.com/ja/2026/05/16/deepseek-tui-terminal-coding-agent/</link>
        <pubDate>Sat, 16 May 2026 22:41:41 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/16/deepseek-tui-terminal-coding-agent/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Hmbown/DeepSeek-TUI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-TUI&lt;/a&gt; は、DeepSeek V4をターミナル開発フローに接続するオープンソースプロジェクトです。単なるチャットの外枠ではありません。Claude CodeやCodex CLIに近い「コマンドラインのコーディングAgent」であり、ファイルを読み、コードを編集し、コマンドを実行し、ツールを呼び出し、TUI上でタスクを継続的に進められます。&lt;/p&gt;
&lt;p&gt;すでにエディタとターミナルを行き来している開発者にとって、この種のツールの価値は分かりやすいものです。コードをWebチャットへ何度もコピーする必要がなく、プロジェクト構造を毎回手で説明する必要もありません。タスクを渡せば、現在のワークスペースからコンテキストを読み取り、手順を計画し、変更を実行し、結果をレビュー用に返してくれます。&lt;/p&gt;
&lt;h2 id=&#34;deepseekの利用入口を補う&#34;&gt;DeepSeekの利用入口を補う
&lt;/h2&gt;&lt;p&gt;DeepSeekモデル自体は強い推論能力とコード能力を持っています。ただし、その能力を実際の開発フローに落とし込むには、工程化された外側のレイヤーが必要です。&lt;/p&gt;
&lt;p&gt;Webチャットは質問には向いていますが、長時間のプロジェクト編集には向いていません。APIはシステム連携には向いていますが、個人開発者はツール呼び出し、コンテキスト管理、ファイル操作、権限制御を自分で組む必要があります。DeepSeek-TUIが補おうとしているのはこの層です。DeepSeek V4を、ターミナル内で働けるAgentとして包みます。&lt;/p&gt;
&lt;p&gt;プロジェクト説明によると、主な機能は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ターミナルTUI;&lt;/li&gt;
&lt;li&gt;DeepSeek V4向けの会話とタスク実行;&lt;/li&gt;
&lt;li&gt;ツール呼び出しとファイル操作;&lt;/li&gt;
&lt;li&gt;1Mコンテキスト対応;&lt;/li&gt;
&lt;li&gt;Autoモード;&lt;/li&gt;
&lt;li&gt;サブAgent;&lt;/li&gt;
&lt;li&gt;サンドボックス実行;&lt;/li&gt;
&lt;li&gt;永続タスクキュー。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの機能の目的は、モデルの返答をより人間らしくすることではありません。モデルを開発現場に入りやすくすることです。&lt;/p&gt;
&lt;h2 id=&#34;長いタスクには純粋なcliよりtuiが向いている&#34;&gt;長いタスクには純粋なCLIよりTUIが向いている
&lt;/h2&gt;&lt;p&gt;多くのAI CLIツールは、最初はプレーンテキストの対話から始まります。プロンプトを入力し、出力を待ち、コマンドをコピーしたり追加コンテキストを渡したりする方式です。これは単純ですが、タスクが長くなるとすぐ混乱します。&lt;/p&gt;
&lt;p&gt;TUIの利点は、会話、ファイル、実行結果、タスク状態をより安定した画面に置けることです。コーディングAgentではこれが重要です。1つのコードタスクは、単なる一問一答ではないからです。多くの場合、次の流れを含みます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;プロジェクト構造を理解する。&lt;/li&gt;
&lt;li&gt;関連ファイルを探す。&lt;/li&gt;
&lt;li&gt;コードを変更する。&lt;/li&gt;
&lt;li&gt;テストやコマンドを実行する。&lt;/li&gt;
&lt;li&gt;エラーに基づいて修正を続ける。&lt;/li&gt;
&lt;li&gt;変更内容をまとめる。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;画面がログの羅列だけだと、ユーザーはAgentが今どこまで進んだのかを判断しにくくなります。TUIは少なくとも、観察し、必要なら引き継ぐための入口を提供します。&lt;/p&gt;
&lt;h2 id=&#34;autoモードは境界が明確なタスクに向く&#34;&gt;Autoモードは境界が明確なタスクに向く
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUIが言及しているAutoモードは、境界が比較的明確な作業に向いています。たとえば小さなバグ修正、スクリプト追加、設定変更、文書整理、局所的な機能実装です。&lt;/p&gt;
&lt;p&gt;こうしたタスクには共通点があります。目標が明確で、確認方法も明確で、影響範囲が制御できます。Agentは自分でファイルを調べ、編集し、コマンドを実行し、結果をユーザー確認に戻せます。&lt;/p&gt;
&lt;p&gt;ただし、Autoモードは無制限の権限ではありません。実際のプロジェクトでは、ファイル削除、大規模リファクタリング、データベース移行、デプロイコマンドには明確な確認が必要です。コーディングAgentの効率は自動化から生まれますが、リスクも同じ場所から生まれます。コマンドを実行できるツールほど、サンドボックス、権限境界、人間によるレビューが必要です。&lt;/p&gt;
&lt;h2 id=&#34;サブagentの意味はタスク分割にある&#34;&gt;サブAgentの意味はタスク分割にある
&lt;/h2&gt;&lt;p&gt;サブAgentは新しい概念ではありませんが、コード作業では役に立ちます。&lt;/p&gt;
&lt;p&gt;少し複雑なタスクでは、複数の種類の作業が同時に必要になります。コードを読む役、実装を変更する役、テストを確認する役、ドキュメントを整理する役です。従来のマルチAgentシステムが派手に見えるだけで終わりがちなのは、実際のツールやワークスペースを持たず、会話の中で相談しているだけだからです。&lt;/p&gt;
&lt;p&gt;サブAgentがファイルシステム、コマンド実行、タスクキューと結びつけば、より現実的なタスク分割の仕組みになります。たとえば、あるサブAgentが依存関係を分析し、別のサブAgentが特定モジュールを変更し、メインAgentが結果を統合する、といった形です。これにより、1つのコンテキストに無関係な情報を詰め込みすぎる問題を減らせます。&lt;/p&gt;
&lt;p&gt;もちろん、サブAgentには追加コストもあります。token消費、複雑な状態、追跡しにくい責任境界です。そのため、中程度以上の複雑さを持つタスクに向いており、すべての小さな修正に必要なものではありません。&lt;/p&gt;
&lt;h2 id=&#34;1mコンテキストは万能ではないがプロジェクト理解には役立つ&#34;&gt;1Mコンテキストは万能ではないが、プロジェクト理解には役立つ
&lt;/h2&gt;&lt;p&gt;1Mコンテキストは大げさに聞こえますが、コーディングでは単なる宣伝文句ではありません。&lt;/p&gt;
&lt;p&gt;実際のコードベースのコンテキストは細かく分散しています。README、設定ファイル、型定義、テスト、呼び出しチェーン、過去の約束事、エラーログは、どれも1つの修正に影響します。長いコンテキストは、局所だけを見て手を動かす問題を減らし、モデルがより多くのプロジェクト制約を保持する助けになります。&lt;/p&gt;
&lt;p&gt;ただし、コンテキストが長いことは判断が正しいことと同義ではありません。コードタスクには依然として検索、選別、検証が必要です。プロジェクト全体をコンテキストに詰め込むことが、関連ファイルを正確に読むことより良いとは限りません。良いコーディングAgentは、長いコンテキストをバッファとして使うべきであり、エンジニアリング判断の代替にすべきではありません。&lt;/p&gt;
&lt;h2 id=&#34;向いているユーザー&#34;&gt;向いているユーザー
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUIは次のような人に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ターミナルでDeepSeekを使ってコード作業をしたい開発者。&lt;/li&gt;
&lt;li&gt;ツール呼び出しやファイル操作の枠組みを自分で作りたくない人。&lt;/li&gt;
&lt;li&gt;Claude CodeやCodex CLIに慣れており、DeepSeekモデルの入口も試したい人。&lt;/li&gt;
&lt;li&gt;Web上のコード断片ではなく、ローカルプロジェクトのコンテキストが必要な人。&lt;/li&gt;
&lt;li&gt;AIコーディングの流れをコマンドライン環境に入れたい人。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たまに関数の書き方を聞くだけなら、Webチャットで十分です。モデルに直接プロジェクト変更へ参加してほしいなら、ターミナルAgentの意味が大きくなります。&lt;/p&gt;
&lt;h2 id=&#34;注意すべきリスク&#34;&gt;注意すべきリスク
&lt;/h2&gt;&lt;p&gt;この種のツールで特に注意すべきことは3つあります。&lt;/p&gt;
&lt;p&gt;1つ目は権限です。ツールがファイルを読み書きし、コマンドを実行できるなら、デフォルトでどこにアクセスできるのか、ファイルを削除できるのか、ネットワークに出られるのか、危険なコマンドに確認が必要なのかを把握する必要があります。&lt;/p&gt;
&lt;p&gt;2つ目はロールバックです。使う前にGitの作業ツリーをきれいにしておくと、Agentの変更を毎回 &lt;code&gt;git diff&lt;/code&gt; で明確に確認できます。未コミットの変更が大量にある状態で、Agentに自動編集させるべきではありません。&lt;/p&gt;
&lt;p&gt;3つ目は検証です。Agentがコードを書いたことは、タスク完了を意味しません。テスト、ビルド、lint、人間のreviewは残す必要があります。AIコーディングツールは進行を速めますが、最後のエンジニアリング確認を置き換えるものではありません。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUIの意味は、また1つチャットクライアントが増えたことではありません。DeepSeek V4を、実際の開発作業に近いターミナル環境へ入れていることです。&lt;/p&gt;
&lt;p&gt;開発者にとって、モデル能力は最初の一歩にすぎません。本当に体験を左右するのは、プロジェクトを読めるか、安全にファイルを変更できるか、検証コマンドを実行できるか、長いタスクで状態を保てるか、ユーザーがいつでも引き継げるかです。&lt;/p&gt;
&lt;p&gt;DeepSeekを日常的なコード変更、プロジェクト読解、自動化された開発タスクに使いたいなら、DeepSeek-TUIは注目に値します。方向性も明確です。AIコーディングツールは「コードの質問に答える」段階から「プロジェクト実行に参加する」段階へ進んでいます。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Codexのモバイルリモートアクセス：ChatGPT AppでMac上の開発タスクを追跡する</title>
        <link>https://knightli.com/ja/2026/05/16/codex-mobile-remote-access-chatgpt-app/</link>
        <pubDate>Sat, 16 May 2026 17:42:40 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/16/codex-mobile-remote-access-chatgpt-app/</guid>
        <description>&lt;p&gt;OpenAIは2026年5月中旬、&lt;code&gt;Codex remote access&lt;/code&gt;をChatGPTモバイルアプリに追加しました。これはスマートフォンでコードを書く機能ではなく、Mac上で動くCodexをスマートフォンから追跡・操作するための機能です。&lt;/p&gt;
&lt;p&gt;Codexは引き続きMac上でプロジェクトを読み、コマンドを実行し、ファイルを編集し、テスト結果を確認します。スマートフォン側は進捗確認、質問への回答、追加指示、操作承認を担当します。&lt;/p&gt;
&lt;h2 id=&#34;できること&#34;&gt;できること
&lt;/h2&gt;&lt;p&gt;OpenAIのCodex remote connectionsドキュメントによると、モバイルアクセスでは次のことができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ホスト上のプロジェクトで新しいthreadを開始、または既存threadを継続&lt;/li&gt;
&lt;li&gt;追加指示の送信、質問への回答、作業方向の調整&lt;/li&gt;
&lt;li&gt;コマンドやその他の操作の承認&lt;/li&gt;
&lt;li&gt;出力、diff、テスト結果、端末出力、スクリーンショットの確認&lt;/li&gt;
&lt;li&gt;Codexの完了や注意が必要なタイミングで通知を受信&lt;/li&gt;
&lt;li&gt;接続済みホストとthreadの切り替え&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;単なる小さなチャット画面ではなく、Codexの作業コンテキストに接続するモバイル操作面です。&lt;/p&gt;
&lt;h2 id=&#34;必要条件&#34;&gt;必要条件
&lt;/h2&gt;&lt;p&gt;同じChatGPTアカウントとworkspaceでCodexを使える必要があります。スマートフォンには最新版のChatGPT Appが必要で、iOSとAndroidに対応します。&lt;/p&gt;
&lt;p&gt;ホストは現時点ではMacです。Macは起動中、オンライン、Codex App実行中で、同じアカウントとworkspaceにログインしている必要があります。モバイル設定とデバイス制御には現在&lt;code&gt;Codex App for macOS&lt;/code&gt;が必要で、Codex CLIやIDE Extensionからは設定できません。&lt;/p&gt;
&lt;p&gt;MFA、SSO、passkeyが必要なアカウントでは、セットアップ中にその認証を完了する必要があります。ChatGPT workspaceでは、管理者がRemote Control accessを有効にする必要がある場合もあります。&lt;/p&gt;
&lt;h2 id=&#34;制限&#34;&gt;制限
&lt;/h2&gt;&lt;p&gt;第一に、現在は&lt;code&gt;macOS host&lt;/code&gt;が必要です。スマートフォンが接続するのはMac上のCodex Appであり、Codex CLI、IDE Extension、Linux / Windows開発機に直接接続するわけではありません。&lt;/p&gt;
&lt;p&gt;第二に、ホストはオンラインでなければなりません。Macがスリープしたり、ネットワークを失ったり、Codex Appを閉じたりすると、リモートセッションは切断される可能性があります。&lt;/p&gt;
&lt;p&gt;第三に、接続はQRコードのセットアップに依存します。Mac側で&lt;code&gt;Set up Codex mobile&lt;/code&gt;を開き、スマートフォンでQRコードを読み取り、ChatGPTで連携を完了します。&lt;/p&gt;
&lt;p&gt;第四に、遠隔操作にも承認フローがあります。端末コマンド、ファイル変更、テスト実行、外部アクセスに関わる操作は、内容を確認してから承認すべきです。&lt;/p&gt;
&lt;h2 id=&#34;接続方法&#34;&gt;接続方法
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;MacでCodexを開きます。&lt;/li&gt;
&lt;li&gt;サイドバーで&lt;code&gt;Set up Codex mobile&lt;/code&gt;を選びます。&lt;/li&gt;
&lt;li&gt;Codexがこのホストのリモートアクセスを有効化し、QRコードを表示します。&lt;/li&gt;
&lt;li&gt;スマートフォンでQRコードを読み取り、ChatGPTのセットアップ画面に進みます。&lt;/li&gt;
&lt;li&gt;同じChatGPTアカウントとworkspaceであることを確認します。&lt;/li&gt;
&lt;li&gt;必要なMFA、SSO、passkeyを完了します。&lt;/li&gt;
&lt;li&gt;成功すると、スマートフォンのCodexにMacが表示されます。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;接続後はMac側の&lt;code&gt;Settings &amp;gt; Connections&lt;/code&gt;で接続済みデバイスを管理できます。コンピューターをスリープさせない設定、Computer Use、Chrome extensionもここで確認できます。&lt;/p&gt;
&lt;h2 id=&#34;スマートフォンでやるべきこと&#34;&gt;スマートフォンでやるべきこと
&lt;/h2&gt;&lt;p&gt;スマートフォンに向いているのは、承認、方向修正、結果確認です。Codexがコマンド実行を求めたときに承認し、誤解やテスト失敗があれば短い指示で修正し、diffやテスト出力を確認できます。&lt;/p&gt;
&lt;p&gt;価値があるのは「スマートフォンで開発する」ことではなく、ホスト上で動く開発タスクの携帯用コントローラーになることです。&lt;/p&gt;
&lt;h2 id=&#34;よくある問題&#34;&gt;よくある問題
&lt;/h2&gt;&lt;p&gt;ホストが表示されない場合は、MacでCodex Appが動いていること、&lt;code&gt;Allow other devices to connect&lt;/code&gt;が有効であること、同じChatGPTアカウントとworkspaceを使っていることを確認します。&lt;/p&gt;
&lt;p&gt;承認リクエストが表示されない場合は、ChatGPTモバイルアプリでCodexを開き、再度QRコードを読み取るか、ホスト側からセットアップをやり直します。workspaceでは管理者設定も確認します。&lt;/p&gt;
&lt;p&gt;リモートセッションが切れる場合は、Macがスリープしていないか、ネットワークが切れていないか、Codex Appを閉じていないかを確認します。&lt;/p&gt;
&lt;h2 id=&#34;向いている場面&#34;&gt;向いている場面
&lt;/h2&gt;&lt;p&gt;長いCodexタスクをよく走らせる、席を離れても承認したい、複数のプロジェクトやthreadを扱う、Macを主開発機として使っている人に向いています。&lt;/p&gt;
&lt;p&gt;WindowsやLinux中心、Codex CLIやIDE Extensionだけを使う、スマートフォンだけで完全な開発環境を期待する場合には向きません。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Codexのモバイルリモートアクセスは、開発をスマートフォンに移す機能ではありません。Codexが止まりがちな承認、質問、テスト失敗、方向確認を、ChatGPT Appから処理できるようにする機能です。&lt;/p&gt;
&lt;p&gt;Mac上でCodexをよく使う人には有用です。たまにコードの質問をするだけなら、効果はそれほど大きくありません。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Help Center：ChatGPT Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://developers.openai.com/codex/remote-connections&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Developers：Codex Remote Connections&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>ChatGPT File Libraryとは：ファイル保存、容量制限、プライバシー境界</title>
        <link>https://knightli.com/ja/2026/05/16/chatgpt-file-library-storage-limits-privacy/</link>
        <pubDate>Sat, 16 May 2026 17:40:14 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/16/chatgpt-file-library-storage-limits-privacy/</guid>
        <description>&lt;p&gt;&lt;code&gt;ChatGPT File Library&lt;/code&gt;は、ChatGPT内のファイルライブラリです。&lt;/p&gt;
&lt;p&gt;以前は、会話にアップロードしたファイルはそのチャットで使う一時的な資料に近いものでした。File Libraryでは、アップロードしたファイルやChatGPTが作成したファイルをアカウントに保存し、後から探す、ダウンロードする、削除する、新しい会話で再利用するといったことができます。&lt;/p&gt;
&lt;p&gt;これにより、ChatGPTは一時的なチャット画面ではなく、継続的な資料ワークスペースに近づきます。&lt;/p&gt;
&lt;h2 id=&#34;最新の提供範囲&#34;&gt;最新の提供範囲
&lt;/h2&gt;&lt;p&gt;OpenAIの2026年5月14日のChatGPT Release Notesによると、File LibraryはFreeとGoユーザーにも拡大され、欧州経済領域のユーザーも対象に含まれます。同時に、プラン横断のストレージ管理も追加されました。&lt;/p&gt;
&lt;p&gt;一方、専用のFile storage and Libraryヘルプページには、確認時点で古い提供範囲が残っていました。このため本文では、より新しい2026年5月14日のRelease Notesを基準にします。ただし、実際に表示されるかどうかはロールアウト、地域、アプリのバージョンに依存します。&lt;/p&gt;
&lt;h2 id=&#34;保存されるファイル&#34;&gt;保存されるファイル
&lt;/h2&gt;&lt;p&gt;ChatGPTは、アップロードまたは作成した次のようなファイルを保存できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文書&lt;/li&gt;
&lt;li&gt;スプレッドシート&lt;/li&gt;
&lt;li&gt;プレゼンテーション&lt;/li&gt;
&lt;li&gt;PDF&lt;/li&gt;
&lt;li&gt;画像&lt;/li&gt;
&lt;li&gt;ChatGPTが生成したファイル&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;生成画像は引き続きImagesタブにも表示されます。File Libraryは、アップロードファイルと生成ファイルをまとめて管理する場所です。&lt;/p&gt;
&lt;p&gt;PDF分析、表計算、文書作成、プレゼン資料の編集をよく行うなら、同じファイルを何度もアップロードする手間を減らせます。&lt;/p&gt;
&lt;h2 id=&#34;新しい会話で使う方法&#34;&gt;新しい会話で使う方法
&lt;/h2&gt;&lt;p&gt;対応クライアントでは、入力欄付近の添付または追加メニューから&lt;code&gt;Add from library&lt;/code&gt;を選び、再利用したいファイルを選択します。&lt;/p&gt;
&lt;p&gt;Release Notesでは、LibraryとRecent filesがWeb、iOS、Androidで利用できることも説明されています。&lt;/p&gt;
&lt;h2 id=&#34;検索と管理&#34;&gt;検索と管理
&lt;/h2&gt;&lt;p&gt;Web版では左サイドバーからLibraryに入り、アップロード済みファイルと生成済みファイルを管理できます。&lt;/p&gt;
&lt;p&gt;ファイルは種類や由来で絞り込めます。ヘルプページでは、アップロードファイル、生成ファイル、画像、文書、スプレッドシート、プレゼンテーション、PDFなどのフィルターが挙げられています。&lt;/p&gt;
&lt;p&gt;ストレージ使用量は&lt;code&gt;Settings &amp;gt; Storage&lt;/code&gt;から確認できます。ファイルはLibraryから直接削除できます。&lt;/p&gt;
&lt;h2 id=&#34;プラン別容量&#34;&gt;プラン別容量
&lt;/h2&gt;&lt;p&gt;2026年5月14日のRelease Notesでは、容量は次のように示されています。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;プラン&lt;/th&gt;
          &lt;th&gt;File Library容量&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Free&lt;/td&gt;
          &lt;td&gt;500 MB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Go&lt;/td&gt;
          &lt;td&gt;4 GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Plus&lt;/td&gt;
          &lt;td&gt;20 GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Business&lt;/td&gt;
          &lt;td&gt;20 GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pro&lt;/td&gt;
          &lt;td&gt;100 GB&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;この容量には、アップロードしたファイルとChatGPTが作成した文書、表、プレゼン、画像が含まれます。&lt;/p&gt;
&lt;h2 id=&#34;単一ファイルの制限&#34;&gt;単一ファイルの制限
&lt;/h2&gt;&lt;p&gt;OpenAIのヘルプページでは、次の制限が示されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPTまたはChatGPT会話にアップロードするファイルは最大512 MB&lt;/li&gt;
&lt;li&gt;テキスト・文書ファイルは最大200万token&lt;/li&gt;
&lt;li&gt;CSVやスプレッドシートは通常約50 MB、行の大きさに依存&lt;/li&gt;
&lt;li&gt;画像は1枚最大20 MB&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これはアカウント全体の容量とは別の制限です。&lt;/p&gt;
&lt;h2 id=&#34;削除とダウンロード&#34;&gt;削除とダウンロード
&lt;/h2&gt;&lt;p&gt;ファイルは手動で削除するまでアカウントに保存されます。&lt;/p&gt;
&lt;p&gt;Libraryでファイルを選択し、削除またはゴミ箱アイコンを使います。OpenAIの説明では、削除後はアカウントからすぐに取り除かれ、通常30日以内にOpenAIのシステムから完全削除される予定です。ただし、匿名化済みでアカウントと切り離されている場合や、安全・法的義務で保持が必要な場合は例外があります。&lt;/p&gt;
&lt;p&gt;ファイルはLibraryからダウンロードすることもできます。&lt;/p&gt;
&lt;h2 id=&#34;temporary-chatでは保存されない&#34;&gt;Temporary Chatでは保存されない
&lt;/h2&gt;&lt;p&gt;Temporary Chatでアップロードしたファイルは、アカウントやLibraryに保存されません。&lt;/p&gt;
&lt;p&gt;File Libraryは長期再利用のための機能で、Temporary Chatは一時的・機密性の高い・長期文脈を残したくない作業に向いています。&lt;/p&gt;
&lt;h2 id=&#34;データとトレーニング設定&#34;&gt;データとトレーニング設定
&lt;/h2&gt;&lt;p&gt;OpenAIのヘルプページでは、ファイルとチャットはユーザーの設定とData Controlsに従うと説明されています。&lt;/p&gt;
&lt;p&gt;Memoryが有効な場合、ファイルやチャットが会話間で役立つ情報の記憶に使われる可能性があります。個人向けサービスで&lt;code&gt;Improve the model for everyone&lt;/code&gt;が有効な場合、アップロードファイルを含むChatGPTへの送信内容がモデル改善に使われる可能性があります。この設定は&lt;code&gt;Settings &amp;gt; Data Controls&lt;/code&gt;でオフにできます。&lt;/p&gt;
&lt;p&gt;File Libraryはローカルフォルダーではなく、クラウドアカウント機能です。アップロードしてよい資料かどうかを先に考える必要があります。&lt;/p&gt;
&lt;h2 id=&#34;向いている使い方&#34;&gt;向いている使い方
&lt;/h2&gt;&lt;p&gt;同じPDFやレポートの継続分析、授業資料や会議資料の再利用、ChatGPTが生成した文書や表の再編集、複数会話での素材共有に向いています。&lt;/p&gt;
&lt;p&gt;一方で、身分証明、契約書、医療記録、財務明細などの機密資料、正式なクラウドバックアップ、社内文書の無確認アップロードには向きません。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;ChatGPT File Libraryの価値は、単にファイル一覧が増えたことではありません。ChatGPTを一回限りの会話ツールから、資料が蓄積するワークスペースへ変える点にあります。&lt;/p&gt;
&lt;p&gt;その分、古いファイルの整理、容量確認、通常チャットとTemporary Chatの使い分け、Data Controlsの確認が重要になります。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/20001052-file-storage-and-library-in-chatgpt&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Help Center：File storage and Library in ChatGPT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Help Center：ChatGPT Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>API Key を GitHub に push しないために：AI コーディング時代のシークレット漏洩対策</title>
        <link>https://knightli.com/ja/2026/05/16/ai-coding-api-key-leak-github/</link>
        <pubDate>Sat, 16 May 2026 16:26:50 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/16/ai-coding-api-key-leak-github/</guid>
        <description>&lt;p&gt;AI によるコーディングは、ソフトウェアを作り始めるハードルを大きく下げました。一方で、これまで主に開発チーム内で起きていたセキュリティ問題が、初心者や非エンジニアにも直接降りかかるようになっています。&lt;/p&gt;
&lt;p&gt;よくある事故は、&lt;code&gt;API Key&lt;/code&gt;、&lt;code&gt;Secret&lt;/code&gt;、&lt;code&gt;Token&lt;/code&gt;、データベース接続文字列、&lt;code&gt;.env&lt;/code&gt; 設定ファイルを公開リポジトリに push してしまうことです。ローカルでは「アプリを動かすための設定」に見えても、GitHub の公開リポジトリに入った瞬間、自動スキャン、自動呼び出し、自動悪用の対象になります。&lt;/p&gt;
&lt;p&gt;シークレット漏洩は珍しい事故ではありません。GitGuardian の 2026 年レポートでは、2025 年の公開 GitHub コミットに約 2865 万件の新しいハードコードされた認証情報が含まれ、AI サービス関連の認証情報漏洩は前年比 81% 増加したとされています。これは単なる不注意ではなく、AI コーディング、素早いプロトタイピング、公開ホスティングが重なって規模を拡大している問題です。&lt;/p&gt;
&lt;h2 id=&#34;初心者が-key-を漏らしやすい理由&#34;&gt;初心者が Key を漏らしやすい理由
&lt;/h2&gt;&lt;p&gt;多くの AI Agent や小さなツールには、ローカルディスク上の「リポジトリ」と、GitHub 上で世界中から見える「リポジトリ」があります。初心者はこの境界を意識できないことがあります。&lt;/p&gt;
&lt;p&gt;ローカル実行時には、&lt;code&gt;config.json&lt;/code&gt;、&lt;code&gt;.env&lt;/code&gt;、&lt;code&gt;settings.yaml&lt;/code&gt; に API Key を入れていても、単なる開発用設定に見えます。しかし &lt;code&gt;git add .&lt;/code&gt;、&lt;code&gt;git commit&lt;/code&gt;、&lt;code&gt;git push&lt;/code&gt; を実行すると、それらのファイルがそのままアップロードされる可能性があります。公開されたリポジトリでは、スキャンボットはビジネスロジックを理解する必要がありません。シークレットらしい形式を見つければ十分です。&lt;/p&gt;
&lt;p&gt;AI コーディングはこの問題をさらに広げます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;AI が生成するサンプルコードに &lt;code&gt;OPENAI_API_KEY = &amp;quot;sk-...&amp;quot;&lt;/code&gt; のような書き方が入ることがある。&lt;/li&gt;
&lt;li&gt;初心者は「まず動かす」ために、フロントエンド、スクリプト、設定ファイルへ直接 Key を書きがち。&lt;/li&gt;
&lt;li&gt;多くの vibe coding プラットフォームは、GitHub の Push Protection を通らずに直接デプロイできる。&lt;/li&gt;
&lt;li&gt;ユーザーは AI が生成したプロジェクト内のファイル、API、既定権限を把握していないことがある。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;AI は動くものを速く作る手助けをしますが、セキュリティ責任まで自動で引き受けてはくれません。&lt;/p&gt;
&lt;h2 id=&#34;gitignore-は飾りではない&#34;&gt;&lt;code&gt;.gitignore&lt;/code&gt; は飾りではない
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Git&lt;/code&gt; はバージョン管理を行い、&lt;code&gt;GitHub&lt;/code&gt; はコードをホストします。&lt;code&gt;.gitignore&lt;/code&gt; は、どのファイルを履歴に入れないかを Git に伝えるためのファイルです。&lt;/p&gt;
&lt;p&gt;基本的な AI プロジェクトでは、少なくとも次を除外すべきです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.env.*
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;*.key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;*.pem
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;config.local.*
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;secrets.*
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;credentials.*
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ただし &lt;code&gt;.gitignore&lt;/code&gt; だけでは不十分です。これは未追跡ファイルが今後追加されるのを防ぐだけです。すでにコミットされたシークレットファイルは、後から &lt;code&gt;.gitignore&lt;/code&gt; に書いても履歴から消えません。&lt;/p&gt;
&lt;p&gt;安全な習慣は次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;新規プロジェクトの最初に &lt;code&gt;.gitignore&lt;/code&gt; を作る。&lt;/li&gt;
&lt;li&gt;API Key は環境変数またはローカル設定だけに置く。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.env.example&lt;/code&gt; にはプレースホルダーだけを書き、本物の Key は書かない。&lt;/li&gt;
&lt;li&gt;コミット前に &lt;code&gt;gitleaks&lt;/code&gt;、&lt;code&gt;trufflehog&lt;/code&gt;、GitHub Secret Scanning などでスキャンする。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;key-を-push-したらファイル削除だけでは安全にならない&#34;&gt;Key を push したら、ファイル削除だけでは安全にならない
&lt;/h2&gt;&lt;p&gt;Key を公開リポジトリへ push してしまった場合、最初にやるべきことは「ファイルを消してもう一度コミットする」ことではありません。まず Key を失効またはローテーションします。&lt;/p&gt;
&lt;p&gt;Git は履歴を記録します。最新コミットでファイルを削除しても、古いコミット、fork、clone、キャッシュ、スキャンシステムに内容が残る可能性があります。GitHub の公式ドキュメントでも、パスワード、Token、認証情報が漏れた場合は、まず取り消しまたはローテーションすることを勧めています。&lt;/p&gt;
&lt;p&gt;推奨手順は次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;サービス提供元の管理画面で古い Key を失効し、新しい Key を発行する。&lt;/li&gt;
&lt;li&gt;請求、利用ログ、不審な IP、異常な使用量を確認する。&lt;/li&gt;
&lt;li&gt;ハードコードされた Key を消し、環境変数またはシークレット管理サービスへ移す。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git filter-repo&lt;/code&gt; または BFG でリポジトリ履歴から機密ファイルを除去する。&lt;/li&gt;
&lt;li&gt;GitHub Secret Scanning と Push Protection を有効にする。&lt;/li&gt;
&lt;li&gt;CI/CD、デプロイ基盤、クラウド関数、フロントエンド成果物に古い Key が残っていないか確認する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;OpenAI、Anthropic、DeepSeek、クラウド事業者、決済、メール、データベースなどの Key が漏れると、課金被害だけでなく、データ読み取り、サービス悪用、サプライチェーン汚染、業務アカウント停止につながる可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;フロントエンドに本物の-key-を置いてはいけない&#34;&gt;フロントエンドに本物の Key を置いてはいけない
&lt;/h2&gt;&lt;p&gt;初心者は「画面が動けばよい」と考えて、API Key をフロントエンド JavaScript に書いてしまうことがあります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;apiKey&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;sk-xxxxxxxx&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これはほぼ公開と同じです。ブラウザ上のコード、ネットワークリクエスト、Source Map、ビルド成果物は確認できます。秘密にすべき Key はクライアント側に出してはいけません。&lt;/p&gt;
&lt;p&gt;正しい構成は、フロントエンドから自分のバックエンド API を呼び、バックエンドが環境変数を読んで外部 API を呼ぶ形です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// frontend
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;fetch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/api/chat&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;method&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;POST&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;JSON&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;stringify&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;message&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;サーバー側で環境変数を使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// server
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;apiKey&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;process&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;env&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは形式の問題ではなく、Key をサーバー環境に残し、ページ訪問者全員へ露出しないための設計です。&lt;/p&gt;
&lt;h2 id=&#34;vibe-coding-でも安全責任は消えない&#34;&gt;Vibe Coding でも安全責任は消えない
&lt;/h2&gt;&lt;p&gt;vibe coding の問題は GitHub 漏洩だけではありません。AI コーディングプラットフォームから直接公開インターネットへデプロイされるアプリも多く、従来のコードレビュー、リポジトリスキャン、セキュリティテストを通らないことがあります。&lt;/p&gt;
&lt;p&gt;RedAccess の最近の調査では、AI コーディングツールで生成またはホストされた公開資産が大量に見つかり、その一部が企業データ、個人情報、内部ファイルを露出していました。ここでの教訓は単純です。「公開できる」が簡単になりすぎると、「公開すべきか」「社内限定にすべきか」「権限制御があるか」が見落とされやすくなります。&lt;/p&gt;
&lt;p&gt;AI で生成したアプリを公開する前に、少なくとも次を確認します。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;このアプリは本当に公開アクセスが必要か。&lt;/li&gt;
&lt;li&gt;ログイン、認証、権限分離があるか。&lt;/li&gt;
&lt;li&gt;データベース、API Key、Token、Webhook URL がフロントエンドに露出していないか。&lt;/li&gt;
&lt;li&gt;外部 API のクォータ、ドメイン、権限、有効期限を制限しているか。&lt;/li&gt;
&lt;li&gt;異常発見後に Key を無効化し、デプロイを素早くロールバックできるか。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;AI が書いたコードにもセキュリティレビューは必要です。「自分では一行も書いていない」ほど、安全だと思い込むべきではありません。&lt;/p&gt;
&lt;h2 id=&#34;今すぐ確認すること&#34;&gt;今すぐ確認すること
&lt;/h2&gt;&lt;p&gt;まず自分の GitHub アカウントから確認できます。ユーザー名と次のキーワードを組み合わせて検索します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;SECRET
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;TOKEN
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;OPENAI_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ANTHROPIC_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;DEEPSEEK_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;config
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;credentials
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;本物の Key を見つけたら、迷わず先にローテーションし、その後でクリーンアップします。一度でも公開リポジトリに入ったなら、漏洩済みとして扱うべきです。&lt;/p&gt;
&lt;p&gt;今後の AI プロジェクトでは、次の流れを固定化すると安全です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;業務コードを書く前に &lt;code&gt;.gitignore&lt;/code&gt; を用意する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.env.example&lt;/code&gt; で必要な変数を説明する。&lt;/li&gt;
&lt;li&gt;すべての Key は環境変数に置き、ソースコードへ書かない。&lt;/li&gt;
&lt;li&gt;API Key には最小権限、クォータ、有効期限を設定する。&lt;/li&gt;
&lt;li&gt;GitHub Secret Scanning と Push Protection を有効にする。&lt;/li&gt;
&lt;li&gt;公開前に AI にセキュリティチェックを手伝わせても、AI の結論だけを信じない。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;AI コーディングの本当の危険は、コードを書き間違えることだけではありません。多くの人が初めて、安全でないアプリを公開インターネットへ素早く出せるようになったことです。速く書くこと自体は問題ではありません。シークレット、データ、権限まで一緒に渡してしまうことが問題です。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.gitguardian.com/state-of-secrets-sprawl-report-2026&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitGuardian State of Secrets Sprawl 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.github.com/articles/remove-sensitive-data&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub Docs: Removing sensitive data from a repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.github.com/code-security/secret-scanning/push-protection-for-repositories-and-organizations&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub Docs: About push protection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.axios.com/2026/05/07/loveable-replit-vibe-coding-privacy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Axios: AI vibe-coding apps leak sensitive data&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude Code &#43; Ollama ローカル導入ガイド：CC Switch で無料の AI コーディングアシスタントを作る</title>
        <link>https://knightli.com/ja/2026/05/15/claude-code-ollama-cc-switch-local-agent/</link>
        <pubDate>Fri, 15 May 2026 23:27:50 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/15/claude-code-ollama-cc-switch-local-agent/</guid>
        <description>&lt;p&gt;最近、&lt;code&gt;Claude Code&lt;/code&gt; のような AI コーディングアシスタントが注目されています。魅力は単にコードについて会話できることではなく、プロジェクトを読み、ファイルを編集し、コマンドを実行し、依存関係を入れ、エラーを見ながら修正を続けられる点にあります。かなり Agent に近い使い方ができます。&lt;/p&gt;
&lt;p&gt;ただし問題はコストです。プロジェクトが大きくなるとコンテキストも長くなり、複数ターンの Agent 操作で API クォータを一気に消費します。試用、小さなツールの修正、スクリプト作成、ローカルのプライベートプロジェクトで使いたいだけなら、Claude Code の操作感を残したままモデルだけローカルにできないか、と考えるのは自然です。&lt;/p&gt;
&lt;p&gt;この構成の鍵になるのが &lt;code&gt;CC Switch&lt;/code&gt; です。Claude Code から OpenAI 互換 API としてローカルの &lt;code&gt;Ollama&lt;/code&gt; サービスへ接続し、公式 Claude API ではなくローカルモデルへリクエストを転送できます。&lt;/p&gt;
&lt;h2 id=&#34;この構成で解決できること&#34;&gt;この構成で解決できること
&lt;/h2&gt;&lt;p&gt;全体の流れは次のように考えると分かりやすいです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Claude Code デスクトップ
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ CC Switch API 転送レイヤー
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ Ollama ローカルモデル
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Claude Code は引き続きコーディングワークフローとプロジェクト操作を担当します。CC Switch はモデルプロバイダー設定と API 互換性を受け持ち、Ollama はローカルでモデルを動かします。&lt;/p&gt;
&lt;p&gt;これはローカルモデルが突然 Claude と同等になるという意味ではありません。価値があるのは、Claude Code の Agent ワークフローを低コスト、オフライン、プライベートなローカル環境で使えるようにする点です。&lt;/p&gt;
&lt;h2 id=&#34;基本準備&#34;&gt;基本準備
&lt;/h2&gt;&lt;p&gt;始める前に、次のものを用意します。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;Git&lt;/code&gt; をインストールする。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ollama&lt;/code&gt; をインストールする。&lt;/li&gt;
&lt;li&gt;コーディング向きのローカルモデルを取得する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CC Switch&lt;/code&gt; をインストールする。&lt;/li&gt;
&lt;li&gt;Claude Code をローカルで使える状態にする。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;モデルは、まずコード能力が比較的強いものから試すとよいでしょう。たとえば Qwen Coder、DeepSeek Coder、またはツール呼び出しとコード生成がある程度安定しているモデルです。大きいモデルほど結果は良くなりやすい一方、メモリや GPU への負荷も高くなります。&lt;/p&gt;
&lt;p&gt;メモリに余裕がないマシンでは、小さめのモデルで流れを確認してから、徐々に大きいモデルを試すのがおすすめです。&lt;/p&gt;
&lt;h2 id=&#34;cc-switch-の重要設定&#34;&gt;CC Switch の重要設定
&lt;/h2&gt;&lt;p&gt;Ollama を起動すると、通常のローカル API アドレスは次のようになります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://127.0.0.1:11434/v1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;CC Switch では OpenAI 互換のプロバイダー種別を選びます。よく使う選択肢は次のものです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;OpenAI Chat Completions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;そのうえで base URL を Ollama のローカルアドレスに向けます。&lt;/p&gt;
&lt;p&gt;API key はローカル Ollama では通常、本物のキーを必要としません。ただし多くのツールは環境変数やプレースホルダーを求めます。次のような値を使えます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ANTHROPIC_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;または、手元のローカル設定で受け入れられる別のプレースホルダー変数でも構いません。&lt;/p&gt;
&lt;p&gt;特に注意したい設定項目があります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;inferenceModels&amp;#34;=&amp;#34;[\&amp;#34;haiku\&amp;#34;,\&amp;#34;sonnet\&amp;#34;,\&amp;#34;opus\&amp;#34;]&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは Claude Code が期待するモデルロールをローカルプロバイダーへマッピングする設定です。実際には &lt;code&gt;haiku&lt;/code&gt;、&lt;code&gt;sonnet&lt;/code&gt;、&lt;code&gt;opus&lt;/code&gt; を Ollama または CC Switch 側で利用できるモデル名に対応させる必要があります。この対応が間違っていると、Claude Code がモデルを呼べなかったり、意図しない設定へ戻ったりします。&lt;/p&gt;
&lt;h2 id=&#34;claude-code-の強み&#34;&gt;Claude Code の強み
&lt;/h2&gt;&lt;p&gt;Claude Code の一番の価値は、単発の補完ではなくコーディング全体のワークフローにあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロジェクト構造を読み取って理解する。&lt;/li&gt;
&lt;li&gt;タスクに応じて関連ファイルを見つける。&lt;/li&gt;
&lt;li&gt;コードを直接編集する。&lt;/li&gt;
&lt;li&gt;コマンドやテストを実行する。&lt;/li&gt;
&lt;li&gt;エラーを観察して修正を繰り返す。&lt;/li&gt;
&lt;li&gt;1 つのセッションで複数ステップの作業を進める。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;多くの人が Claude Code を残したい理由もここにあります。通常のチャット UI でもコード片は生成できますが、リポジトリ内で自然に作業してくれるわけではありません。Claude Code は、実行できる開発アシスタントに近い存在です。&lt;/p&gt;
&lt;h2 id=&#34;ollama-の役割&#34;&gt;Ollama の役割
&lt;/h2&gt;&lt;p&gt;Ollama はローカルモデルの実行と管理を担当します。モデルのダウンロード、ロード、ローカル推論を扱います。&lt;/p&gt;
&lt;p&gt;利点は明確です。リクエストは手元のマシンに残り、繰り返し使っても API 課金が発生せず、ネットワークが制限された環境でも使えます。プライベートなコードを扱う場合も、すべてのコンテキストをクラウドモデルに送るより受け入れやすいでしょう。&lt;/p&gt;
&lt;p&gt;一方で代償もあります。ローカルモデルはハードウェアとモデル品質に大きく左右されます。小さいモデルでも簡単な修正、説明、スクリプト生成はできますが、大規模な複数ファイルリファクタリングや細かな設計判断では能力差が出やすくなります。&lt;/p&gt;
&lt;h2 id=&#34;体験の限界&#34;&gt;体験の限界
&lt;/h2&gt;&lt;p&gt;この構成は、Claude の強力なクラウドモデルを完全に置き換えるものとして考えるべきではありません。&lt;/p&gt;
&lt;p&gt;次のような問題に遭遇する可能性があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;長いコンテキストの理解が弱い。&lt;/li&gt;
&lt;li&gt;複雑なタスクでツール呼び出しが不安定になる。&lt;/li&gt;
&lt;li&gt;CPU のみの環境では推論が遅い。&lt;/li&gt;
&lt;li&gt;存在しないファイルパスや API を幻覚しやすい。&lt;/li&gt;
&lt;li&gt;複数ターンの計画が安定しにくい。&lt;/li&gt;
&lt;li&gt;大規模リポジトリのリファクタリング成功率が低い。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;したがって、期待値としては「無料で使えるローカル開発アシスタント」が現実的です。トップクラスのクラウドモデルの完全な代替ではありません。&lt;/p&gt;
&lt;h2 id=&#34;マルチモーダル互換性はまだ不安定&#34;&gt;マルチモーダル互換性はまだ不安定
&lt;/h2&gt;&lt;p&gt;Claude Code にスクリーンショット、UI 画像、図、その他のマルチモーダル入力を扱わせたい人もいます。この部分はローカルモデルと転送レイヤーの対応状況に依存します。&lt;/p&gt;
&lt;p&gt;選んだ Ollama モデルが画像入力に対応していない場合、または CC Switch がリクエスト形式を正しく変換できない場合、マルチモーダル機能は失敗する可能性があります。Vision モデルを使っても、公式 Claude API と同じ挙動になるとは限りません。&lt;/p&gt;
&lt;p&gt;現時点では、この構成はテキストとコードのワークフロー向きです。マルチモーダル対応は実験的なものとして扱うのがよいでしょう。&lt;/p&gt;
&lt;h2 id=&#34;試す価値がある人&#34;&gt;試す価値がある人
&lt;/h2&gt;&lt;p&gt;この構成は次のような人に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code のワークフローを低コストで試したい開発者。&lt;/li&gt;
&lt;li&gt;スクリプト、小さなツール、自動化をよく書く人。&lt;/li&gt;
&lt;li&gt;コードをできるだけローカルに残したいチーム。&lt;/li&gt;
&lt;li&gt;API コストを気にせず AI コーディングアシスタントを学びたい初心者。&lt;/li&gt;
&lt;li&gt;さまざまなローカルコードモデルを検証している人。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;長いコンテキスト、大規模 monorepo、厳密なコードレビュー品質、複雑なプロジェクト全体のリファクタリングに強く依存する場合は、まだ安定性が足りないかもしれません。&lt;/p&gt;
&lt;h2 id=&#34;使い方のおすすめ&#34;&gt;使い方のおすすめ
&lt;/h2&gt;&lt;p&gt;まずは小さなタスクから始めましょう。&lt;/p&gt;
&lt;p&gt;たとえば次のような作業です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 つのファイルを説明させる。&lt;/li&gt;
&lt;li&gt;小さな関数をリファクタリングする。&lt;/li&gt;
&lt;li&gt;shell スクリプトを生成する。&lt;/li&gt;
&lt;li&gt;単純なエラーを修正する。&lt;/li&gt;
&lt;li&gt;小さな機能を追加する。&lt;/li&gt;
&lt;li&gt;狭いモジュールに単体テストを追加する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;変更後は、自分でテストを実行するか、少なくとも diff を確認してください。ローカルモデルは便利ですが、生成された編集をすべて無条件に受け入れるべきではありません。&lt;/p&gt;
&lt;p&gt;モデルがよくコンテキストを見失う場合は、タスク範囲を小さくします。「プロジェクト全体をリファクタリングして」ではなく、「この関数をリファクタリングして」や「このファイルにバリデーションを追加して」のように依頼すると安定しやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude Code + CC Switch + Ollama&lt;/code&gt; はかなり面白い組み合わせです。Claude Code の Agent 的な開発体験を保ちつつ、モデル推論をローカルへ移せます。&lt;/p&gt;
&lt;p&gt;大きな利点は、コストの低さ、データのプライバシー、扱いやすい開発ワークフローです。一方で、モデル品質、ハードウェア性能、長いコンテキスト、ツール呼び出しの安定性が体験を左右します。&lt;/p&gt;
&lt;p&gt;すでに Ollama を使っていて、より実践的なローカル AI コーディング環境が欲しいなら、この構成は試す価値があります。ただし小さな作業から始め、すべての変更を確認し、ローカルモデルを自動エンジニアではなくアシスタントとして扱うのが安全です。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>OpenHuman 速読：オープンソース個人 AI Agent のデスクトップ路線</title>
        <link>https://knightli.com/ja/2026/05/15/openhuman-open-source-personal-ai-agent/</link>
        <pubDate>Fri, 15 May 2026 14:52:31 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/15/openhuman-open-source-personal-ai-agent/</guid>
        <description>&lt;p&gt;OpenHuman は tinyhumansai が公開しているオープンソースの個人向け AI Agent プロジェクトだ。目的は単なるチャットウィンドウをもう一つ作ることではない。デスクトップアプリ、個人の記憶、サードパーティ連携、音声、コーディングツール、ローカルナレッジベースを同じ agent harness に入れ、AI が日常の作業コンテキストをより速く理解できるようにすることにある。&lt;/p&gt;
&lt;p&gt;プロジェクト README では “Personal AI super intelligence” と位置づけられ、公式サイトでも private、simple、extremely powerful が強調されている。この表現はかなり野心的だが、分解して見る方がわかりやすい。OpenHuman で本当に注目すべきなのは、「個人のコンテキスト」を製品の中心に置こうとしている点であり、モデル呼び出し、プラグイン設定、ドキュメント検索をユーザー自身の組み合わせ作業に任せないところだ。&lt;/p&gt;
&lt;p&gt;この記事を確認した時点で、GitHub リポジトリは約 7.8k stars、629 forks だった。最新 release は &lt;code&gt;OpenHuman v0.53.43&lt;/code&gt; で、日付は 2026 年 5 月 13 日。プロジェクトはまだ Early Beta で、README でも活発に開発中だと明記されているため、粗い部分がある前提で見るべきだ。&lt;/p&gt;
&lt;h2 id=&#34;何を解決しようとしているのか&#34;&gt;何を解決しようとしているのか
&lt;/h2&gt;&lt;p&gt;多くの AI アシスタントの問題は、モデルが弱いことではなく、コンテキストが冷たいことにある。毎回、プロジェクト背景、最近のメール、予定、コードリポジトリ、文書、タスク、好みを説明し直さなければならない。Gmail、Notion、GitHub、Slack、Calendar、Drive、Linear、Jira などをまたぐと、情報はさらに別々のツールへ散らばってしまう。&lt;/p&gt;
&lt;p&gt;OpenHuman の考え方は、まずこれらのデータを接続し、その後で自動取得、圧縮、要約、ローカルナレッジベースを通じて、継続的に更新できる個人記憶レイヤーを作ることだ。これにより agent は現在の会話だけを覚えるのではなく、ユーザーのワークフローを中心に長期コンテキストを形成できる。&lt;/p&gt;
&lt;p&gt;これが通常のチャットボットとの最大の違いでもある。チャットボットは多くの場合 prompt を中心に動く。OpenHuman はむしろ、デスクトップ上の個人向け OS 入口に近く、コネクター、記憶、ツール、モデルルーティングをあらかじめまとめて提供しようとしている。&lt;/p&gt;
&lt;h2 id=&#34;主な機能&#34;&gt;主な機能
&lt;/h2&gt;&lt;p&gt;OpenHuman README に挙げられている中核機能は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;デスクトップ優先の UI と短いオンボーディング経路。ユーザーが最初からターミナル設定を始める必要はない。&lt;/li&gt;
&lt;li&gt;「顔」を持つデスクトップ mascot。話したり、環境に反応したり、Google Meet に参加したりできる。&lt;/li&gt;
&lt;li&gt;Gmail、Notion、GitHub、Slack、Stripe、Calendar、Drive、Linear、Jira などを含む 118+ のサードパーティ連携。&lt;/li&gt;
&lt;li&gt;自動取得機構。プロジェクト説明では、20 分ごとにアクティブな接続を巡回し、新しいデータを memory tree に取り込むとされている。&lt;/li&gt;
&lt;li&gt;Memory Tree：接続データと活動情報を Markdown ブロックへ圧縮し、ローカル SQLite に保存する。&lt;/li&gt;
&lt;li&gt;Obsidian-compatible vault：知識ブロックを &lt;code&gt;.md&lt;/code&gt; ファイルとして書き出し、ユーザーが Obsidian で開いて閲覧、編集できる。&lt;/li&gt;
&lt;li&gt;内蔵検索、Web 取得、コーディングツール、ファイルシステム、git、lint、test、grep、音声入出力などの機能。&lt;/li&gt;
&lt;li&gt;Model routing：タスクに応じてリクエストを異なるモデルタイプへルーティングする。&lt;/li&gt;
&lt;li&gt;TokenJuice：ツール結果、Web 取得、メール本文、検索結果が LLM に入る前に token 圧縮を行う。&lt;/li&gt;
&lt;li&gt;ローカル AI ワークロード向けの Ollama を任意で利用できる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;機能は多く見えるが、実際の焦点は二つにまとめられる。一つは設定やプラグインの組み合わせ作業を減らすこと。もう一つは、個人データを agent が検索でき、圧縮でき、継続的に更新できる記憶へ変えることだ。&lt;/p&gt;
&lt;h2 id=&#34;インストール方法&#34;&gt;インストール方法
&lt;/h2&gt;&lt;p&gt;プロジェクトは Web サイト上のダウンロード入口に加え、ターミナル用のインストールコマンドも提供している。&lt;/p&gt;
&lt;p&gt;macOS または Linux x64：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/tinyhumansai/openhuman/main/scripts/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Windows：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;irm &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;https&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;//&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;githubusercontent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;com&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tinyhumansai&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;openhuman&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scripts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;install&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;ps1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;iex
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;日常的に使うメインマシンなら、まず公式サイトからインストーラーをダウンロードするか、少なくともインストールスクリプトを開いて内容を確認してから、リモートスクリプトを直接実行するか決めたい。OpenHuman はメール、文書、コードリポジトリ、カレンダー、ローカルファイル権限に関わるため、インストールと認可は普通の小さなツールより慎重に扱うべきだ。&lt;/p&gt;
&lt;h2 id=&#34;オープンソースと技術スタック&#34;&gt;オープンソースと技術スタック
&lt;/h2&gt;&lt;p&gt;OpenHuman リポジトリは GPL-3.0 license を採用している。言語構成では Rust が中心で、次に TypeScript が多く、JavaScript、Shell、CSS、PowerShell も含まれる。README のコントリビューション説明では、Node.js 24+、pnpm 10.10.0、Rust 1.93.0、CMake、さらに各プラットフォームのデスクトップビルド依存関係が求められている。&lt;/p&gt;
&lt;p&gt;ローカル開発のおおまかな流れは次の通り。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git submodule update --init --recursive
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm dev
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm --filter openhuman-app dev:app
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;提出前には focused checks の実行が推奨されている。例えば次のようなものだ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm typecheck
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm format:check
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo check -p openhuman --lib
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ディレクトリ構造を見る限り、これは軽量なスクリプトプロジェクトではない。デスクトップアプリ、フロントエンド、Rust バックエンド、ドキュメント、テスト、サンプル、ビルドスクリプトを含む、製品型のリポジトリだ。&lt;/p&gt;
&lt;h2 id=&#34;memory-tree-と-obsidian-vault-が重要な理由&#34;&gt;Memory Tree と Obsidian vault が重要な理由
&lt;/h2&gt;&lt;p&gt;OpenHuman で単独で見る価値が高い概念は Memory Tree だ。README によると、接続されたデータは約 3k token 以下の Markdown chunks に標準化され、スコアリングされた後、階層的な要約ツリーへ折り込まれ、ローカル SQLite に保存される。同じ内容は Obsidian 互換 vault にも入る。&lt;/p&gt;
&lt;p&gt;この路線にはいくつか利点がある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ユーザーは agent の知識ベースを直接見られ、ブラックボックスな記憶を信じるだけで済まない。&lt;/li&gt;
&lt;li&gt;Markdown ファイルは検索、バックアップ、バージョン管理、手動修正がしやすい。&lt;/li&gt;
&lt;li&gt;SQLite はローカルインデックスと高速検索に向いている。&lt;/li&gt;
&lt;li&gt;階層的な要約は、平坦な文書の山より長期コンテキスト圧縮に向いている。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし現実的な課題もある。データ同期が安定するか、要約が重要な細部を落とさないか、権限境界が十分明確か、削除と取り消しが完全か、異なるコネクターの意味を一貫して扱えるか。これらは README の “remembers everything” という一文だけで解決できるものではなく、長期利用と監査が必要になる。&lt;/p&gt;
&lt;h2 id=&#34;tokenjuiceコストとレイテンシの中間層&#34;&gt;TokenJuice：コストとレイテンシの中間層
&lt;/h2&gt;&lt;p&gt;OpenHuman は TokenJuice も強調している。役割は、Web ページ、メール、検索結果、ツール呼び出し結果がモデルへ入る前に圧縮することだ。例えば HTML を Markdown に変換する、長い URL を短縮する、一部の不要な文字を取り除く、といった処理が含まれる。README では、これによりコストとレイテンシを減らし、最大 80% の token 使用量削減が可能だと説明されている。&lt;/p&gt;
&lt;p&gt;この方向性は妥当だ。Agent システムで本当に費用がかかる部分は、一回のチャットではなく、バックグラウンド取得、ツール呼び出し、検索、Web 解析、長いコンテキスト注入であることが多い。データを先に整理してからモデルへ渡す方が、元データをそのまま詰め込むより安定しやすい。&lt;/p&gt;
&lt;p&gt;ただし圧縮層は新しい問題も生む。どの情報を残し、どの情報を捨てるかを決めるからだ。契約書、請求書、医療記録、コンプライアンス資料、本番障害ログを扱うなら、token 節約だけを見るわけにはいかない。追跡可能性、原文確認、圧縮誤差も見る必要がある。&lt;/p&gt;
&lt;h2 id=&#34;プライバシー売りでもあり監査ポイントでもある&#34;&gt;プライバシー：売りでもあり監査ポイントでもある
&lt;/h2&gt;&lt;p&gt;OpenHuman の売りの一つは private であることだ。公式サイトではローカル AI モデルが低レベルのタスクを処理できると説明され、README でも workflow data stays on device、encrypted locally、treated as yours が強調されている。&lt;/p&gt;
&lt;p&gt;この設計方向は魅力的だ。個人 AI Agent が Gmail、Drive、Calendar、Slack、GitHub に接続した瞬間、もっとも機密性の高い仕事データに触れることになる。完全なクラウド型アシスタントと比べると、ローカル優先の記憶レイヤーと見える Markdown vault は、少なくともユーザーにより強い制御感を与える。&lt;/p&gt;
&lt;p&gt;ただし全体像も見る必要がある。OpenHuman は同時に one subscription、30+ providers、model routing、ElevenLabs TTS、OAuth integrations などの機能にも触れている。つまり、純粋なオフラインツールではない。プライバシーを本当に評価するには、各コネクター、各種モデル呼び出し、音声や検索機能がそれぞれ何のデータをどこへ送るのかを確認しなければならない。&lt;/p&gt;
&lt;h2 id=&#34;誰が注目すべきか&#34;&gt;誰が注目すべきか
&lt;/h2&gt;&lt;p&gt;現時点の OpenHuman は、次の三種類の人に向いている。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;単機能のチャットボットではなく、個人 AI の操作台がほしいユーザー。&lt;/li&gt;
&lt;li&gt;Early Beta を試す意欲があり、機能変化や粗い部分を受け入れられる開発者。&lt;/li&gt;
&lt;li&gt;ローカル記憶、Obsidian ワークフロー、agent connector、コンテキスト圧縮に関心がある人。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;安定して軽量で、プライバシー境界が非常に単純なオフラインアシスタントだけを探しているなら、現時点では重すぎるかもしれない。次世代の個人 AI Agent がデスクトップ、コネクター、記憶、ツールをどう統合するかを研究したいなら、OpenHuman は追いかける価値のあるオープンソースサンプルだ。&lt;/p&gt;
&lt;p&gt;私の提案は、まずこれを「製品型オープンソース実験」として観察することだ。release のリズム、issue の品質、コネクター権限、データエクスポート機能、削除機構、ローカル vault の可読性を見る。個人 AI の鍵は、質問に答えられるかだけではない。長期的に、透明で、制御可能な形で自分のコンテキストを背負えるかどうかだ。&lt;/p&gt;
&lt;h2 id=&#34;参考リンク&#34;&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/tinyhumansai/openhuman&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tinyhumansai/openhuman&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://tinyhumans.ai/openhuman&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenHuman 公式サイト&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://tinyhumans.gitbook.io/openhuman-docs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenHuman Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>web-video-presentation：記事を録画可能な Web 動画にする Agent Skill</title>
        <link>https://knightli.com/ja/2026/05/15/web-video-presentation-agent-skill/</link>
        <pubDate>Fri, 15 May 2026 09:02:15 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/15/web-video-presentation-agent-skill/</guid>
        <description>&lt;p&gt;&lt;code&gt;web-video-presentation&lt;/code&gt; は &lt;code&gt;ConardLi/garden-skills&lt;/code&gt; に含まれる agent skill だ。目的は明確で、記事やナレーション原稿を、録画して動画にできる Web プレゼンへ変換することだ。&lt;/p&gt;
&lt;p&gt;プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/ConardLi/garden-skills/tree/main/skills/web-video-presentation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ConardLi/garden-skills/tree/main/skills/web-video-presentation&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;これは普通のスライドテンプレートでも React コンポーネント集でもない。AI agent 向けの動画プレゼン制作 workflow であり、内容を script にし、outline に分け、theme を選び、Vite + React + TypeScript で 16:9 のクリック駆動 Web 画面を作る。&lt;/p&gt;
&lt;h2 id=&#34;スライドではなく動画制作面&#34;&gt;スライドではなく動画制作面
&lt;/h2&gt;&lt;p&gt;README では、生成物を slide deck ではなく “video production surface” と呼んでいる。&lt;/p&gt;
&lt;p&gt;各クリックはナレーションのひと区切りを進める。各 step は 1920×1080 の舞台を持ち、画面は語りに合わせて変わる。進捗 UI は通常隠れ、録画画面を邪魔しない。&lt;/p&gt;
&lt;p&gt;ブログ記事の動画化、ナレーション稿のビジュアル化、製品 demo、チュートリアル、keynote 風の発表に向く。&lt;/p&gt;
&lt;p&gt;価値は動画編集ソフトを置き換えることではなく、ブラウザを制御可能で反復可能な動画キャンバスにすることだ。&lt;/p&gt;
&lt;h2 id=&#34;設計原則&#34;&gt;設計原則
&lt;/h2&gt;&lt;p&gt;固定 16:9 ステージを使い、&lt;code&gt;1920×1080&lt;/code&gt; の座標系で設計して viewport に合わせて縮小する。これにより録画時のレイアウトずれを防ぐ。&lt;/p&gt;
&lt;p&gt;グローバル step cursor により、クリックやキーボードで &lt;code&gt;(chapter, step)&lt;/code&gt; を進め、ローカルに進捗を保存する。&lt;/p&gt;
&lt;p&gt;ひとつの step はひとつの考えだけを扱う。bullet を積むのではなく、各 beat が独立した画面になるべきだ。&lt;/p&gt;
&lt;p&gt;構造は script のリズムで決まる。script がテンポを決め、outline が章と step を決め、画面が物語に従う。&lt;/p&gt;
&lt;p&gt;各 scene には動く視覚的アンカーが必要だ。静的テキストだけなら、まだ動画言語になっていない。&lt;/p&gt;
&lt;p&gt;theme は色替えではなく、タイポグラフィ、色、カード、背景、区切り、装飾、雰囲気を semantic token で制御する。&lt;/p&gt;
&lt;h2 id=&#34;四段階の-workflow&#34;&gt;四段階の workflow
&lt;/h2&gt;&lt;p&gt;第一段階は内容作成。記事が渡されたら &lt;code&gt;script.md&lt;/code&gt; に書き換え、&lt;code&gt;outline.md&lt;/code&gt; を作る。すでにナレーション稿があれば、それを &lt;code&gt;script.md&lt;/code&gt; に保存して outline を作る。&lt;/p&gt;
&lt;p&gt;第二段階は Web 開発。Vite / React / TypeScript プロジェクトを作り、章ごとに画面を実装する。第 1 章は必ずメインスレッドで完成させ、ユーザー確認を受ける。これが後続章のスタイル基準になる。&lt;/p&gt;
&lt;p&gt;第三段階は任意の音声合成。各章の &lt;code&gt;narrations.ts&lt;/code&gt; からナレーション定義を抽出し、音声合成へ渡せる。&lt;/p&gt;
&lt;p&gt;第四段階は録画と後処理。Web アプリ自体が録画用の舞台になる。&lt;/p&gt;
&lt;p&gt;script、outline、theme、素材計画、開発モード、第 1 章の確認、音声合成の有無にはチェックポイントがある。agent が最初から最後まで勝手に進まないためだ。&lt;/p&gt;
&lt;h2 id=&#34;outline-にアニメーションを書かない理由&#34;&gt;outline にアニメーションを書かない理由
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;outline.md&lt;/code&gt; はリズムと情報密度を計画するが、具体的なアニメーションは書かない。章分け、step 数、画面内容、素材、推定時間は書けるが、CSS animation、clip-path、filter の実装は書かない。&lt;/p&gt;
&lt;p&gt;outline でアニメーションを固定すると、後の実装が機械的になる。動画らしさは、章の内容関係に応じて実装時に設計する方がよい。&lt;/p&gt;
&lt;h2 id=&#34;narrationsts-を真実のソースにする&#34;&gt;narrations.ts を真実のソースにする
&lt;/h2&gt;&lt;p&gt;各章には &lt;code&gt;narrations.ts&lt;/code&gt; があり、step 数と対応するナレーション文を保存する。章の &lt;code&gt;.tsx&lt;/code&gt; で使われる最大 step は &lt;code&gt;narrations.length&lt;/code&gt; と一致しなければならない。&lt;/p&gt;
&lt;p&gt;これにより、&lt;code&gt;script.md&lt;/code&gt;、&lt;code&gt;outline.md&lt;/code&gt;、章コード、&lt;code&gt;chapters.ts&lt;/code&gt;、音声ファイルのずれを防げる。動画制作では、ナレーション、画面、音声、step 数の同期が非常に重要だ。&lt;/p&gt;
&lt;h2 id=&#34;theme-は単なるスキンではない&#34;&gt;Theme は単なるスキンではない
&lt;/h2&gt;&lt;p&gt;内蔵 theme には &lt;code&gt;paper-press&lt;/code&gt;、&lt;code&gt;warm-keynote&lt;/code&gt;、&lt;code&gt;midnight-press&lt;/code&gt;、&lt;code&gt;blueprint&lt;/code&gt;、&lt;code&gt;chalk-garden&lt;/code&gt;、&lt;code&gt;terminal-green&lt;/code&gt;、&lt;code&gt;bauhaus-bold&lt;/code&gt;、&lt;code&gt;sunset-zine&lt;/code&gt;、&lt;code&gt;newsroom&lt;/code&gt;、&lt;code&gt;monochrome-print&lt;/code&gt; がある。&lt;/p&gt;
&lt;p&gt;これは単なる色違いではなく、印刷、keynote、設計図、端末、newsroom など異なる視覚言語を表す。&lt;/p&gt;
&lt;p&gt;agent は計画段階で内容と語調に合う theme を 2〜3 個提案する。カスタム theme も作れる。&lt;/p&gt;
&lt;h2 id=&#34;開発モード&#34;&gt;開発モード
&lt;/h2&gt;&lt;p&gt;第 1 章は必ずメインスレッドで作って確認する。その後は、章ごとに確認する Mode A、順番に実装して最後に確認する Mode B、subagent で並列に進める Mode C がある。&lt;/p&gt;
&lt;p&gt;Mode C は速いが、章ごとの表情に差が出る可能性がある。theme token が全体の統一感を支える。&lt;/p&gt;
&lt;h2 id=&#34;向いている人&#34;&gt;向いている人
&lt;/h2&gt;&lt;p&gt;記事、脚本、製品紹介、チュートリアル、技術解説など、すでに内容がある人に向いている。単に動画テーマを考えるツールではなく、内容を動画化する制作 workflow だ。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;web-video-presentation&lt;/code&gt; の価値は、美しい React ページではなく、記事、ナレーション、outline、theme、章実装、音声、録画を、確認可能な制作フローとしてつなぐ点にある。&lt;/p&gt;
&lt;p&gt;直接使わなくても、「1 step 1 idea」「第 1 章をスタイル基準にする」「&lt;code&gt;narrations.ts&lt;/code&gt; を真実のソースにする」「outline で動きを固定しない」という考え方は、自分の AI コンテンツ制作に応用できる。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Prompt-Vault：AI コーディング能力を測るための prompt 仕様集</title>
        <link>https://knightli.com/ja/2026/05/15/prompt-vault-coding-prompt-benchmark/</link>
        <pubDate>Fri, 15 May 2026 09:00:52 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/15/prompt-vault-coding-prompt-benchmark/</guid>
        <description>&lt;p&gt;&lt;code&gt;w512/Prompt-Vault&lt;/code&gt; は小さいが有用な prompt リポジトリだ。万能の呪文を集めるのではなく、実行可能な coding prompt を難易度別に整理し、LLM や coding agent のテストに使えるようにしている。&lt;/p&gt;
&lt;p&gt;プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/w512/Prompt-Vault&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/w512/Prompt-Vault&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;構造は &lt;code&gt;Easy&lt;/code&gt;、&lt;code&gt;Medium&lt;/code&gt;、&lt;code&gt;Hard&lt;/code&gt; の三つ。各 Markdown ファイルが独立したタスクだ。README も、これらは大規模言語モデルのテストや練習プロジェクトに向くと説明している。&lt;/p&gt;
&lt;h2 id=&#34;prompt-スクラップブックではない&#34;&gt;prompt スクラップブックではない
&lt;/h2&gt;&lt;p&gt;多くの prompt 集は数が多くても品質を判断しにくい。見出しは魅力的でも、受け入れ基準が足りない。&lt;/p&gt;
&lt;p&gt;Prompt-Vault は仕様集に近い。各タスクは、作るアプリ、必須機能、UI スタイル、技術制約、単一ファイル実行か、外部依存の可否、永続化の有無を明確にしようとしている。&lt;/p&gt;
&lt;p&gt;これは「きれいな看板を作って」よりもモデル評価に向いている。モデルが要件を理解しているかが見えるからだ。&lt;/p&gt;
&lt;h2 id=&#34;easy基本的なインタラクション&#34;&gt;Easy：基本的なインタラクション
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Bubble_Sort_Visualizer.md&lt;/code&gt; は、単一 &lt;code&gt;index.html&lt;/code&gt; でバブルソートを棒グラフ表示する。開始、リセット、速度スライダー、比較回数、ダークテーマが必要だ。&lt;/p&gt;
&lt;p&gt;アルゴリズム状態を UI に結びつけられるか、アニメーションを制御できるか、リセットと実行状態を扱えるかを測れる。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ToDo_List.md&lt;/code&gt; は静的 HTML から始まり、タスク追加、完了状態、削除、カウンタ、Active / Completed 統計、&lt;code&gt;localStorage&lt;/code&gt; を段階的に追加する。&lt;/p&gt;
&lt;p&gt;単純だが、段階的にコードを進化させられるかを測るのに向いている。&lt;/p&gt;
&lt;h2 id=&#34;medium状態とアニメーション&#34;&gt;Medium：状態とアニメーション
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Sorting_Visualization.md&lt;/code&gt; は 6 種類のソートを同じページで扱う。Bubble Sort、Insertion Sort、Selection Sort、Merge Sort、Quick Sort、Heap Sort だ。&lt;/p&gt;
&lt;p&gt;さらにアルゴリズム選択、速度、配列サイズ、リセット、開始 / 一時停止、統計パネルも必要になる。&lt;/p&gt;
&lt;p&gt;ひとつのバブルソートは書けても、複数アルゴリズム、停止再開、統計を合わせると状態管理の弱点が出やすい。&lt;/p&gt;
&lt;h2 id=&#34;hard製品としての完成度&#34;&gt;Hard：製品としての完成度
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Kanban_Board.md&lt;/code&gt; は、列追加、改名、空列削除、カードのタイトルと説明、優先度、期限、ドラッグ、検索、フィルタ、&lt;code&gt;localStorage&lt;/code&gt;、統計、ダークな glassmorphism、横スクロール対応を求める。&lt;/p&gt;
&lt;p&gt;これは単機能ではなく、製品としての完成度を測る prompt だ。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Markdown_Editor_Desktop.md&lt;/code&gt; は Tauri 2 のクロスプラットフォーム Markdown エディタを求める。分割編集とプレビュー、同期スクロール、ライブレンダリング、保存、未保存表示、ツールバー、ショートカット、テーマ、Vue 3、Pinia、&lt;code&gt;marked.js&lt;/code&gt;、&lt;code&gt;prism.js&lt;/code&gt;、Tauri plugins などを含む。&lt;/p&gt;
&lt;p&gt;Web ページを超えて、デスクトップアプリの設計力を測れる。&lt;/p&gt;
&lt;h2 id=&#34;価値&#34;&gt;価値
&lt;/h2&gt;&lt;p&gt;Prompt-Vault の価値は数ではなく、再利用できる評価サンプルにある。&lt;/p&gt;
&lt;p&gt;同じ prompt を複数モデルで使えば、制約を守るか、機能漏れが少ないか、境界状態を扱えるか、コードが保守しやすいか、UI 細部に強いかを比較できる。&lt;/p&gt;
&lt;p&gt;これは「賢そうに感じる」よりずっと信頼できる。&lt;/p&gt;
&lt;p&gt;フロントエンドタスクでは、失敗は構文エラーだけではない。ボタン状態、アニメーション停止、永続化、ドラッグ対象、統計更新など、体験の細部が評価になる。&lt;/p&gt;
&lt;h2 id=&#34;拡張案&#34;&gt;拡張案
&lt;/h2&gt;&lt;p&gt;より本格的な benchmark にするなら、受け入れチェックリスト、失敗ケース、採点軸、参照実装、モデル別の結果記録を追加できる。&lt;/p&gt;
&lt;p&gt;たとえばソート可視化には「Start / Reset を連打しても複数ループが走らない」などのチェックを入れるとよい。&lt;/p&gt;
&lt;h2 id=&#34;使い方&#34;&gt;使い方
&lt;/h2&gt;&lt;p&gt;AI コーディングツールを試すなら、prompt をそのまま渡し、追加ヒントなしで出力を実行する。機能ごとに確認し、漏れと bug を記録し、一度だけ修正させる。最後に時間、token コスト、コード品質を比べる。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Prompt-Vault は軽量な prompt 仕様集だ。AI コーディングのテストにも、フロントエンド練習にも使える。&lt;/p&gt;
&lt;p&gt;良い prompt は願望ではなく、要件、制約、インタラクション、状態、受け入れ基準、実行方法を書くものだと教えてくれる。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Token Efficiency とは何か：DeepSeek V4 から見る大モデルの計画と小モデルの実行</title>
        <link>https://knightli.com/ja/2026/05/15/token-efficiency-agent-orchestration/</link>
        <pubDate>Fri, 15 May 2026 08:59:33 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/15/token-efficiency-agent-orchestration/</guid>
        <description>&lt;p&gt;AI コーディングで次に重要になる指標は、最強モデルを使うことではなく、より少ない token、低いコスト、安定したプロセスで、より多くの検証可能な仕事を終えることかもしれない。&lt;/p&gt;
&lt;p&gt;それが Token Efficiency の価値だ。&lt;/p&gt;
&lt;p&gt;多くの人は Token Efficiency を、安いモデル、長いコンテキスト、安い cache hit と考える。しかしそれは基礎条件にすぎない。本当に生産性に変えるのは、モデルの役割分担、タスク編成、コンテキスト予算、評価体系だ。&lt;/p&gt;
&lt;h2 id=&#34;deepseek-v4-の位置づけ&#34;&gt;DeepSeek V4 の位置づけ
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 は単に強いモデルを出しただけではない。Token Efficiency に必要な二つの能力を &lt;code&gt;V4 Pro&lt;/code&gt; と &lt;code&gt;V4 Flash&lt;/code&gt; に分けた。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;V4 Pro&lt;/code&gt; は計画、推論、アーキテクチャ判断、重要レビューに向く。&lt;code&gt;V4 Flash&lt;/code&gt; は高頻度実行、バッチ書き換え、コード補完、資料整理、agent ループ内の通常ノードに向く。&lt;/p&gt;
&lt;p&gt;AI コーディングでは次のように使える。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;V4 Pro&lt;/code&gt;: planner / consultant。要件分解、技術設計、複雑な bug 分析、アーキテクチャレビュー、最終受け入れ。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;V4 Flash&lt;/code&gt;: executor。ファイル走査、単純実装、テスト補完、文書整理、候補生成、反復タスク。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;DeepSeek の API 文書では、&lt;code&gt;V4 Flash&lt;/code&gt; と &lt;code&gt;V4 Pro&lt;/code&gt; はどちらも &lt;code&gt;1M&lt;/code&gt; context、JSON Output、Tool Calls、Chat Prefix Completion、FIM Completion をサポートする。価格ページでは cache hit input が別価格で、input cache hit 価格が公開時の 10 分の 1 になったことも示されている。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;1M&lt;/code&gt; context は複雑な agent タスクの圧縮問題を減らす。低い cache hit 価格は、長い system prompt、プロジェクト文書、コード片、履歴を繰り返し入れるコストを下げる。&lt;code&gt;Flash / Pro&lt;/code&gt; の分離は、全ステップを高価なモデルで走らせるか、不安定な小モデルだけで走らせるか、という二択を避ける。&lt;/p&gt;
&lt;p&gt;DeepSeek V4 の意味は、別のモデル選択肢ではなく、「consultant model + executor model + harness orchestration」の現実的なコスト構造を提供することにある。&lt;/p&gt;
&lt;h2 id=&#34;最強モデルにすべてをさせない&#34;&gt;最強モデルにすべてをさせない
&lt;/h2&gt;&lt;p&gt;従来は最も賢いモデルに、要件分析、実装、テスト、まとめを全部任せがちだった。&lt;/p&gt;
&lt;p&gt;しかし多くの作業は最高レベルの推論を必要としない。高価なモデルは、重要な判断点だけに出る consultant、architect、planner のように使うべきだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;大モデルは問題分解と重要判断。&lt;/li&gt;
&lt;li&gt;小モデルは実行、バッチ処理、反復修正。&lt;/li&gt;
&lt;li&gt;tool と harness はプロセス、状態、コンテキスト、検証。&lt;/li&gt;
&lt;li&gt;人間は製品定義、受け入れ、取捨選択。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これで最先端推論を機械的な実行に浪費しにくくなる。&lt;/p&gt;
&lt;h2 id=&#34;コンテキストは大きければよいわけではない&#34;&gt;コンテキストは大きければよいわけではない
&lt;/h2&gt;&lt;p&gt;coding agent では、コード、文書、会話履歴、テスト出力、ログがコンテキストを消費する。上限に近づくと圧縮、忘却、誤判断が起きやすい。&lt;/p&gt;
&lt;p&gt;しかし長いコンテキストは、すべてを詰め込んでよいという意味ではない。&lt;/p&gt;
&lt;p&gt;各タスクは、必要ファイル、判断に関係する文書、現在段階に必要な履歴、明確な入出力、次ノードへ渡す構造化要約だけを持つべきだ。&lt;/p&gt;
&lt;p&gt;安い context は無関係な情報を入れたくさせる。だがノイズはモデルを賢くしない。&lt;/p&gt;
&lt;h2 id=&#34;harness-が単体モデルより重要&#34;&gt;Harness が単体モデルより重要
&lt;/h2&gt;&lt;p&gt;Claude Code、Codex、その他の coding agent を安いモデルにつなぐだけでは十分ではない。小モデルは長いタスクでずれやすく、強いプロセス制御が必要だ。&lt;/p&gt;
&lt;p&gt;harness は調度システムであり、タスク分割、ノード実行、モデル選択、結果検証、失敗時の再試行、コンテキスト受け渡しを決める。&lt;/p&gt;
&lt;p&gt;この層がなければ、小モデルは安いだけだ。この層があると、小モデルはレバレッジになる。&lt;/p&gt;
&lt;h2 id=&#34;dag-でタスクを分ける&#34;&gt;DAG でタスクを分ける
&lt;/h2&gt;&lt;p&gt;複雑なタスクは DAG に分けられる。たとえば機能開発は、要件確認、技術設計、タスク分解、実装、テスト補完、Code Review、修正、PR 提出にできる。&lt;/p&gt;
&lt;p&gt;各ノードは独立した agent にできる。役割、prompt、tool 権限、出力形式を分け、長い会話ではなく構造化結果を渡す。&lt;/p&gt;
&lt;p&gt;これによりノードは短くなり、小モデルで完了しやすくなり、どこが失敗しているかも測りやすくなる。&lt;/p&gt;
&lt;h2 id=&#34;タスクは複数回走らせてもよい&#34;&gt;タスクは複数回走らせてもよい
&lt;/h2&gt;&lt;p&gt;token が十分安ければ、同じタスクを一度だけ走らせる必要はない。異なるモデル、prompt、編成で複数回走らせ、最良の結果を選ぶ、または有用部分を統合できる。&lt;/p&gt;
&lt;p&gt;向いているのは設計案、文章、テストケース、bug 仮説、リファクタリング案、Code Review だ。共有状態を変える作業や外部副作用がある作業には向かない。&lt;/p&gt;
&lt;p&gt;目的は運試しではなく、比較可能なサンプルを得て、編成とモデル選択を改善することだ。&lt;/p&gt;
&lt;h2 id=&#34;評価体系が必要&#34;&gt;評価体系が必要
&lt;/h2&gt;&lt;p&gt;Token Efficiency は価格だけでは測れない。安くても失敗率が高ければ、人間の時間を食って高くつく。&lt;/p&gt;
&lt;p&gt;タスク完了率、人間の介入回数、tool call 失敗率、テスト通過率、review 指摘数、タスクごとの token コスト、時間、手戻り回数、モデル組み合わせの差を記録する。&lt;/p&gt;
&lt;p&gt;このデータがあって初めて、小モデルでよい作業、大モデルが必要な作業、人間が判断すべき作業を分けられる。&lt;/p&gt;
&lt;h2 id=&#34;業務フローを原子化する&#34;&gt;業務フローを原子化する
&lt;/h2&gt;&lt;p&gt;全員が harness を自作する必要はない。しかし自分の業務を原子ノードに分解することは今からできる。&lt;/p&gt;
&lt;p&gt;コンテンツ制作なら、企画、調査、アウトライン、初稿、ファクトチェック、スタイル調整、SEO タイトル、多言語翻訳、公開チェック。&lt;/p&gt;
&lt;p&gt;ソフトウェア開発なら、要件確認、技術設計、データ構造、API 変更、単体テスト、実装、移行スクリプト、文書、Review。&lt;/p&gt;
&lt;p&gt;各ノードは入力、出力、受け入れ条件、コンテキストを明確にする。harness が成熟すれば、そのまま接続できる。&lt;/p&gt;
&lt;h2 id=&#34;ハードウェアは最優先ではない&#34;&gt;ハードウェアは最優先ではない
&lt;/h2&gt;&lt;p&gt;Token Efficiency の話はすぐローカルデプロイや GPU に向かう。しかし多くの人にとって最初の選択は API でよい。&lt;/p&gt;
&lt;p&gt;経済モデルが通る前に高価なハードを買うのは、コストの前払いにすぎない。まず API で workflow を通し、評価とコストを記録し、高頻度の実行ノードを見つけてから、ローカル化を検討すべきだ。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Token Efficiency の本質は、高いモデルを安いモデルで置き換えることではない。AI workflow を設計し直すことだ。&lt;/p&gt;
&lt;p&gt;大モデルが重要判断をし、小モデルが大量実行し、harness が調度と検証を行い、人間が目標と受け入れを決める。この四層が揃って初めて token は生産性に変わる。&lt;/p&gt;
&lt;p&gt;将来の差は、最強モデルを呼んだかではなく、同じ token でどれだけ現実の成果を出せるかに現れる。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Superpowers：Coding Agent を工学プロセスへ戻す skills フレームワーク</title>
        <link>https://knightli.com/ja/2026/05/15/obra-superpowers-agentic-skills-framework/</link>
        <pubDate>Fri, 15 May 2026 08:53:17 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/15/obra-superpowers-agentic-skills-framework/</guid>
        <description>&lt;p&gt;&lt;code&gt;obra/superpowers&lt;/code&gt; は coding agent 向けの skills フレームワークであり、ソフトウェア開発方法論でもある。目的は万能 prompt を増やすことではなく、agent に流れを守らせることだ。目標を確認し、設計を作り、計画に分解し、TDD で実装し、レビューして終える。&lt;/p&gt;
&lt;p&gt;プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/obra/superpowers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/obra/superpowers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;執筆時点で GitHub API では 19 万 star を超え、MIT ライセンスで、最近も更新されている。README は &lt;code&gt;An agentic skills framework &amp;amp; software development methodology that works.&lt;/code&gt; と説明している。&lt;/p&gt;
&lt;h2 id=&#34;解決したい問題&#34;&gt;解決したい問題
&lt;/h2&gt;&lt;p&gt;多くの AI コーディングツールの問題は、コードを書けないことではなく、すぐコードを書き始めることだ。&lt;/p&gt;
&lt;p&gt;ユーザーが曖昧な要望を言うと、agent はファイルを編集し、見た目は完成する。しかし境界、テスト、アーキテクチャは不明確なまま残る。小さな作業ならよいが、複雑なプロジェクトでは手戻りと技術的負債になる。&lt;/p&gt;
&lt;p&gt;Superpowers は、コードに触る前に agent を workflow に入れる。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;何かを作りたいと分かったら、まず目標を質問する。&lt;/li&gt;
&lt;li&gt;会話を仕様にし、区切って確認する。&lt;/li&gt;
&lt;li&gt;設計が通ったら、実装計画を作る。&lt;/li&gt;
&lt;li&gt;ユーザーが “go” と言ってから実装する。&lt;/li&gt;
&lt;li&gt;実装では TDD、YAGNI、DRY、レビューを重視する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;これは新しい工学ではない。速い agent ほど、こうしたガードレールが重要になる。&lt;/p&gt;
&lt;h2 id=&#34;対応ツール&#34;&gt;対応ツール
&lt;/h2&gt;&lt;p&gt;Superpowers は単一の agent に縛られない。README には Claude Code、Codex CLI、Codex App、Factory Droid、Gemini CLI、OpenCode、Cursor、GitHub Copilot CLI が挙げられている。&lt;/p&gt;
&lt;p&gt;つまり特定モデルのテクニックではなく、複数の harness で使える workflow 層に近い。&lt;/p&gt;
&lt;h2 id=&#34;基本-workflow&#34;&gt;基本 workflow
&lt;/h2&gt;&lt;p&gt;最初は &lt;code&gt;brainstorming&lt;/code&gt;。実装前に粗いアイデアを実行可能な設計へ変え、ユーザーに確認する。&lt;/p&gt;
&lt;p&gt;次に &lt;code&gt;using-git-worktrees&lt;/code&gt;。設計後、隔離された worktree とブランチを作り、インストールとテストの基線を確認する。&lt;/p&gt;
&lt;p&gt;次は &lt;code&gt;writing-plans&lt;/code&gt;。設計を小さなタスクに分け、ファイルパス、変更範囲、検証手順を明確にする。&lt;/p&gt;
&lt;p&gt;実装段階では &lt;code&gt;subagent-driven-development&lt;/code&gt; で subagent に渡すことも、&lt;code&gt;executing-plans&lt;/code&gt; で順に実行することもできる。重要なのは各タスクが確認可能で review 可能なことだ。&lt;/p&gt;
&lt;p&gt;その後 &lt;code&gt;test-driven-development&lt;/code&gt; によって、本当の RED-GREEN-REFACTOR を行う。失敗するテストを書き、失敗を確認し、最小実装で通し、リファクタリングする。&lt;/p&gt;
&lt;p&gt;さらに &lt;code&gt;requesting-code-review&lt;/code&gt; でタスク間の review を行う。Critical な問題は進行を止める。&lt;/p&gt;
&lt;p&gt;最後に &lt;code&gt;finishing-a-development-branch&lt;/code&gt; でテストを確認し、merge、PR、worktree の保持や破棄を選ぶ。&lt;/p&gt;
&lt;h2 id=&#34;skills-library&#34;&gt;Skills Library
&lt;/h2&gt;&lt;p&gt;テスト系は &lt;code&gt;test-driven-development&lt;/code&gt; が中心だ。&lt;/p&gt;
&lt;p&gt;デバッグ系には &lt;code&gt;systematic-debugging&lt;/code&gt; と &lt;code&gt;verification-before-completion&lt;/code&gt; がある。再現、最小化、仮説、検証、修正を求め、検証なしに完了と言わない。&lt;/p&gt;
&lt;p&gt;協調系には次がある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;brainstorming&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;writing-plans&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;executing-plans&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dispatching-parallel-agents&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;requesting-code-review&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;receiving-code-review&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;using-git-worktrees&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;finishing-a-development-branch&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;subagent-driven-development&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;メタ skills には &lt;code&gt;writing-skills&lt;/code&gt; と &lt;code&gt;using-superpowers&lt;/code&gt; がある。組み合わせると、agent に「いつ質問し、いつ計画し、いつテストし、いつ止まって review するか」という習慣を与える。&lt;/p&gt;
&lt;h2 id=&#34;普通の-prompt-との違い&#34;&gt;普通の prompt との違い
&lt;/h2&gt;&lt;p&gt;普通の prompt は、ルールを system prompt に積み上げがちだ。勝手に変更するな、先に考えろ、テストしろ、簡潔に説明しろ。ルールが増えるほど、複雑なタスクでは忘れられやすい。&lt;/p&gt;
&lt;p&gt;Superpowers はルールを段階ごとの workflow モジュールに分ける。各 skill は短く、目的が集中している。agent は今の段階で何をすべきかを理解しやすく、複雑な流れも検査しやすい。&lt;/p&gt;
&lt;p&gt;学べる点は、賢いモデルだけを追うのではなく、モデルに繰り返し可能な働き方を与えることだ。&lt;/p&gt;
&lt;h2 id=&#34;向いている場面&#34;&gt;向いている場面
&lt;/h2&gt;&lt;p&gt;Superpowers は、実プロジェクトで coding agent を使う開発者に向いている。複数ファイルの変更、設計してから実装したい場合、TDD や検証が必要な場合、複数ブランチや worktree を扱う場合、subagent に実装や review を任せたい場合に特に有効だ。&lt;/p&gt;
&lt;p&gt;一行の設定変更には重いかもしれない。しかし多段階の開発では、その制約が価値になる。&lt;/p&gt;
&lt;h2 id=&#34;注意点&#34;&gt;注意点
&lt;/h2&gt;&lt;p&gt;これは自動操縦ではない。プロセスは与えるが、要求、トレードオフ、最終受け入れは人間が持つ。&lt;/p&gt;
&lt;p&gt;TDD と review は初期コストを増やす。小タスクでは遅く感じるが、複雑なタスクでは手戻りを減らす。&lt;/p&gt;
&lt;p&gt;subagent の並列化は常に良いわけではない。境界と書き込み範囲が明確なときに効く。要件が曖昧なら、並列化は混乱を増やす。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Superpowers の価値は、coding agent を「依頼を受けたらコードを書く」状態から、ソフトウェア工学プロセスへ戻すことにある。&lt;/p&gt;
&lt;p&gt;AI コーディングに足りないのは生成速度ではなく、確認、計画、検証、review、終了処理であることが多い。モデルが強くなるほど、これらを省いてはいけない。&lt;/p&gt;
&lt;p&gt;Codex、Claude Code、Cursor、Gemini CLI を実プロジェクトで使っているなら、Superpowers は調べる価値がある。直接使わなくても、skills の分け方は自分の agent workflow を設計する参考になる。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Vibe Coding を拒む：Matt Pocock の skills リポジトリが AI コーディングに工学的制約を足す</title>
        <link>https://knightli.com/ja/2026/05/15/matt-pocock-skills-ai-engineering-workflow/</link>
        <pubDate>Fri, 15 May 2026 08:46:23 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/15/matt-pocock-skills-ai-engineering-workflow/</guid>
        <description>&lt;p&gt;AI がコードを書く速度が上がるほど、プロジェクトが崩れる速度も上がり得る。問題はモデルが関数を生成できるかではなく、要件を理解し、チームの言葉に従い、既存アーキテクチャの中で小さく進められるかだ。&lt;/p&gt;
&lt;p&gt;Matt Pocock が公開した &lt;code&gt;mattpocock/skills&lt;/code&gt; は、vibe coding とは逆の方向を示している。AI に開発プロセス全体を任せるのではなく、成熟したソフトウェア工学の制約の中に置く。&lt;/p&gt;
&lt;p&gt;プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/mattpocock/skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/mattpocock/skills&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;これは魔法の prompt ではない。要件確認、ドメインモデリング、TDD、診断、アーキテクチャレビューを、AI agent が使いやすい workflow にした skills の集合だ。&lt;/p&gt;
&lt;h2 id=&#34;まずアラインメント失敗を防ぐ&#34;&gt;まずアラインメント失敗を防ぐ
&lt;/h2&gt;&lt;p&gt;AI コーディングで最も多い失敗は、モデルが理解したと思ったら、実は曖昧な説明から推測していただけ、というものだ。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grill-me&lt;/code&gt; はこれを反転させる。コードを書く前に、AI を厳しいレビュアーにし、分岐、境界、未決事項を質問させる。&lt;/p&gt;
&lt;p&gt;たとえば「ログインページを作って」と頼んだら、先に聞くべきことは次のようなものだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;パスワード忘れはどう扱うか&lt;/li&gt;
&lt;li&gt;外部ログインをサポートするか&lt;/li&gt;
&lt;li&gt;ログイン失敗時のエラー表示はどうするか&lt;/li&gt;
&lt;li&gt;アカウントロック、CAPTCHA、リスク制御は範囲内か&lt;/li&gt;
&lt;li&gt;成功後はどこへ遷移するか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この段階は遅く見えるが、後の手戻りを減らす。コード生成が安くなるほど、曖昧な要件のコストは大きくなる。&lt;/p&gt;
&lt;h2 id=&#34;ドメイン言語をコンテキストに入れる&#34;&gt;ドメイン言語をコンテキストに入れる
&lt;/h2&gt;&lt;p&gt;次の問題は汎用語彙だ。モデルはチーム内の業務用語を知らないため、変数名、関数名、ドキュメントの言葉がずれていく。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grill-with-docs&lt;/code&gt; は質問しながら、&lt;code&gt;CONTEXT.md&lt;/code&gt;、ADR、ドメイン文書を確認する。確認済みの用語、境界、判断は、再利用できるコンテキストとして残せる。&lt;/p&gt;
&lt;p&gt;これはドメイン駆動設計のユビキタス言語に近い。チームが user ではなく customer、order ではなく transaction と呼ぶなら、AI もその言葉を使うべきだ。&lt;/p&gt;
&lt;p&gt;コンテキスト文書の価値は、情報量ではなく推測を減らすことにある。&lt;/p&gt;
&lt;h2 id=&#34;tdd-で生成速度を制御する&#34;&gt;TDD で生成速度を制御する
&lt;/h2&gt;&lt;p&gt;AI の危険は速さにある。昔は悪いコードを大量に書くにも時間がかかったが、今は数秒で数百行が出る。問題は速さそのものではなく、フィードバックループがないことだ。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;tdd&lt;/code&gt; skill は RED-GREEN-REFACTOR を戻す。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ひとつの振る舞いに対して失敗するテストを書く。&lt;/li&gt;
&lt;li&gt;そのテストを通す最小実装を書く。&lt;/li&gt;
&lt;li&gt;リファクタリングする。&lt;/li&gt;
&lt;li&gt;次の縦スライスへ進む。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;重要なのは、ひとつずつ進めることだ。AI は実行し、人間は方向と境界を確認する。&lt;/p&gt;
&lt;h2 id=&#34;診断ループで複雑な問題を扱う&#34;&gt;診断ループで複雑な問題を扱う
&lt;/h2&gt;&lt;p&gt;バグに出会うと、多くの agent は答えを推測し、何度も修正して問題をさらに複雑にする。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;diagnose&lt;/code&gt; は先にフィードバックループを作らせる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;再現する&lt;/li&gt;
&lt;li&gt;最小化する&lt;/li&gt;
&lt;li&gt;仮説を立てる&lt;/li&gt;
&lt;li&gt;観測やログを足す&lt;/li&gt;
&lt;li&gt;修正する&lt;/li&gt;
&lt;li&gt;回帰テストを足す&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;古い方法だが、AI コーディングでは特に重要だ。AI は試行が得意だが、根因に近づいているかを判断するにはレールが必要になる。&lt;/p&gt;
&lt;h2 id=&#34;アーキテクチャを定期的に見る&#34;&gt;アーキテクチャを定期的に見る
&lt;/h2&gt;&lt;p&gt;単発のタスクが通っても、コードベースが良くなったとは限らない。AI の小さな変更が積み重なると、モジュール境界がぼやけ、インターフェイスが複雑になり、テストしづらくなる。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;improve-codebase-architecture&lt;/code&gt; のような skill は、現在のタスクから離れて全体を見る。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;責務が混ざっているモジュールはどこか&lt;/li&gt;
&lt;li&gt;複雑すぎるインターフェイスはどれか&lt;/li&gt;
&lt;li&gt;テストしづらい経路はどこか&lt;/li&gt;
&lt;li&gt;ドメイン言語と合わない命名はどれか&lt;/li&gt;
&lt;li&gt;収束すべき重複ロジックはどれか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは自動で大規模リファクタリングするためではない。構造化された観察と改善方向を出し、人間が判断するためのものだ。&lt;/p&gt;
&lt;h2 id=&#34;制限すべきは自由度&#34;&gt;制限すべきは自由度
&lt;/h2&gt;&lt;p&gt;この方法論の核心は単純だ。AI コーディングはモデルを自由に走らせることではなく、明確な目標、コンテキスト、テスト、停止条件を与えることだ。&lt;/p&gt;
&lt;p&gt;人間は問題定義、アーキテクチャ境界、業務上の取捨選択、受け入れ基準を担当する。AI はコード生成、テスト補完、反復修正、局所的なリファクタリングを担当する。&lt;/p&gt;
&lt;p&gt;AI が強くなっても、ソフトウェア工学の基礎は古くならない。要件整理、ドメイン言語、TDD、診断、アーキテクチャレビューは、むしろ重要になる。&lt;/p&gt;
&lt;p&gt;コードを書ける人は増える。差がつくのは、AI を保守可能で検証可能な工学体系に組み込めるかどうかだ。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>cc-haha とは？Claude Code をデスクトップ作業台にするプロジェクト</title>
        <link>https://knightli.com/ja/2026/05/14/cc-haha-claude-code-desktop-workbench/</link>
        <pubDate>Thu, 14 May 2026 22:38:04 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/14/cc-haha-claude-code-desktop-workbench/</guid>
        <description>&lt;p&gt;&lt;code&gt;cc-haha&lt;/code&gt; は、Claude Code のワークフローを中心に改造されたプロジェクトです。正式なリポジトリ名は &lt;code&gt;NanmiCoder/cc-haha&lt;/code&gt; です。プロジェクトページでは、&lt;code&gt;2026-03-31&lt;/code&gt; に Anthropic npm registry から流出した Claude Code のソースコードを修復したものをベースにしており、現在の主な形はデスクトップ版 Claude Code ワークベンチだと説明されています。&lt;/p&gt;
&lt;p&gt;プロジェクト URL：&lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;この説明には重要な点が 2 つあります。&lt;/p&gt;
&lt;p&gt;1 つ目は、これは Anthropic 公式の Claude Code ではないということです。README でも、元のソースコードの著作権は Anthropic にあり、学習と研究目的に限ると明記されています。&lt;/p&gt;
&lt;p&gt;2 つ目は、今の重点が単なる「Claude Code CLI をローカルで動かすこと」ではないということです。README と最新 release を見ると、&lt;code&gt;cc-haha&lt;/code&gt; は Claude Code のセッション、プロジェクト、権限、Diff、Computer Use、リモートアクセス、モデルプロバイダー設定をまとめるデスクトップアプリに近いものになっています。&lt;/p&gt;
&lt;h2 id=&#34;何を解決しようとしているのか&#34;&gt;何を解決しようとしているのか
&lt;/h2&gt;&lt;p&gt;Claude Code はもともとターミナル寄りのツールです。セッション、コマンド実行、権限確認、ファイル編集、コンテキスト切り替えはターミナル内で行われます。CLI に慣れた人には問題ありませんが、長く使うといくつか不便な点が出てきます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;複数のプロジェクトやセッションを同時に管理しづらい。&lt;/li&gt;
&lt;li&gt;AI がどのファイルを変更したかを見るには、Git やエディタに切り替える必要がある。&lt;/li&gt;
&lt;li&gt;権限承認、コマンド実行、ファイル Diff が別々の画面に分散する。&lt;/li&gt;
&lt;li&gt;スマホや別端末から現在のセッションを見たい場合、追加の仕組みが必要。&lt;/li&gt;
&lt;li&gt;Anthropic 以外のモデルを使うには、プロトコル互換を自分で処理する必要がある。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;cc-haha&lt;/code&gt; は、これらをグラフィカルなワークベンチとしてまとめようとしています。Claude Code に見た目を付けただけではなく、「セッション管理」と「ローカル開発フローの制御」をデスクトップ側に移しています。&lt;/p&gt;
&lt;h2 id=&#34;デスクトップワークベンチターミナルからコントロールセンターへ&#34;&gt;デスクトップワークベンチ：ターミナルからコントロールセンターへ
&lt;/h2&gt;&lt;p&gt;README によると、&lt;code&gt;cc-haha&lt;/code&gt; のデスクトップ版は macOS / Windows App の中に次の機能を集約しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;複数セッションのワークベンチ：タブ、プロジェクト切り替え、ターミナル入口、セッション履歴でタスクを管理。&lt;/li&gt;
&lt;li&gt;ブランチ / Worktree 起動：新しいセッションでリポジトリブランチを選び、現在の作業ツリーか隔離 Worktree かを選択。&lt;/li&gt;
&lt;li&gt;右側のコード変更パネル：チャットしながら変更済みファイル、追加削除行、ワークスペース状態を確認。&lt;/li&gt;
&lt;li&gt;コード変更の可視化：AI による編集、Diff、実行過程を表示。&lt;/li&gt;
&lt;li&gt;権限と確認フロー：危険なコマンド、ツール呼び出し、AI の確認質問をデスクトップで承認。&lt;/li&gt;
&lt;li&gt;複数モデルプロバイダー：Anthropic 互換 API、第三者モデル、WebSearch fallback、ローカル設定をサポート。&lt;/li&gt;
&lt;li&gt;H5 リモートアクセス：一度きりの token でスマホや別端末から現在のデスクトップセッションへ接続。&lt;/li&gt;
&lt;li&gt;IM 連携：Telegram、Feishu、WeChat、DingTalk からリモート対話、プロジェクト切り替え、権限承認。&lt;/li&gt;
&lt;li&gt;スケジュールタスクと token 使用量：デスクトップで計画タスクを作成し、ローカル token 使用傾向を確認。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの機能を見ると、単なるコマンドライン代替ではなく「AI コーディングワークベンチ」に近いことがわかります。チャット、ファイル変更、権限、プロジェクト、リモート入口、モデル設定を同じ場所に置こうとしているわけです。&lt;/p&gt;
&lt;h2 id=&#34;インストールと起動方法&#34;&gt;インストールと起動方法
&lt;/h2&gt;&lt;p&gt;一般ユーザーは Releases からデスクトップ版インストーラーをダウンロードするのが向いています。&lt;/p&gt;
&lt;p&gt;README のデスクトップ版インストール手順は次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;GitHub Releases から macOS または Windows のインストーラーをダウンロードする。&lt;/li&gt;
&lt;li&gt;初回起動後、デスクトップ設定でモデルプロバイダー、API Key、デフォルトモデルを設定する。&lt;/li&gt;
&lt;li&gt;macOS でアプリを開けないと表示された場合は、インストールガイドに従って Gatekeeper 権限を処理する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;最新 release ページでは、&lt;code&gt;v0.2.6&lt;/code&gt; が &lt;code&gt;2026-05-13&lt;/code&gt; に公開されています。このバージョンは主に H5 モバイルアクセスの安全な復旧、デスクトップセッション管理、ファイル mention 検索、デスクトップ体験の細部改善を扱っています。&lt;/p&gt;
&lt;p&gt;ソースから CLI を起動したい場合、README には次のコマンドが示されています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bun install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./bin/claude-haha
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;この方法は、低レベル CLI、サーバー、自前の開発を調べたい人向けです。普通に使うならデスクトップ版のほうが直接的です。&lt;/p&gt;
&lt;h2 id=&#34;v026-の変更点&#34;&gt;v0.2.6 の変更点
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;v0.2.6&lt;/code&gt; の重点は、H5/LAN アクセスを一時的な開放状態から、明示的な有効化と token ペアリングモデルへ戻したことです。&lt;/p&gt;
&lt;p&gt;注目点は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;H5/LAN アクセスはローカルで明示的に有効化する必要がある。&lt;/li&gt;
&lt;li&gt;QR リンクには一度だけ表示される token が含まれる。&lt;/li&gt;
&lt;li&gt;リモート API、proxy、WebSocket は裸で公開されなくなった。&lt;/li&gt;
&lt;li&gt;Settings に独立した H5 Access ページが追加された。&lt;/li&gt;
&lt;li&gt;デスクトップのサイドバーに複数選択とセッション削除のための一括管理モードが追加された。&lt;/li&gt;
&lt;li&gt;デスクトップのファイル mention 検索が git-first になり、ignore ルールを守り、&lt;code&gt;node_modules&lt;/code&gt; やビルド成果物のノイズを減らす。&lt;/li&gt;
&lt;li&gt;ピュアホワイトテーマが追加され、長い URL がチャットレイアウトを壊す問題や、複数 tab 間で下書きが混ざる問題が修正された。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは、プロジェクトが「動く」段階を越えて、デスクトップ製品として必要な安全境界と日常的な使い勝手を補い始めていることを示しています。&lt;/p&gt;
&lt;p&gt;特に H5 アクセスについて、作者は release で明確に注意しています。H5 は個人または信頼できるチーム向けのブラウザアクセス入口であり、公開マルチテナントログインシステムではありません。実際に使うときは、インターネットに公開する SaaS 管理画面のように扱うべきではありません。&lt;/p&gt;
&lt;h2 id=&#34;computer-useagent-にデスクトップを操作させる&#34;&gt;Computer Use：Agent にデスクトップを操作させる
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;cc-haha&lt;/code&gt; のもう一つの大きな特徴は Computer Use です。&lt;/p&gt;
&lt;p&gt;プロジェクト文書によると、この機能は流出した Claude Code ソース内の Computer Use 内部実装を大きく改造したものです。公式実装は &lt;code&gt;@ant/computer-use-swift&lt;/code&gt; や &lt;code&gt;@ant/computer-use-input&lt;/code&gt; といった Anthropic 内部の非公開ネイティブモジュールに依存しており、公開入手できません。&lt;code&gt;cc-haha&lt;/code&gt; は低レベル操作層を Python bridge に置き換え、&lt;code&gt;pyautogui&lt;/code&gt;、&lt;code&gt;mss&lt;/code&gt;、&lt;code&gt;pyobjc&lt;/code&gt; などの公開ライブラリでシステム操作を実現しています。&lt;/p&gt;
&lt;p&gt;Computer Use が対応する操作には次のようなものがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;スクリーンショット：&lt;code&gt;screenshot&lt;/code&gt;、&lt;code&gt;zoom&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;マウス：クリック、ドラッグ、移動、スクロール、カーソル位置取得&lt;/li&gt;
&lt;li&gt;キーボード：文字入力、キー入力、キー長押し&lt;/li&gt;
&lt;li&gt;アプリ：アプリ起動、ディスプレイ切り替え&lt;/li&gt;
&lt;li&gt;権限：アプリ権限要求、許可済みアプリ一覧&lt;/li&gt;
&lt;li&gt;クリップボード：読み取りと書き込み&lt;/li&gt;
&lt;li&gt;その他：待機、バッチ操作&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;動作は「スクリーンショット - 分析 - 操作」のループです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;モデルがユーザーの依頼を受け取る。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;screenshot&lt;/code&gt; を呼び出して画面を取得する。&lt;/li&gt;
&lt;li&gt;モデルが視覚能力でボタン、入力欄、座標を識別する。&lt;/li&gt;
&lt;li&gt;クリック、入力、アプリ操作ツールを呼び出す。&lt;/li&gt;
&lt;li&gt;再度スクリーンショットを取り、結果を確認して次へ進む。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;文書を見る限り、完全対応している主なプラットフォームは macOS で、Apple Silicon と Intel の両方を含みます。Windows / Linux は理論上可能ですが、&lt;code&gt;pyobjc&lt;/code&gt; に関わるアプリ管理部分を各プラットフォーム向けに置き換える必要があり、現時点では完全対応ではありません。&lt;/p&gt;
&lt;p&gt;実行要件は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Bun &amp;gt;= 1.1.0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Python &amp;gt;= 3.8&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;macOS Accessibility 権限&lt;/li&gt;
&lt;li&gt;macOS Screen Recording 権限&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この種の機能は強力ですが、権限リスクも高くなります。AI にデスクトップアプリを操作させる場合、必要なアプリだけを明示的に許可し、関係ないウィンドウに機密情報を開いたままにしないほうがよいです。&lt;/p&gt;
&lt;h2 id=&#34;複数モデル接続anthropic-互換レイヤーを使う&#34;&gt;複数モデル接続：Anthropic 互換レイヤーを使う
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;cc-haha&lt;/code&gt; の通信基盤は引き続き Anthropic Messages API プロトコルです。プロジェクト文書では、LiteLLM をプロトコル変換プロキシとして使う方法が推奨されています。&lt;/p&gt;
&lt;p&gt;基本構造は次の通りです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-code-haha ──Anthropic协议──▶ LiteLLM Proxy ──OpenAI协议──▶ 目标模型 API
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;つまり、&lt;code&gt;cc-haha&lt;/code&gt; は Anthropic Messages API リクエストを送り、LiteLLM がそれを OpenAI Chat Completions などの形式へ変換し、OpenAI、DeepSeek、Ollama、その他のモデルサービスへ転送します。&lt;/p&gt;
&lt;p&gt;文書にある LiteLLM のインストール方法は次の通りです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s1&#34;&gt;&amp;#39;litellm[proxy]&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;その後、&lt;code&gt;litellm_config.yaml&lt;/code&gt; で OpenAI、DeepSeek、Ollama などのモデルを設定できます。プロキシ起動後、&lt;code&gt;.env&lt;/code&gt; または &lt;code&gt;~/.claude/settings.json&lt;/code&gt; に次を設定します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;sk-anything
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://localhost:4000
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_DEFAULT_SONNET_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_DEFAULT_HAIKU_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_DEFAULT_OPUS_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;API_TIMEOUT_MS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3000000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;DISABLE_TELEMETRY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;実用上の注意点もあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;drop_params: true&lt;/code&gt; が重要です。Anthropic の &lt;code&gt;thinking&lt;/code&gt; や &lt;code&gt;cache_control&lt;/code&gt; などのパラメータは OpenAI API には存在しないためです。&lt;/li&gt;
&lt;li&gt;Extended Thinking は Anthropic 固有機能なので、第三者モデルでは使えません。&lt;/li&gt;
&lt;li&gt;Prompt Caching も Anthropic ネイティブの形では機能しません。&lt;/li&gt;
&lt;li&gt;ツール呼び出しは Anthropic &lt;code&gt;tool_use&lt;/code&gt; から OpenAI function calling へ変換されるため、複雑なツール呼び出しでは互換性問題が出る可能性があります。&lt;/li&gt;
&lt;li&gt;ローカル Ollama の小さなモデルでは、このツール呼び出し中心の流れを安定して処理できない場合があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;したがって、複数モデル接続は可能ですが、すべてのモデルで同じ体験になるわけではありません。&lt;code&gt;cc-haha&lt;/code&gt; はモデルに対して、ツール呼び出し、コード理解、長いコンテキスト処理の能力をかなり要求します。&lt;/p&gt;
&lt;h2 id=&#34;向いている人&#34;&gt;向いている人
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;cc-haha&lt;/code&gt; は次のようなユーザーに向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code に慣れていて、デスクトップでセッション管理したい人。&lt;/li&gt;
&lt;li&gt;複数のリポジトリ、ブランチ、AI セッションを同時に扱う人。&lt;/li&gt;
&lt;li&gt;AI のファイル変更、Diff、ワークスペース状態を右側で直接見たい人。&lt;/li&gt;
&lt;li&gt;Computer Use を試し、Agent にデスクトップアプリを操作させたい人。&lt;/li&gt;
&lt;li&gt;Anthropic プロトコル経由で OpenAI、DeepSeek、Ollama などを接続したい人。&lt;/li&gt;
&lt;li&gt;スマホや IM からリモートでセッション確認や権限承認をしたい人。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;あまり向いていないのは次のような場合です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;安定した公式 Claude Code だけを使いたい。&lt;/li&gt;
&lt;li&gt;流出ソースという背景や著作権の不確実性を受け入れられない。&lt;/li&gt;
&lt;li&gt;ローカルツールに高いシステム権限を与えたくない。&lt;/li&gt;
&lt;li&gt;企業のコンプライアンス、監査、公式サポートが必要。&lt;/li&gt;
&lt;li&gt;API key、プロキシ、モデル互換、ローカルサービス設定に慣れていない。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;リスクと境界&#34;&gt;リスクと境界
&lt;/h2&gt;&lt;p&gt;この話では機能だけでなく、リスクも扱う必要があります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cc-haha&lt;/code&gt; の由来を考えると、これは普通のコミュニティ再実装プロジェクトではありません。README には、流出した Claude Code ソースコードをベースにしており、元のソースコードは Anthropic に帰属すると明記されています。これは著作権、コンプライアンス、長期保守の不確実性につながります。&lt;/p&gt;
&lt;p&gt;また、Computer Use、H5 リモートアクセス、IM 連携、ローカル権限承認はいずれも高い権限を持つ機能です。便利であるほど、境界を明確にする必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;信頼できないネットワークで H5 アクセスを開放しない。&lt;/li&gt;
&lt;li&gt;token を長期公開ログイン資格情報として扱わない。&lt;/li&gt;
&lt;li&gt;Agent に無関係な機密アプリを操作させない。&lt;/li&gt;
&lt;li&gt;本番環境や企業コンプライアンス環境で安易に使わない。&lt;/li&gt;
&lt;li&gt;第三者モデルプロキシ設定や API key を公開リポジトリに置かない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AI コーディングツールの構造、デスクトップワークフロー、Computer Use 実装を学ぶ目的なら、とても参考になります。長期の本番ワークフローに入れるなら、先に法務、権限、セキュリティ、保守のリスクを評価すべきです。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;cc-haha&lt;/code&gt; で最も注目すべき点は、「Claude Code を再現できるか」ではありません。Claude Code 型の AI コーディングツールを、デスクトップワークベンチの形へ押し出していることです。&lt;/p&gt;
&lt;p&gt;セッション、プロジェクト、Worktree、Diff、権限、リモートアクセス、Computer Use、複数モデルプロバイダー、スケジュールタスク、token 使用量統計が、1 つのデスクトップ体験にまとめられています。これは、AI コーディングツールの次の一歩が、モデル性能だけでなく、より完成度の高いワークフロー UI にもあることを示しています。&lt;/p&gt;
&lt;p&gt;ただし境界も明確です。これは Anthropic 公式製品ではなく、出自に敏感な背景があり、高権限機能は慎重に扱う必要があります。公式 Claude Code を安易に置き換えるものとしてではなく、AI コーディングツールの進化方向を観察するプロジェクトとして見るのが適切です。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub リポジトリ：&lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;最新 Release：&lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha/releases/tag/v0.2.6&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha/releases/tag/v0.2.6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Computer Use ドキュメント：&lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha/blob/main/docs/computer-use.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha/blob/main/docs/computer-use.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;第三者モデルドキュメント：&lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha/blob/main/docs/guide/third-party-models.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha/blob/main/docs/guide/third-party-models.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Codex /goal vs Claude Code /goal：長いタスクを完了条件まで自動で進める</title>
        <link>https://knightli.com/ja/2026/05/14/codex-goal-vs-claude-code-goal/</link>
        <pubDate>Thu, 14 May 2026 22:25:31 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/14/codex-goal-vs-claude-code-goal/</guid>
        <description>&lt;p&gt;&lt;code&gt;/goal&lt;/code&gt; は、AI コーディングツールにおける重要なコマンドになりつつあります。&lt;/p&gt;
&lt;p&gt;これは「モデルにもう少しコードを書かせる」ためのものではありません。より実用的な問題、つまりタスクに明確な完了条件があるとき、毎ターン止まってユーザーの「続けて」を待つのではなく、Agent が条件を満たすまで進み続けられるか、という問題を扱います。&lt;/p&gt;
&lt;p&gt;Codex CLI はすでに公式ドキュメントで実験的な &lt;code&gt;/goal&lt;/code&gt; を追加しています。Claude Code も独自の &lt;code&gt;/goal&lt;/code&gt; ドキュメントを公開し、複数ターンにまたがって作業を続けられる自動化機能として説明しています。名前は同じですが、プロダクトとしての方向性は完全には同じではありません。&lt;/p&gt;
&lt;h2 id=&#34;goal-は何を解決するのか&#34;&gt;&lt;code&gt;/goal&lt;/code&gt; は何を解決するのか
&lt;/h2&gt;&lt;p&gt;通常の AI コーディング対話は、だいたい「一問一答」です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ユーザーがタスクを出す。&lt;/li&gt;
&lt;li&gt;Agent が分析し、コードを変更し、テストを実行する。&lt;/li&gt;
&lt;li&gt;Agent が結果を報告する。&lt;/li&gt;
&lt;li&gt;ユーザーが次の行動を決める。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;この流れは短いタスクには向いています。しかし移行、リファクタリング、テスト修正、issue backlog の整理になると、かなり細切れになります。Agent は少しだけ進めて、また「続けて」と入力されるのを待つことがあります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/goal&lt;/code&gt; の考え方は、タスクを「次に何をするか」ではなく「最終的にどんな状態なら完了か」に変えることです。たとえば：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 完成登录模块迁移，所有 auth 测试通过，lint 无报错
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;この種の目標は長いタスクに向いています。テストが通る、ビルドが成功する、ファイル分割が終わる、キューが空になる、受け入れ条件を満たす、といった明確な終点があるからです。&lt;/p&gt;
&lt;h2 id=&#34;codex-の-goal実験機能で現在のスレッドに紐づく&#34;&gt;Codex の &lt;code&gt;/goal&lt;/code&gt;：実験機能で、現在のスレッドに紐づく
&lt;/h2&gt;&lt;p&gt;OpenAI の Codex CLI ドキュメントでは、&lt;code&gt;/goal&lt;/code&gt; は実験機能として扱われています。デフォルトの安定機能ではなく、先に &lt;code&gt;features.goals&lt;/code&gt; を有効にする必要があります。&lt;/p&gt;
&lt;p&gt;有効化する方法は 2 つあります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/experimental
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;または &lt;code&gt;config.toml&lt;/code&gt; に追加します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;features&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;goals&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;有効化後は、次のように使えます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal Finish the migration and keep tests green
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;よく使うコマンドは次の通りです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal pause
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal resume
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;OpenAI のドキュメントによると、Codex は goal を現在の active thread に付与し、より大きなタスクの進行中にその目標を追跡します。&lt;/p&gt;
&lt;p&gt;ここで重要なのは、Codex &lt;code&gt;/goal&lt;/code&gt; に対する公式ドキュメントの表現がかなり抑制的であることです。「長いタスクに実験的な目標を設定する」「現在のスレッドに目標を付与する」と説明していますが、Claude Code のドキュメントのように、各ターンの終了後に独立した evaluator が自動判定して次のターンへ進む、という説明まではしていません。そのため現時点では、Codex &lt;code&gt;/goal&lt;/code&gt; は完全に安定した無人実行モードではなく、実験中の長期タスク向け目標メカニズムとして見るのがよさそうです。&lt;/p&gt;
&lt;h2 id=&#34;claude-code-の-goal完了条件で駆動する複数ターン実行&#34;&gt;Claude Code の &lt;code&gt;/goal&lt;/code&gt;：完了条件で駆動する複数ターン実行
&lt;/h2&gt;&lt;p&gt;Claude Code の &lt;code&gt;/goal&lt;/code&gt; ドキュメントはより明確です。ユーザーが completion condition を設定すると、Claude はその条件が満たされるまで複数ターンにわたって作業を続けます。&lt;/p&gt;
&lt;p&gt;例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal all tests in test/auth pass and the lint step is clean
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Claude Code の仕組みは、おおまかに次のようなものです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;現在の turn が終わっても、すぐに制御をユーザーへ戻さない。&lt;/li&gt;
&lt;li&gt;小さく高速なモデルが、目標条件がすでに満たされたかを確認する。&lt;/li&gt;
&lt;li&gt;満たされていなければ、Claude が自動で次のターンを開始する。&lt;/li&gt;
&lt;li&gt;満たされていれば、goal は自動で解除され、transcript に完了状態が記録される。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり Claude Code の &lt;code&gt;/goal&lt;/code&gt; は、「完了条件を満たすまで自動で続ける」機能に近いものです。単に会話へ目標を貼り付けるだけではなく、「次のターンへ進むかどうか」を独立した評価ステップに任せています。&lt;/p&gt;
&lt;p&gt;Claude Code では、状態を直接確認することもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;状態には、目標条件、実行時間、評価済み turn 数、token 消費量、evaluator が最後に出した理由が表示されます。&lt;/p&gt;
&lt;p&gt;途中で止めたい場合は、次を使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;stop&lt;/code&gt;、&lt;code&gt;off&lt;/code&gt;、&lt;code&gt;reset&lt;/code&gt;、&lt;code&gt;none&lt;/code&gt;、&lt;code&gt;cancel&lt;/code&gt; も解除用の別名として使えます。目標を有効にした後でセッションが中断された場合でも、&lt;code&gt;--resume&lt;/code&gt; や &lt;code&gt;--continue&lt;/code&gt; で再開すると、active な goal を復元できます。ただし、経過時間、turn 数、token の基準値は再計算されます。&lt;/p&gt;
&lt;h2 id=&#34;最大の違い&#34;&gt;最大の違い
&lt;/h2&gt;&lt;p&gt;Codex と Claude Code はどちらも、AI コーディングを「単発の回答」から「長いタスクの実行」へ押し出しています。ただし &lt;code&gt;/goal&lt;/code&gt; の位置づけには違いがあります。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;比較項目&lt;/th&gt;
          &lt;th&gt;Codex CLI &lt;code&gt;/goal&lt;/code&gt;&lt;/th&gt;
          &lt;th&gt;Claude Code &lt;code&gt;/goal&lt;/code&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;状態&lt;/td&gt;
          &lt;td&gt;experimental&lt;/td&gt;
          &lt;td&gt;公式ドキュメントで単独ページとして説明&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;有効化&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;features.goals&lt;/code&gt; を有効化する必要がある&lt;/td&gt;
          &lt;td&gt;信頼済み workspace で直接利用可能&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;目標のスコープ&lt;/td&gt;
          &lt;td&gt;現在の active thread&lt;/td&gt;
          &lt;td&gt;現在の session&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;主な操作&lt;/td&gt;
          &lt;td&gt;set / view / pause / resume / clear&lt;/td&gt;
          &lt;td&gt;set / view / clear&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;自動判定&lt;/td&gt;
          &lt;td&gt;ドキュメントは目標の付与と追跡を強調&lt;/td&gt;
          &lt;td&gt;各ターン後に evaluator が判定すると明記&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;自動継続&lt;/td&gt;
          &lt;td&gt;公式表現は控えめ&lt;/td&gt;
          &lt;td&gt;条件未達なら自動で次のターンへ進む&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;向いている場面&lt;/td&gt;
          &lt;td&gt;Codex の長いタスクで目標コンテキストを維持したい場合&lt;/td&gt;
          &lt;td&gt;完了条件に向けて Claude Code に継続実行させたい場合&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;簡単に言えば、Codex の &lt;code&gt;/goal&lt;/code&gt; は「現在のスレッドに実験的な長期目標を付ける」ものに近いです。Claude Code の &lt;code&gt;/goal&lt;/code&gt; は「現在のセッションに検証可能な停止条件を設定し、満たされるまで自動で進める」ものに近いです。&lt;/p&gt;
&lt;h2 id=&#34;よい-goal-の書き方&#34;&gt;よい &lt;code&gt;/goal&lt;/code&gt; の書き方
&lt;/h2&gt;&lt;p&gt;どちらのツールでも、&lt;code&gt;/goal&lt;/code&gt; は曖昧な願望を書く場所ではありません。&lt;/p&gt;
&lt;p&gt;あまりよくない例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 把项目优化一下
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;よりよい例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 将 payment 模块迁移到新 API，npm test -- payment 退出码为 0，git diff 只包含 payment 相关文件
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;よい目標には通常、次の 3 つが含まれます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;明確な完了状態。&lt;/li&gt;
&lt;li&gt;実行可能な検証方法。&lt;/li&gt;
&lt;li&gt;守るべき境界。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;目標が大きい場合は、停止条件も加えるべきです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 修复 eslint 报错，npm run lint 退出码为 0；如果超过 20 轮仍未完成，停止并总结剩余问题
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは重要です。&lt;code&gt;/goal&lt;/code&gt; が強力になるほど、境界が必要になります。そうしないと Agent は「完了」を追い求めて、過剰にファイルを変更したり、長く走りすぎたり、token を使いすぎたり、本来なら質問すべき問題をそのまま進めてしまう可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;goal-が向いている場面&#34;&gt;&lt;code&gt;/goal&lt;/code&gt; が向いている場面
&lt;/h2&gt;&lt;p&gt;向いているもの：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;テスト修正：指定したテストが通るまで。&lt;/li&gt;
&lt;li&gt;コード移行：すべての呼び出し箇所を変更し、コンパイルが成功するまで。&lt;/li&gt;
&lt;li&gt;一括整理：特定の lint や型エラーがゼロになるまで。&lt;/li&gt;
&lt;li&gt;ドキュメント補完：指定したすべてのモジュールに説明が付くまで。&lt;/li&gt;
&lt;li&gt;issue キュー処理：特定タグの issue が処理済み、または明確に分類されるまで。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;向いていないもの：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;要件自体がまだ曖昧。&lt;/li&gt;
&lt;li&gt;頻繁なプロダクト判断が必要。&lt;/li&gt;
&lt;li&gt;高リスクな削除、データ移行、権限変更を含む。&lt;/li&gt;
&lt;li&gt;受け入れ条件が主観でしか判断できない。&lt;/li&gt;
&lt;li&gt;大量の無関係なモジュールをまたぐ。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;実用的な基準は、「どのコマンドを実行し、どんな結果を確認し、どのファイルに触れてはいけないか」を書けるなら &lt;code&gt;/goal&lt;/code&gt; に向いている、ということです。「もっとよくして」としか書けないなら、通常の対話、計画モード、人間のレビューを使うほうが安全です。&lt;/p&gt;
&lt;h2 id=&#34;ai-コーディングツールへの影響&#34;&gt;AI コーディングツールへの影響
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;/goal&lt;/code&gt; は明確な方向性を示しています。AI コーディングツールは「対話型アシスタント」から「継続実行できる作業単位」へ移りつつあります。&lt;/p&gt;
&lt;p&gt;以前は、Agent にタスクを任せるとき、ユーザーが近くで見守る必要がありました。詰まったら促し、テストが終わったら続行させ、エラーが出たらまた命令する。&lt;code&gt;/goal&lt;/code&gt; はこのやり取りを完了条件に圧縮し、次のターンで何をするかを Agent 自身に決めさせます。&lt;/p&gt;
&lt;p&gt;ただし、これはユーザー側への要求も高めます。これからの prompt はタスクを説明するだけでなく、受け入れ条件、検証コマンド、変更範囲、停止ルールも書く必要があります。言い換えると、ユーザーの仕事は「続けてと促す」ことから「何をもって完了とするかを定義する」ことへ移ります。&lt;/p&gt;
&lt;p&gt;Codex と Claude Code が &lt;code&gt;/goal&lt;/code&gt; に到達したということは、長いタスクを扱う Agent が、もはやバックグラウンドタスクやクラウドキューだけのものではないということです。ターミナル上のローカルなコーディングツールにも、より強い自律的な進行能力が求められ始めています。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Codex CLI と Claude Code はどちらも &lt;code&gt;/goal&lt;/code&gt; を持っていますが、現時点では同じ機能として単純に扱わないほうがよいです。&lt;/p&gt;
&lt;p&gt;Codex の &lt;code&gt;/goal&lt;/code&gt; はまだ実験機能で、&lt;code&gt;features.goals&lt;/code&gt; を有効にする必要があり、現在の Codex スレッドで長期目標を維持する仕組みとして見るのが自然です。Claude Code の &lt;code&gt;/goal&lt;/code&gt; は、「完了条件」と「自動継続」をより明確に結びつけ、独立した evaluator によって続行可否を判断します。&lt;/p&gt;
&lt;p&gt;日常開発では、この種のコマンドは明確な受け入れ基準を持つエンジニアリングタスクに向いています。要件判断やコードレビューを置き換えるものではありませんが、長いタスクにありがちな「続けて」「もう一度実行して」「テストが通るまで直して」という繰り返しを減らせます。&lt;/p&gt;
&lt;p&gt;本当に身につけるべきなのは、コマンドそのものではありません。タスクを、明確で、検証可能で、停止できる目標として書く力です。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;OpenAI Codex CLI Slash Commands：&lt;a class=&#34;link&#34; href=&#34;https://developers.openai.com/codex/cli/slash-commands&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://developers.openai.com/codex/cli/slash-commands&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Claude Code Goal ドキュメント：&lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/goal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://code.claude.com/docs/en/goal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude を Fusion 360 に接続する：AI で STEP モデルを修正する実例</title>
        <link>https://knightli.com/ja/2026/05/14/claude-fusion-360-mcp-step-model-edit/</link>
        <pubDate>Thu, 14 May 2026 20:58:04 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/14/claude-fusion-360-mcp-step-model-edit/</guid>
        <description>&lt;p&gt;Claude を Fusion 360 に接続すると、単に「考え方を説明する」だけでなく、CAD モデルの修正に直接参加できる。典型的な流れは、既存の STEP ファイルを開き、Claude に現在のモデルを読ませ、構造上の干渉を分析させ、寸法を計画させたうえで、Fusion プラグイン経由でモデリング変更を実行することだ。&lt;/p&gt;
&lt;p&gt;ここでは、遊星ギア分度器の修正を例に、Claude + Fusion 360 の基本的な使い方を整理する。&lt;/p&gt;
&lt;h2 id=&#34;まず-fusion-360-の-apimcp-サービスを有効にする&#34;&gt;まず Fusion 360 の API/MCP サービスを有効にする
&lt;/h2&gt;&lt;p&gt;Fusion 360 で最初に基本設定を行う。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;右上の &lt;code&gt;Preferences&lt;/code&gt; を開く。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;General&lt;/code&gt; または「通用」設定に入る。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;API&lt;/code&gt; オプションを見つける。&lt;/li&gt;
&lt;li&gt;MCP server を有効にする。&lt;/li&gt;
&lt;li&gt;ポート番号を控える。デフォルト例は &lt;code&gt;27182&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;次に Claude に戻り、&lt;code&gt;Connectors&lt;/code&gt; に入り、Fusion コネクタを見つけて、Fusion 360 のアドレスとポートを入力する。通常はデフォルトの &lt;code&gt;27182&lt;/code&gt; でよい。&lt;/p&gt;
&lt;p&gt;接続に成功すると、Claude は Fusion プラグインを通じて、現在開いているモデルとやり取りできる。&lt;/p&gt;
&lt;h2 id=&#34;step-ファイルを開き修正目標を明確にする&#34;&gt;STEP ファイルを開き、修正目標を明確にする
&lt;/h2&gt;&lt;p&gt;今回修正するのは、遊星ギア分度器の中の一つのギアだ。元の設計では、このギアは一本のねじを中心軸としてブラケットに固定されている。&lt;/p&gt;
&lt;p&gt;目標は、それをベアリング構造へ変更することだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;中心穴をベアリングに合わせる；&lt;/li&gt;
&lt;li&gt;周囲のねじ穴が拡大した中心穴と干渉しないようにする；&lt;/li&gt;
&lt;li&gt;ブラケット上のタッピングねじ穴も、ベアリング回転に適した軸構造へ調整する；&lt;/li&gt;
&lt;li&gt;最終モデルはスライサーに読み込め、3D プリントに使えるようにする。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;重要なのは、Claude に「ちょっと直して」とだけ言わないことだ。用途、組み立て方法、材料、製造方法をはっきり伝える必要がある。&lt;/p&gt;
&lt;h2 id=&#34;claude-はスクリーンショットで現在のモデルを理解できる&#34;&gt;Claude はスクリーンショットで現在のモデルを理解できる
&lt;/h2&gt;&lt;p&gt;Fusion プラグインはコマンドを実行するだけで、Claude にモデルを見せられないのではないか、と心配する人もいる。実際のテストでは、Claude はスクリーンショットを通じて現在のモデル状態を認識できた。&lt;/p&gt;
&lt;p&gt;このケースでは、Claude はギア構造を確認し、次のような作業を行えた。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ギアと中心穴を識別する；&lt;/li&gt;
&lt;li&gt;関連寸法を測定または推定する；&lt;/li&gt;
&lt;li&gt;ベアリング寸法を提案する；&lt;/li&gt;
&lt;li&gt;ベアリング取り付けに影響する構造を判断する；&lt;/li&gt;
&lt;li&gt;中心穴を拡大すると、周囲のねじ穴と幾何干渉が起きる可能性を見つける。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このステップは重要だ。Claude が文字の指示だけで盲目的に修正しているのではなく、現在のモデルビューと構造判断を組み合わせられることを示している。&lt;/p&gt;
&lt;h2 id=&#34;材料と加工方法は事前に伝える&#34;&gt;材料と加工方法は事前に伝える
&lt;/h2&gt;&lt;p&gt;最終的に 3D プリントするモデルなら、材料と工法を明確に Claude に伝える必要がある。&lt;/p&gt;
&lt;p&gt;たとえば PLA でプリントする場合、ベアリング穴を CNC 金属加工の公差そのままで設計してはいけない。直径 6mm のベアリングを圧入するなら、穴径を約 &lt;code&gt;6.1mm&lt;/code&gt; にすることを検討できる。この寸法が適切かどうかは、プリンター精度、材料収縮、スライサー設定、実際のテストによって調整する必要がある。&lt;/p&gt;
&lt;p&gt;材料を伝えないと、Claude は CNC 加工の考え方で寸法を出す可能性がある。その場合、3D プリントでは穴が小さすぎ、後の組み立てが難しくなる。&lt;/p&gt;
&lt;p&gt;プロンプトには次のように書くとよい。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;このモデルは FDM 3D プリント用で、材料は PLA です。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;目標は直径 6mm のベアリングを取り付けることで、プリント公差と圧入を考慮してください。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CNC 金属加工の公差として扱わないでください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;claude-にギア構造を修正させる&#34;&gt;Claude にギア構造を修正させる
&lt;/h2&gt;&lt;p&gt;目標が明確になったら、Claude に具体的な修正を実行させる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;中心穴を拡大する；&lt;/li&gt;
&lt;li&gt;干渉する周囲のねじ穴を調整する；&lt;/li&gt;
&lt;li&gt;ベアリング取り付け座を追加する；&lt;/li&gt;
&lt;li&gt;エッジに面取りを加える；&lt;/li&gt;
&lt;li&gt;ギア本体と重要な噛み合い構造は維持する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このケースでは、Claude はまず計画を出し、その後 Fusion 360 を呼び出してモデリング操作を行った。たとえば、元のねじ穴と中心穴が衝突すると判断した後、穴位置を少し外側へ移動し、ベアリング取り付け空間を壊さないようにした。&lt;/p&gt;
&lt;p&gt;修正後は、モデルを確認する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;中心のベアリング座が正しく形成されているか；&lt;/li&gt;
&lt;li&gt;周囲の穴が機能を維持しているか；&lt;/li&gt;
&lt;li&gt;ギア構造が誤って壊れていないか；&lt;/li&gt;
&lt;li&gt;面取りが組み立てに影響しないか；&lt;/li&gt;
&lt;li&gt;オーバーハング、薄肉、スライス上のリスクがないか。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;ブラケットも一緒に修正する&#34;&gt;ブラケットも一緒に修正する
&lt;/h2&gt;&lt;p&gt;ギアだけを変更しても足りない。元のブラケットにはタッピングねじ用の取り付け穴がある。ギア中心をベアリングに変更するなら、ブラケット側もベアリング軸構造へ合わせる必要がある。&lt;/p&gt;
&lt;p&gt;Claude にブラケットにも同様の修正をさせられる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;全体の取り付け位置を維持する；&lt;/li&gt;
&lt;li&gt;元のタッピングねじ穴を円柱状の軸に変更する；&lt;/li&gt;
&lt;li&gt;軸の直径と高さを制御する；&lt;/li&gt;
&lt;li&gt;ベアリング回転のための空間を確保する；&lt;/li&gt;
&lt;li&gt;ブラケットの他構造との干渉を避ける。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうしてプリントすると、ギアはベアリングにスムーズに圧入でき、ブラケットは新しい回転中心を提供できる。最終的には、ねじ固定の構造が、より滑らかなベアリング回転構造へ変わる。&lt;/p&gt;
&lt;h2 id=&#34;エクスポートスライスプリント検証&#34;&gt;エクスポート、スライス、プリント検証
&lt;/h2&gt;&lt;p&gt;CAD 修正が終わったら、実際の製造フローに進む必要がある。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Fusion 360 から修正後のモデルをエクスポートする。&lt;/li&gt;
&lt;li&gt;スライサーに読み込む。&lt;/li&gt;
&lt;li&gt;穴、薄肉、オーバーハング、サポートを確認する。&lt;/li&gt;
&lt;li&gt;ギアとブラケットをプリントする。&lt;/li&gt;
&lt;li&gt;実際にベアリングを圧入する。&lt;/li&gt;
&lt;li&gt;回転が滑らかか確認する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;AI が修正した CAD 結果は、画面上のモデルがきれいかどうかだけで判断してはいけない。必ずプリントして検証する必要がある。特にベアリング、穴位置、スナップ、ギアのような機械構造では、0.1mm レベルの誤差が、組み立てられるか、滑らかに回るかを決める。&lt;/p&gt;
&lt;h2 id=&#34;使用上の提案&#34;&gt;使用上の提案
&lt;/h2&gt;&lt;p&gt;Claude + Fusion 360 は次のようなタスクに向いている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;既存 STEP モデルへの局所的な改造；&lt;/li&gt;
&lt;li&gt;穴位置、面取り、ブラケット、取り付け座の調整；&lt;/li&gt;
&lt;li&gt;ねじ固定をベアリング、スナップ、ピン構造へ変更する；&lt;/li&gt;
&lt;li&gt;3D プリントモデルの公差補正；&lt;/li&gt;
&lt;li&gt;複数の改版案を素早く生成する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし、何も確認せずに最終部品を直接出す用途には向かない。より安定した流れは次の通りだ。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;人間が組み立て目標と材料工法を定義する。&lt;/li&gt;
&lt;li&gt;Claude が構造を分析し、修正案を出す。&lt;/li&gt;
&lt;li&gt;Claude が Fusion を呼び出してモデリングを実行する。&lt;/li&gt;
&lt;li&gt;人間が重要寸法と干渉を確認する。&lt;/li&gt;
&lt;li&gt;小さな試作品をプリントして検証する。&lt;/li&gt;
&lt;li&gt;実物の結果に基づいて再度イテレーションする。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Claude を Fusion 360 に接続する価値は、CAD の基礎知識を置き換えることではない。「既存モデルの局所修正」を速くすることにある。&lt;/p&gt;
&lt;p&gt;目標、材料、寸法、公差、組み立て方法を明確に伝えれば、モデルを読み、干渉を見つけ、構造を修正し、面取りを追加し、プリント可能な状態へ進める手助けができる。3D プリント、オープンソース機械部品の改造、個人工房での小ロット試作において、この AI CAD ワークフローはすでに実用的だ。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Codex は中国系 LLM とどう接続する？CCX で OpenAI 互換 API を一元管理する</title>
        <link>https://knightli.com/ja/2026/05/13/ccx-ai-api-proxy-gateway/</link>
        <pubDate>Wed, 13 May 2026 23:20:40 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/13/ccx-ai-api-proxy-gateway/</guid>
        <description>&lt;p&gt;CCX は AI API プロキシ兼プロトコル変換ゲートウェイです。Claude Messages、OpenAI Chat Completions、OpenAI Images、Codex Responses、Gemini API を 1 つのサービス入口にまとめ、チャネル、キー、モデルマッピング、優先度、フェイルオーバー、トラフィック監視を設定する Web 管理画面も提供します。&lt;/p&gt;
&lt;p&gt;Claude、OpenAI、Gemini、Codex を同時に使っている場合や、OpenAI API 互換の上流サービスを複数維持している場合、CCX の価値は入口と管理の一元化にあります。クライアントは 1 つのサービスアドレスへ接続し、後続の上流チャネルは CCX が選択します。&lt;/p&gt;
&lt;p&gt;プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/BenedictKing/ccx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/BenedictKing/ccx&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;ccx-が解決すること&#34;&gt;CCX が解決すること
&lt;/h2&gt;&lt;p&gt;複数の AI API を混在させると、次の問題が起きやすくなります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロバイダーごとにパス、認証方式、リクエスト形式が異なる。&lt;/li&gt;
&lt;li&gt;同じ種類のモデルでも複数の上流があり、base URL や API key を手動で切り替える必要がある。&lt;/li&gt;
&lt;li&gt;ある key やチャネルが失敗したとき、クライアント側では自動でバックアップへ切り替わらないことが多い。&lt;/li&gt;
&lt;li&gt;チーム利用では、モデル許可リスト、プロキシ、カスタムヘッダー、呼び出しログの集中管理が難しい。&lt;/li&gt;
&lt;li&gt;Claude、Gemini、OpenAI Chat、画像 API、Codex Responses を同時に扱うと設定が散らばる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CCX はこれらの差異をプロキシ層へ集約します。フロントエンドツール、スクリプト、業務サービスは CCX だけにアクセスし、CCX が API 種別、モデル、チャネル状態、優先度、ヘルス状態に基づいて適切な上流へ転送します。&lt;/p&gt;
&lt;h2 id=&#34;対応エンドポイント&#34;&gt;対応エンドポイント
&lt;/h2&gt;&lt;p&gt;CCX は統一されたバックエンド入口を提供します。デフォルトポートは &lt;code&gt;3000&lt;/code&gt; です。主なパスは次の通りです：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GET  /                         -&amp;gt; Web 管理画面
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GET  /health                   -&amp;gt; ヘルスチェック
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/api/*                         -&amp;gt; 管理 API
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1/messages              -&amp;gt; Claude Messages プロキシ
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1/chat/completions      -&amp;gt; OpenAI Chat プロキシ
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1/responses             -&amp;gt; Codex Responses プロキシ
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1/images/generations    -&amp;gt; OpenAI Images 生成
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1/images/edits          -&amp;gt; OpenAI Images 編集
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1/images/variations     -&amp;gt; OpenAI Images バリエーション
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GET  /v1/models                -&amp;gt; モデル一覧
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1beta/models/*          -&amp;gt; Gemini プロキシ
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;つまり、1 種類のプロトコルだけをプロキシするのではなく、Messages、Chat、Responses、Gemini、Images というよく使われる AI API 種別を個別のチャネルとして管理します。プロトコルごとにヘルス状態やログ空間が分かれるため、トラブルシュートしやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;アーキテクチャの考え方&#34;&gt;アーキテクチャの考え方
&lt;/h2&gt;&lt;p&gt;CCX は Go バックエンドと Vue 3 フロントエンドで構成されています。フロントエンドのビルド成果物はバックエンドバイナリに埋め込まれるため、単一ポートでデプロイできます。同じサービスが Web UI、管理 API、プロキシ API を提供します。&lt;/p&gt;
&lt;p&gt;リクエストの流れは概ね次の通りです：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Client -&amp;gt; Auth Middleware -&amp;gt; Route Handler -&amp;gt; Channel Scheduler -&amp;gt; Provider / Converter -&amp;gt; Upstream API -&amp;gt; Metrics / Channel Logs -&amp;gt; Client Response
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;主要モジュールの役割：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;handlers&lt;/code&gt;: 各プロトコルのリクエストと管理操作を受け付ける。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;providers&lt;/code&gt;: 上流 API のリクエストとレスポンス処理をラップする。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;converters&lt;/code&gt;: Responses などの場面でプロトコル変換を行う。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scheduler&lt;/code&gt;: 優先度、プロモーション期間、ヘルス状態、サーキットブレーカー状態、セッション親和性に基づいてチャネルを選ぶ。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;metrics&lt;/code&gt;: リクエスト数、成功率、遅延、ログ、サーキットブレーカー状態を記録する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;config&lt;/code&gt;: ランタイム設定を管理し、ホットリロードとバックアップをサポートする。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この設計の要点は、すべての API を無理に 1 つの形式へ変換することではありません。プロトコル種別ごとに代理し、管理、スケジューリング、ログ、認証を統一することです。&lt;/p&gt;
&lt;h2 id=&#34;ccx-と-codexbridge-の違い&#34;&gt;CCX と CodexBridge の違い
&lt;/h2&gt;&lt;p&gt;CCX と CodexBridge はどちらも Codex と OpenAI 互換 API に関係しますが、解決する問題が違います。&lt;/p&gt;
&lt;p&gt;CodexBridge は専用の Codex ブリッジに近いツールです。目的は Codex CLI/SDK を OpenAI 互換の &lt;code&gt;/v1/chat/completions&lt;/code&gt; サービスとして公開し、OpenWebUI、Cherry Studio、スクリプト、その他の OpenAI 互換クライアントからローカル Codex を呼び出せるようにすることです。つまり、CodexBridge の焦点は「Codex を外へ出す」ことです。&lt;/p&gt;
&lt;p&gt;CCX は統一 AI API ゲートウェイに近いツールです。Codex Responses だけでなく、Claude Messages、OpenAI Chat、OpenAI Images、Gemini API も扱い、Web 管理画面、チャネル優先度、フェイルオーバー、ログ監視、複数 key 管理を提供します。つまり、CCX の焦点は「複数のモデルとプロバイダーをまとめて管理する」ことです。&lt;/p&gt;
&lt;p&gt;簡単な比較：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;項目&lt;/th&gt;
          &lt;th&gt;CodexBridge&lt;/th&gt;
          &lt;th&gt;CCX&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;中心的な位置づけ&lt;/td&gt;
          &lt;td&gt;Codex ローカルブリッジ&lt;/td&gt;
          &lt;td&gt;マルチプロトコル AI API ゲートウェイ&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;主な目的&lt;/td&gt;
          &lt;td&gt;Codex を OpenAI 互換エンドポイントにする&lt;/td&gt;
          &lt;td&gt;Claude、OpenAI、Gemini、Codex などのチャネルを一元管理する&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;管理画面&lt;/td&gt;
          &lt;td&gt;API サービス自体が中心&lt;/td&gt;
          &lt;td&gt;Web 管理画面を提供&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;複数チャネル調度&lt;/td&gt;
          &lt;td&gt;主目的ではない&lt;/td&gt;
          &lt;td&gt;チャネル優先度、フェイルオーバー、ログ監視に対応&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;向いている場面&lt;/td&gt;
          &lt;td&gt;ローカルまたは単一サービスで Codex を呼ぶ&lt;/td&gt;
          &lt;td&gt;チーム、多数の key、複数プロバイダー、複数プロトコル&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Codex を OpenWebUI や Cherry Studio に接続したいだけなら CodexBridge のほうが直接的です。Codex、Claude、Gemini、DeepSeek、Qwen、Kimi など複数の上流をまとめて管理したいなら CCX が向いています。&lt;/p&gt;
&lt;h2 id=&#34;クイックデプロイ&#34;&gt;クイックデプロイ
&lt;/h2&gt;&lt;p&gt;最も簡単なのはバイナリをダウンロードする方法です。ダウンロード後、同じディレクトリに &lt;code&gt;.env&lt;/code&gt; を作成します：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PROXY_ACCESS_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your-proxy-access-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PORT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ENABLE_WEB_UI&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;APP_UI_LANGUAGE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;zh-CN
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;起動後、次へアクセスします：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:3000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Windows で WSL、Docker、PowerShell などから &lt;code&gt;localhost&lt;/code&gt; に接続できない場合は、Windows ホストの LAN IPv4 アドレスを使います。例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://192.168.1.23:3000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;CCX はデフォルトで &lt;code&gt;:PORT&lt;/code&gt; により全ネットワークインターフェースを待ち受けるため、LAN に公開する場合はアクセス制御に注意してください。&lt;/p&gt;
&lt;h2 id=&#34;docker-デプロイ&#34;&gt;Docker デプロイ
&lt;/h2&gt;&lt;p&gt;Docker は常駐サービスに向いています：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name ccx &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 3000:3000 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;PROXY_ACCESS_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your-proxy-access-key &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;APP_UI_LANGUAGE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;zh-CN &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v &lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;pwd&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;/.config:/app/.config &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  crpi-i19l8zl0ugidq97v.cn-hangzhou.personal.cr.aliyuncs.com/bene/ccx:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;リポジトリに &lt;code&gt;docker-compose.yml&lt;/code&gt; がある場合は次でも起動できます：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;自動更新が必要なら Watchtower 設定を重ねます：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose -f docker-compose.yml -f docker-compose.watchtower.yml up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;デプロイ後、&lt;code&gt;.config&lt;/code&gt; ディレクトリにはランタイム設定と永続データが保存されます。コンテナ再作成時に設定を失わないよう、ホストへマウントするのがおすすめです。&lt;/p&gt;
&lt;h2 id=&#34;ソースから実行&#34;&gt;ソースから実行
&lt;/h2&gt;&lt;p&gt;開発またはカスタムビルドではソースから実行できます：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/BenedictKing/ccx
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ccx
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp backend-go/.env.example backend-go/.env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;よく使うコマンド：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make dev
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make run
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make build
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make frontend-dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;フロントエンドのみの開発：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; frontend
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bun install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bun run dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;バックエンドのみの開発：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; backend-go
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;主な環境変数&#34;&gt;主な環境変数
&lt;/h2&gt;&lt;p&gt;最小構成は通常次のようになります：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PORT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ENV&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;production
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ENABLE_WEB_UI&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PROXY_ACCESS_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your-proxy-access-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ADMIN_ACCESS_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your-admin-secret-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;APP_UI_LANGUAGE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;zh-CN
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;LOG_LEVEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;info
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;REQUEST_TIMEOUT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;300000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ポイント：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PROXY_ACCESS_KEY&lt;/code&gt; はプロキシ API 用で、必ず変更します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ADMIN_ACCESS_KEY&lt;/code&gt; は Web 管理画面と &lt;code&gt;/api/*&lt;/code&gt; 用で、プロキシ用キーとは分けるべきです。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ENABLE_WEB_UI&lt;/code&gt; は管理画面の有効化を制御します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;REQUEST_TIMEOUT&lt;/code&gt; はリクエストタイムアウトです。長文コンテキストや画像タスクでは増やせます。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LOG_LEVEL&lt;/code&gt; はログレベルです。本番環境では通常 &lt;code&gt;info&lt;/code&gt; または &lt;code&gt;warn&lt;/code&gt; を使います。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;リクエスト本文サイズを制限したい場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;MAX_REQUEST_BODY_SIZE_MB&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;50&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;画像編集、base64 画像、マルチモーダルリクエストでは本文サイズが大きくなりがちです。&lt;/p&gt;
&lt;h2 id=&#34;チャネル編成とフェイルオーバー&#34;&gt;チャネル編成とフェイルオーバー
&lt;/h2&gt;&lt;p&gt;CCX の管理画面では複数チャネルを設定でき、各チャネルに次のような項目を指定できます：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;上流サービス種別。&lt;/li&gt;
&lt;li&gt;API key または複数 key のローテーション。&lt;/li&gt;
&lt;li&gt;プロキシアドレス。&lt;/li&gt;
&lt;li&gt;カスタムリクエストヘッダー。&lt;/li&gt;
&lt;li&gt;モデル許可リスト。&lt;/li&gt;
&lt;li&gt;ルートプレフィックス。&lt;/li&gt;
&lt;li&gt;優先度。&lt;/li&gt;
&lt;li&gt;ヘルスチェックとサーキットブレーカー復旧。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;スケジューリングでは、チャネル状態、優先度、プロモーション期間、Trace 親和性、サーキットブレーカー状態、利用可能な key を総合的に考慮します。簡単に言うと：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;通常は優先度の高いチャネルが先に使われる。&lt;/li&gt;
&lt;li&gt;あるチャネルが失敗するとバックアップへフェイルオーバーできる。&lt;/li&gt;
&lt;li&gt;サーキットブレーカーにより、明らかに使えない上流へ打ち続けることを避ける。&lt;/li&gt;
&lt;li&gt;Trace 親和性により、同種のセッションをなるべく適切なチャネルに維持する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは複数 key、複数プロバイダー、複数地域の上流がある場合に便利です。個人の軽量利用なら、1 つのチャネルだけを設定して Web UI 付きプロキシ層として使うこともできます。&lt;/p&gt;
&lt;h2 id=&#34;ログと監視&#34;&gt;ログと監視
&lt;/h2&gt;&lt;p&gt;CCX はチャネル指標とリクエストログを提供します。確認できるもの：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;リクエスト数。&lt;/li&gt;
&lt;li&gt;成功率。&lt;/li&gt;
&lt;li&gt;失敗率。&lt;/li&gt;
&lt;li&gt;平均遅延。&lt;/li&gt;
&lt;li&gt;モデル別の履歴データ。&lt;/li&gt;
&lt;li&gt;チャネル状態とサーキットブレーカー状態。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本番環境では控えめなログ設定がよいです：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ENV&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;production
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;LOG_LEVEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;info
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ENABLE_REQUEST_LOGS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ENABLE_RESPONSE_LOGS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これにより基本的なリクエスト情報を残しつつ、完全なレスポンス内容をログに書かないようにできます。調査時には一時的に詳細ログを有効化できますが、終わったら戻すべきです。特に本番でリクエスト本文とレスポンス本文を長期出力し続けるのは避けます。&lt;/p&gt;
&lt;h2 id=&#34;セキュリティ上の注意&#34;&gt;セキュリティ上の注意
&lt;/h2&gt;&lt;p&gt;CCX はプロキシゲートウェイであり、上流 API key を保存します。したがって「動けばよい」だけで終わらせるべきではありません。少なくとも：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;デフォルトまたは短すぎる &lt;code&gt;PROXY_ACCESS_KEY&lt;/code&gt; を使わない。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ADMIN_ACCESS_KEY&lt;/code&gt; を別に設定する。&lt;/li&gt;
&lt;li&gt;Web 管理画面を直接インターネットへ公開しない。&lt;/li&gt;
&lt;li&gt;公開が必要な場合は、リバースプロキシ、VPN、アクセス制御、SSO の後ろに置く。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.env&lt;/code&gt;、&lt;code&gt;.config&lt;/code&gt;、ログファイルを Git にコミットしない。&lt;/li&gt;
&lt;li&gt;本番環境で完全なリクエスト本文とレスポンス本文のログを長期的に有効化しない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ランダムキーは次のように生成できます：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PROXY_ACCESS_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;openssl rand -base64 32&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ADMIN_ACCESS_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;openssl rand -base64 32&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;向いている人&#34;&gt;向いている人
&lt;/h2&gt;&lt;p&gt;CCX は次のような場面に向いています：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude、OpenAI、Gemini、Codex、画像 API を同時に維持している。&lt;/li&gt;
&lt;li&gt;複数の API key があり、ローテーション、分流、フェイルオーバーが必要。&lt;/li&gt;
&lt;li&gt;設定ファイルを手で編集するのではなく Web UI で上流チャネルを管理したい。&lt;/li&gt;
&lt;li&gt;各チャネルの成功率、遅延、リクエストログを観察したい。&lt;/li&gt;
&lt;li&gt;チームへ統一された AI API 入口を提供したい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;自分のマシンで単一モデルをたまに呼ぶだけなら、公式 SDK や単一の OpenAI 互換プロキシのほうが簡単です。CCX の強みは、複数チャネル、複数プロトコル、統一運用にあります。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;CCX は AI API ゲートウェイであり、特定モデルのクライアントではありません。Claude Messages、OpenAI Chat、OpenAI Images、Codex Responses、Gemini を 1 つのプロキシ層にまとめ、チャネル編成、フェイルオーバー、ログ監視、Web 管理画面を提供します。&lt;/p&gt;
&lt;p&gt;個人利用では API アドレスやキーの切り替えを減らせます。チームや長期運用サービスでは、軽量な AI ゲートウェイに近い存在です。本番導入前には、モデル設定だけでなく、キー、管理入口、ログレベル、チャネル優先度、フェイルオーバー戦略も整える必要があります。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/BenedictKing/ccx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/BenedictKing/ccx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;アーキテクチャ説明：&lt;a class=&#34;link&#34; href=&#34;https://github.com/BenedictKing/ccx/blob/main/ARCHITECTURE.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/BenedictKing/ccx/blob/main/ARCHITECTURE.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;環境変数説明：&lt;a class=&#34;link&#34; href=&#34;https://github.com/BenedictKing/ccx/blob/main/ENVIRONMENT.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/BenedictKing/ccx/blob/main/ENVIRONMENT.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Codex は中国系 LLM とどう接続する？OpenAI 互換 API と CodexBridge の使いどころ</title>
        <link>https://knightli.com/ja/2026/05/13/codexbridge-openai-compatible-api/</link>
        <pubDate>Wed, 13 May 2026 23:08:28 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/13/codexbridge-openai-compatible-api/</guid>
        <description>&lt;p&gt;CodexBridge は、Codex CLI/SDK を OpenAI 互換の HTTP サービスとして公開するローカルブリッジです。これにより、これまでターミナル中心だった Codex を、OpenWebUI、Cherry Studio、スクリプト、自動化システム、または OpenAI Chat Completions 互換クライアントから呼び出せます。&lt;/p&gt;
&lt;p&gt;中心となるエンドポイントは &lt;code&gt;/v1/chat/completions&lt;/code&gt; と &lt;code&gt;/v1/models&lt;/code&gt; です。前者は会話を処理し、通常の同期レスポンスと SSE ストリーミングをサポートします。後者は OpenAI 風のモデル一覧として利用できます。すでに OpenAI API に対応しているツールなら、基本的には base URL、API key、モデル名を変更するだけで済みます。&lt;/p&gt;
&lt;p&gt;プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/begonia599/CodexBridge&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/begonia599/CodexBridge&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;向いている用途&#34;&gt;向いている用途
&lt;/h2&gt;&lt;p&gt;CodexBridge は、Codex を既存の AI クライアントやワークフローに組み込みたい場合に向いています。たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenWebUI や Cherry Studio で Codex を直接選びたい。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;curl&lt;/code&gt;、Python、Node.js などのスクリプトからローカル Codex を呼びたい。&lt;/li&gt;
&lt;li&gt;1 つのフロントエンドから OpenAI、Ollama、他の互換 API、Codex を同時に扱いたい。&lt;/li&gt;
&lt;li&gt;Codex のローカルスレッド、サンドボックス、作業ディレクトリ、承認ポリシーを維持したい。&lt;/li&gt;
&lt;li&gt;社内ツールに統一された &lt;code&gt;/v1/chat/completions&lt;/code&gt; 入口を提供したい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは新しい LLM ではなく、Codex CLI を完全に置き換えるフロントエンドでもありません。より正確にはアダプター層です。上流はあくまで Codex で、ブリッジが OpenAI 風のリクエストを Codex が扱える会話入力に変換します。&lt;/p&gt;
&lt;h2 id=&#34;基本環境&#34;&gt;基本環境
&lt;/h2&gt;&lt;p&gt;必要なもの：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Node.js 18 以上。&lt;/li&gt;
&lt;li&gt;インストール済みでログイン済みの Codex CLI。&lt;/li&gt;
&lt;li&gt;npm。好みに応じて pnpm / yarn でも構いません。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ソースからの基本的なデプロイ手順：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/begonia599/CodexBridge
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; codexbridge
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env .env.local
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;その後、&lt;code&gt;.env&lt;/code&gt; または &lt;code&gt;.env.local&lt;/code&gt; を編集し、API key、デフォルトモデル、作業ディレクトリ、サンドボックスモード、ネットワーク権限などを設定します。&lt;/p&gt;
&lt;p&gt;HTTP サービスを起動します：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run codex:server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;デフォルトポートは &lt;code&gt;8080&lt;/code&gt; で、&lt;code&gt;PORT&lt;/code&gt; で変更できます。起動後は次のエンドポイントを利用できます：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GET /health
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1/chat/completions
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GET /v1/models
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;cli-会話モード&#34;&gt;CLI 会話モード
&lt;/h2&gt;&lt;p&gt;HTTP サービスのほかに、軽量な CLI も用意されています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run codex:chat
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;CLI では自然言語を直接入力して Codex と対話できます。よく使うコマンドは次の 2 つです：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/reset&lt;/code&gt;: 新しい Codex スレッドを作成する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/exit&lt;/code&gt;: CLI を終了する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;現在のスレッド ID は &lt;code&gt;.codex_thread.json&lt;/code&gt; に保存されます。次回 CLI を起動したときにこのファイルが残っていれば、以前の会話を続けられます。&lt;/p&gt;
&lt;h2 id=&#34;http-呼び出し例&#34;&gt;HTTP 呼び出し例
&lt;/h2&gt;&lt;p&gt;最小構成のリクエストは次のようになります：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl http://localhost:8080/v1/chat/completions &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -H &lt;span class=&#34;s2&#34;&gt;&amp;#34;content-type: application/json&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -H &lt;span class=&#34;s2&#34;&gt;&amp;#34;authorization: Bearer 123321&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;{&amp;#34;model&amp;#34;:&amp;#34;gpt-5-codex:medium&amp;#34;,&amp;#34;session_id&amp;#34;:&amp;#34;demo&amp;#34;,&amp;#34;messages&amp;#34;:[{&amp;#34;role&amp;#34;:&amp;#34;user&amp;#34;,&amp;#34;content&amp;#34;:&amp;#34;ls&amp;#34;}]}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;注意点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;authorization&lt;/code&gt; の token は &lt;code&gt;CODEX_BRIDGE_API_KEY&lt;/code&gt; と一致している必要があります。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;model&lt;/code&gt; には &lt;code&gt;gpt-5-codex:medium&lt;/code&gt; や &lt;code&gt;gpt-5-codex:high&lt;/code&gt; のように推論レベルを付けられます。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;session_id&lt;/code&gt; は会話を紐付け、同じ Codex スレッドを再利用するために使います。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ストリーミング出力が必要な場合は &lt;code&gt;stream: true&lt;/code&gt; を追加します：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -N http://localhost:8080/v1/chat/completions &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -H &lt;span class=&#34;s2&#34;&gt;&amp;#34;content-type: application/json&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -H &lt;span class=&#34;s2&#34;&gt;&amp;#34;authorization: Bearer 123321&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;{&amp;#34;model&amp;#34;:&amp;#34;gpt-5-codex:high&amp;#34;,&amp;#34;session_id&amp;#34;:&amp;#34;stream&amp;#34;,&amp;#34;stream&amp;#34;:true,&amp;#34;messages&amp;#34;:[{&amp;#34;role&amp;#34;:&amp;#34;user&amp;#34;,&amp;#34;content&amp;#34;:&amp;#34;Node.js プロジェクトの作り方を段階的に説明してください&amp;#34;}]}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;OpenAI のストリーミング応答に対応したクライアントなら、通常のチャットに近い体験になります。&lt;/p&gt;
&lt;h2 id=&#34;セッション永続化&#34;&gt;セッション永続化
&lt;/h2&gt;&lt;p&gt;CodexBridge の重要な機能の 1 つがセッションマッピングです。リクエストでは次のフィールドからセッション ID を渡せます：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;session_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;conversation_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;thread_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;user&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ヘッダーから渡すこともできます：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;x-session-id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;session-id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x-conversation-id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x-thread-id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x-user-id&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本番環境では次を有効にするのがおすすめです：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_REQUIRE_SESSION_ID&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これによりすべてのリクエストにセッション ID が必須となり、別ユーザーや別チャットウィンドウの文脈が混ざるのを避けられます。ブリッジ側のマッピングは &lt;code&gt;.codex_threads.json&lt;/code&gt; に保存されます。このファイルを削除するとブリッジ側の対応関係をリセットできますが、Codex 自体のスレッドは &lt;code&gt;~/.codex/sessions&lt;/code&gt; に残ります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CODEX_REQUIRE_SESSION_ID=false&lt;/code&gt; でリクエストにセッション ID がない場合、ブリッジは現在の &lt;code&gt;messages&lt;/code&gt; を一回限りの入力として Codex に渡します。これは一時的な呼び出しには便利ですが、長い会話には向きません。&lt;/p&gt;
&lt;h2 id=&#34;マルチモーダル入力&#34;&gt;マルチモーダル入力
&lt;/h2&gt;&lt;p&gt;CodexBridge は OpenAI 風の content block をサポートし、画像を Codex が扱える &lt;code&gt;local_image&lt;/code&gt; 入力に変換します。&lt;/p&gt;
&lt;p&gt;リモート画像：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;image_url&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;image_url&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;url&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://example.com/demo.png&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ローカル画像：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;local_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;path&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;./images/demo.png&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;リモートリソースは一時ディレクトリへダウンロードされ、ターン終了後に削除されます。実運用ではリクエスト本文のサイズに注意してください。特に画像を base64 で送る場合は、&lt;code&gt;CODEX_JSON_LIMIT&lt;/code&gt; を増やす必要があるかもしれません。&lt;/p&gt;
&lt;h2 id=&#34;構造化出力&#34;&gt;構造化出力
&lt;/h2&gt;&lt;p&gt;クライアントが &lt;code&gt;response_format&lt;/code&gt; に対応している場合、CodexBridge はそれを Codex の &lt;code&gt;outputSchema&lt;/code&gt; にマッピングできます。チェック結果、要約、分類結果、自動化レポートなど、固定 JSON 構造を返したいときに便利です。&lt;/p&gt;
&lt;p&gt;最小例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;model&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;gpt-5-codex&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;session_id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;lint&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;response_format&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;json_schema&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;json_schema&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;lint_report&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;schema&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;object&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;properties&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;nt&#34;&gt;&amp;#34;summary&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;string&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;nt&#34;&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;string&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;enum&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;ok&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;action_required&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;required&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;summary&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;additionalProperties&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;messages&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;role&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;content&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;src/ の lint 問題を確認し、結果を JSON で返してください&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;type: &amp;quot;json_schema&amp;quot;&lt;/code&gt; では &lt;code&gt;schema&lt;/code&gt; が必須です。ない場合、サービスは 400 を返します。&lt;/p&gt;
&lt;h2 id=&#34;主な環境変数&#34;&gt;主な環境変数
&lt;/h2&gt;&lt;p&gt;よく使う設定は次のように分けられます。&lt;/p&gt;
&lt;p&gt;サービスと認証：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PORT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;8080&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_BRIDGE_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;123321&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_JSON_LIMIT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;10mb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;デフォルトモデル：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-5-codex
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_REASONING&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;medium
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Codex 実行環境：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_WORKDIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_SANDBOX_MODE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;read-only
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_APPROVAL_POLICY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;never
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_SKIP_GIT_CHECK&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ネットワーク機能：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_NETWORK_ACCESS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_WEB_SEARCH&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;フロントエンドチャット用途だけなら、デフォルトでネットワークを閉じておくほうが安全です。Codex に &lt;code&gt;curl&lt;/code&gt;、&lt;code&gt;git clone&lt;/code&gt;、Web 検索を明確に実行させたい場合だけ、対応するスイッチを有効にします。&lt;/p&gt;
&lt;h2 id=&#34;docker-とインストールスクリプト&#34;&gt;Docker とインストールスクリプト
&lt;/h2&gt;&lt;p&gt;長時間常駐させたい場合は Docker 方式も使えます：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose logs -f codexbridge
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Linux 用のインストールスクリプトもあります：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/begonia599/CodexBridge/master/scripts/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このスクリプトは依存関係をインストールし、リポジトリを clone または更新し、&lt;code&gt;.env.example&lt;/code&gt; をコピーして Docker Compose でサービスを起動します。&lt;code&gt;sudo&lt;/code&gt; 権限が必要なので、クリーンなサーバーでの素早いデプロイに向いています。すでに複雑な Node.js、Docker、Codex 環境がある場合は、実行前にスクリプト内容を確認してください。&lt;/p&gt;
&lt;h2 id=&#34;よくある問題&#34;&gt;よくある問題
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;リクエストが 413 を返す&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;通常はリクエスト本文が大きすぎます。base64 画像でよく起きます。次を増やします：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_JSON_LIMIT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;20mb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;API key が無効と表示される&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;リクエストヘッダーに次があるか確認します：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Authorization: Bearer &amp;lt;your CODEX_BRIDGE_API_KEY&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;または &lt;code&gt;x-api-key&lt;/code&gt; を使います。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Codex が Git リポジトリ制限を報告する&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;実行ディレクトリが信頼済みリポジトリではない場合、Codex のチェックに引っかかることがあります。安全を確認した環境でのみ使ってください：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_SKIP_GIT_CHECK&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;会話をリセットしたい&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ブリッジ側のマッピングは &lt;code&gt;.codex_threads.json&lt;/code&gt;、Codex 自身のスレッドは &lt;code&gt;~/.codex/sessions&lt;/code&gt; にあります。サービスを停止して該当ファイルまたはディレクトリを削除すればリセットできます。&lt;/p&gt;
&lt;h2 id=&#34;使い方のすすめ&#34;&gt;使い方のすすめ
&lt;/h2&gt;&lt;p&gt;ローカルで試すときは、まずデフォルト API key と &lt;code&gt;read-only&lt;/code&gt; サンドボックスで流れを確認します。OpenWebUI、Cherry Studio、スクリプトから正常に呼び出せることを確認してから、&lt;code&gt;CODEX_WORKDIR&lt;/code&gt;、&lt;code&gt;CODEX_SANDBOX_MODE&lt;/code&gt;、&lt;code&gt;CODEX_NETWORK_ACCESS&lt;/code&gt;、&lt;code&gt;CODEX_APPROVAL_POLICY&lt;/code&gt; を段階的に調整します。&lt;/p&gt;
&lt;p&gt;複数人で使う場合は、少なくとも次の 3 点を行うべきです：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;session_id&lt;/code&gt; を必須にする。&lt;/li&gt;
&lt;li&gt;デフォルト API key を変更する。&lt;/li&gt;
&lt;li&gt;作業ディレクトリとサンドボックス権限を明確に制限する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CodexBridge の価値は機能の多さではなく、Codex を既存の OpenAI 互換エコシステムに入れられる点にあります。クライアントが base URL を変更できるなら、Codex を通常のチャットモデルのように扱いつつ、ローカルスレッド、サンドボックス、ツール利用といった Codex 本来の機能を維持できます。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Sulphur 2 は 8GB VRAM で動くのか？LTX 2.3 動画モデルのローカル導入メモ</title>
        <link>https://knightli.com/ja/2026/05/12/sulphur-2-ltx-2-3-video-generation/</link>
        <pubDate>Tue, 12 May 2026 22:12:45 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/12/sulphur-2-ltx-2-3-video-generation/</guid>
        <description>&lt;p&gt;SulphurAI が Hugging Face で &lt;code&gt;Sulphur-2-base&lt;/code&gt; を公開しました。モデルカードによると、Sulphur 2 は LTX 2.3 をベースにした動画生成モデルで、uncensored video generation model と位置づけられています。text-to-video と image-to-video をネイティブにサポートし、LTX 2.3 の他の形式とも互換性があります。&lt;/p&gt;
&lt;p&gt;モデルページ：&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/SulphurAI/Sulphur-2-base&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://huggingface.co/SulphurAI/Sulphur-2-base&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;sulphur-2-とは&#34;&gt;Sulphur 2 とは
&lt;/h2&gt;&lt;p&gt;Sulphur 2 は汎用チャットモデルではなく、動画生成ワークフローのためのモデル重みと関連ツールを提供するものです。モデルカードの要点は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LTX 2.3 ベース。&lt;/li&gt;
&lt;li&gt;text-to-video と image-to-video をサポート。&lt;/li&gt;
&lt;li&gt;プロンプトを改善する prompt enhancer を提供。&lt;/li&gt;
&lt;li&gt;Hugging Face ページには Diffusers、llama.cpp、Ollama、LM Studio、Jan などの入口がある。&lt;/li&gt;
&lt;li&gt;モデルファイルには GGUF 関連の内容が含まれ、一部のローカルツールで読み込みやすい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、一般ユーザー向けのワンクリック Web 製品というより、動画生成を試すユーザーやワークフロー作者向けのモデル公開です。&lt;/p&gt;
&lt;h2 id=&#34;sulphur-2-と-ltx-23-の関係&#34;&gt;Sulphur 2 と LTX 2.3 の関係
&lt;/h2&gt;&lt;p&gt;Sulphur 2 を理解するには、まず LTX 2.3 のエコシステムの中で見るのが分かりやすいです。&lt;/p&gt;
&lt;p&gt;LTX 2.3 は基盤となる動画生成モデルの系列であり、対応する入力形式、モデルコンポーネント、ワークフロー構造を決めます。Sulphur 2 はその上に公開された派生モデルで、text-to-video、image-to-video、関連ワークフローをまとめることに重点があります。&lt;/p&gt;
&lt;p&gt;そのため Sulphur 2 は完全に独立した新ツールでも、通常のチャットモデルでもありません。LTX 2.3 エコシステム内のモデルパッケージに近く、実際に動画を生成するには、適切なフロントエンド、ノード、重みバージョン、パラメータを選ぶ必要があります。&lt;/p&gt;
&lt;p&gt;Web 生成ツールより導入のハードルが高いのもそのためです。Web ツールはモデル、パラメータ、VRAM 調整、失敗時の再試行をバックエンドに隠しますが、ローカル導入ではそれらを自分で扱う必要があります。&lt;/p&gt;
&lt;h2 id=&#34;注目する理由&#34;&gt;注目する理由
&lt;/h2&gt;&lt;p&gt;LTX 系列は効率的な動画生成で注目されています。Sulphur 2 が LTX 2.3 をベースにしているため、既存の LTX ワークフローに組み込みやすい可能性があります。ComfyUI、Diffusers、ローカル推論ツールのユーザーにとって、この種のモデルの価値は主に制御しやすさと改造しやすさにあります。&lt;/p&gt;
&lt;p&gt;もう一つの見どころは prompt enhancer です。動画生成はプロンプトに非常に敏感で、同じ被写体、カメラ、動作、スタイル、品質指定でも、書き方が違うだけで結果が大きく変わります。Sulphur 2 がプロンプト強化ツールを含めているのは、ユーザーが重みをダウンロードするだけでなく、普通の説明をモデルに向いたプロンプトへ安定して変換できるようにする意図があるからでしょう。&lt;/p&gt;
&lt;h2 id=&#34;モデルカードの使用上の提案&#34;&gt;モデルカードの使用上の提案
&lt;/h2&gt;&lt;p&gt;公式モデルカードでは、最初は &lt;code&gt;fp8mixed&lt;/code&gt; や &lt;code&gt;bf16&lt;/code&gt; などの dev 版をダウンロードし、提供されている distill lora と組み合わせることが推奨されています。また、LoRA を使う場合は完全モデルの重複部分を同時に読み込まないよう注意されています。ワークフロー内で同じ能力を二重に重ねてしまう可能性があるためです。&lt;/p&gt;
&lt;p&gt;prompt enhancer はローカルツール寄りの使い方です。モデルカードでは、LM Studio のモデルディレクトリに &lt;code&gt;Sulphur/promptenhancer&lt;/code&gt; という構造を作り、&lt;code&gt;gguf&lt;/code&gt; ファイルと &lt;code&gt;mmproj&lt;/code&gt; ファイルを置いて強化器を読み込む方法が示されています。system prompt は不要で、強化したいテキストをそのまま送信できます。画像も添付できます。&lt;/p&gt;
&lt;h2 id=&#34;ローカル実行の入口&#34;&gt;ローカル実行の入口
&lt;/h2&gt;&lt;p&gt;Hugging Face ページには一般的なローカル実行の入口がいくつか載っています。たとえば &lt;code&gt;llama.cpp&lt;/code&gt; では、モデルリポジトリからローカルサーバーを起動できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-server -hf SulphurAI/Sulphur-2-base:BF16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ターミナルから直接実行することもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-cli -hf SulphurAI/Sulphur-2-base:BF16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ollama の入口は次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run hf.co/SulphurAI/Sulphur-2-base:BF16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これらのコマンドは Hugging Face が自動生成したローカル読み込み例に近いものです。実際に問題なく動くかどうかは、ローカルの VRAM、モデルファイルのバージョン、量子化形式、ツール互換性に左右されます。動画生成モデルはテキスト専用モデルより多くのリソースを使うことが多いので、最初はモデルカード推奨のバージョンとワークフローに従い、複数ソースの重みを混ぜない方が安全です。&lt;/p&gt;
&lt;h2 id=&#34;推奨テスト環境comfyui--diffusers--gguf-の選び方&#34;&gt;推奨テスト環境：ComfyUI / Diffusers / GGUF の選び方
&lt;/h2&gt;&lt;p&gt;最速で結果を見たいなら、まずコミュニティが整理した ComfyUI ワークフローを探すのがよいです。ComfyUI は視覚的に扱いやすく、モデル、LoRA、サンプラー、解像度、フレーム数、後処理ノードを同じグラフ上で確認できるため、動画生成のデバッグに向いています。&lt;/p&gt;
&lt;p&gt;Python に慣れている場合や、Sulphur 2 を自分のスクリプトに組み込みたい場合は Diffusers が向いています。再現性と自動化に強く、パラメータの一括テストや、設定ごとの VRAM 使用量・生成時間の記録に便利です。&lt;/p&gt;
&lt;p&gt;GGUF、llama.cpp、Ollama、LM Studio は prompt enhancer やテキスト側コンポーネントに向いています。GGUF があるからといって、動画生成パイプライン全体を担えるとは限りません。動画モデルには視覚モデル、VAE、サンプリングフロー、フレーム生成コンポーネントが関わることが多く、GGUF はローカル読み込みと軽量化エコシステムの一部です。&lt;/p&gt;
&lt;p&gt;簡単にまとめると：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;初心者はまず ComfyUI ワークフローを探す。&lt;/li&gt;
&lt;li&gt;スクリプトユーザーは Diffusers で再現と一括テストを行う。&lt;/li&gt;
&lt;li&gt;prompt enhancer やテキスト強化には GGUF / LM Studio / Ollama を見る。&lt;/li&gt;
&lt;li&gt;迷ったらモデルカード推奨の dev 版と LoRA の組み合わせを優先する。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;8gb-vram-で動くのかバージョンとワークフロー次第&#34;&gt;8GB VRAM で動くのか？バージョンとワークフロー次第
&lt;/h2&gt;&lt;p&gt;Sulphur 2 が 8GB VRAM で動くかどうかは、モデル名だけでは判断できません。具体的なバージョン、量子化方式、解像度、フレーム数、バッチサイズ、ワークフローに依存します。&lt;/p&gt;
&lt;p&gt;一般に、動画生成は画像生成より VRAM を多く使います。一枚の画像だけでなく、複数フレーム、時間的一貫性、動画関連の中間状態を扱うためです。モデル自体に軽量版があっても、LoRA、高解像度、長いフレーム数、追加の後処理ノードを重ねると、8GB はすぐ不足する可能性があります。&lt;/p&gt;
&lt;p&gt;8GB VRAM しかない場合は、次の方向で負荷を下げます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;fp8mixed&lt;/code&gt;、量子化版、またはコミュニティの低 VRAM ワークフローを優先する。&lt;/li&gt;
&lt;li&gt;解像度を下げ、小さいサイズでまずパイプラインが通るか確認する。&lt;/li&gt;
&lt;li&gt;フレーム数を減らし、最初から長い動画を生成しない。&lt;/li&gt;
&lt;li&gt;batch size を 1 にする。&lt;/li&gt;
&lt;li&gt;不要な強化ノードや後処理ノードを一時的に切る。&lt;/li&gt;
&lt;li&gt;CPU offload、低 VRAM モード、フレームワークのメモリ最適化を使う。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;したがって「8GB VRAM でも動く」という表現をより正確に言うなら、低メモリ版、低解像度、短いフレーム数、簡素なワークフローであれば動く可能性がある、という程度です。高解像度、長尺動画、複雑なワークフローを最初から期待するのは現実的ではありません。&lt;/p&gt;
&lt;h2 id=&#34;prompt-enhancer-の使い方&#34;&gt;prompt enhancer の使い方
&lt;/h2&gt;&lt;p&gt;Sulphur 2 のモデルカードでは prompt enhancer が特に言及されています。これは動画を生成するものではなく、普通のプロンプトをモデルが理解しやすいプロンプトに書き換えるためのものです。&lt;/p&gt;
&lt;p&gt;動画プロンプトでは、被写体、動作、カメラ、シーン、光、スタイル、品質を同時に説明する必要があります。短い説明だけだと、モデルが重要な点を拾えないことがあります。prompt enhancer は簡単な説明をより完全な動画生成プロンプトへ拡張し、後続の生成を安定させるための補助になります。&lt;/p&gt;
&lt;p&gt;モデルカードの流れでは、LM Studio のモデルディレクトリ内に &lt;code&gt;Sulphur/promptenhancer&lt;/code&gt; ディレクトリを作り、対応する &lt;code&gt;gguf&lt;/code&gt; と &lt;code&gt;mmproj&lt;/code&gt; ファイルを置いて強化器を読み込みます。使用時に system prompt は不要で、強化したいテキストをそのまま送ります。画像を添付することもできます。&lt;/p&gt;
&lt;p&gt;これはプロンプトの前処理ツールと考えると分かりやすいです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;普通の説明 -&amp;gt; prompt enhancer -&amp;gt; より完全な動画生成プロンプト -&amp;gt; Sulphur 2 ワークフロー
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;モデルが動くかどうかを試す段階では、prompt enhancer は最優先ではありません。まずメインのワークフローを通し、その後でプロンプト改善に使う方が問題の切り分けがしやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;ローカル導入でよくある失敗原因&#34;&gt;ローカル導入でよくある失敗原因
&lt;/h2&gt;&lt;p&gt;Sulphur 2 のようなモデルのローカル導入が失敗する原因は一つとは限りません。よくある落とし穴は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;モデルバージョンとワークフローが合っていない。たとえばワークフローが dev 版を要求しているのに別の重みを使っている。&lt;/li&gt;
&lt;li&gt;LoRA と完全モデルの重複部分を同時に読み込み、結果がおかしくなったり VRAM 使用量が増えたりする。&lt;/li&gt;
&lt;li&gt;VRAM 不足。特に高解像度、長いフレーム数、複雑なノード構成で起きやすい。&lt;/li&gt;
&lt;li&gt;ComfyUI ノード、Diffusers、Transformers、Accelerate などのバージョンが古く互換性がない。&lt;/li&gt;
&lt;li&gt;VAE、テキストエンコーダー、&lt;code&gt;mmproj&lt;/code&gt;、prompt enhancer などの付属ファイルが足りない。&lt;/li&gt;
&lt;li&gt;ファイルパスやディレクトリ構造がツールの要求と合っていない。&lt;/li&gt;
&lt;li&gt;Hugging Face ページのコマンドだけをコピーし、それが動画生成のメインフローなのかテキスト側コンポーネントなのか確認していない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;切り分けは順番が大事です。まずモデルファイルが揃っているか確認し、次にワークフローが要求するバージョンを確認します。その後、解像度とフレーム数を下げ、最後に LoRA、prompt enhancer、後処理ノードを少しずつ追加します。一度に変える変数は一つだけにするのが、問題を見つける近道です。&lt;/p&gt;
&lt;h2 id=&#34;試すのに向いている人&#34;&gt;試すのに向いている人
&lt;/h2&gt;&lt;p&gt;Sulphur 2 は次のようなユーザーに向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;すでに LTX、ComfyUI、Diffusers、ローカル動画生成ワークフローを使っている。&lt;/li&gt;
&lt;li&gt;text-to-video や image-to-video を試したく、モデルファイルを手動で設定できる。&lt;/li&gt;
&lt;li&gt;uncensored 動画生成モデルが必要で、その利用境界を理解している。&lt;/li&gt;
&lt;li&gt;prompt enhancer が動画プロンプトをどう改善するか研究したい。&lt;/li&gt;
&lt;li&gt;十分な VRAM がある、または量子化版やローカル推論ツールを試す意思がある。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;短い動画を手早く作りたいだけなら、オンライン製品の方が楽です。Sulphur 2 はモデル、ノード、LoRA、プロンプト、ローカル環境を調整することを楽しめる人向けです。&lt;/p&gt;
&lt;h2 id=&#34;使用時の注意点&#34;&gt;使用時の注意点
&lt;/h2&gt;&lt;p&gt;第一に、モデルカードはまだ更新中です。作者は README により完全な設定説明や訓練方法を追記すると述べているため、具体的なワークフローは最新のモデルカードとファイル一覧を基準にするべきです。&lt;/p&gt;
&lt;p&gt;第二に、Hugging Face ページの一つのコマンドだけを見て、すぐ動くと判断しないことです。動画生成にはメインモデル、VAE、LoRA、prompt enhancer、サンプリングパラメータ、解像度、フレーム数、VRAM 使用量が関わります。どれか一つが合わないだけで失敗します。&lt;/p&gt;
&lt;p&gt;第三に、uncensored モデルだからといって無制限に使えるわけではありません。生成内容は利用するプラットフォーム、コミュニティ、法律のルールに従う必要があります。実在人物、著作権キャラクター、未成年、暴力、プライバシーに関わる内容では特に注意が必要です。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Sulphur 2 の位置づけは明確です。これはチャットモデルではなく、LTX 2.3 動画生成エコシステム向けのモデル公開です。見どころは text-to-video と image-to-video に対応し、prompt enhancer、ローカルツール入口、推奨ワークフローをまとめている点にあります。&lt;/p&gt;
&lt;p&gt;一般ユーザーには少し敷居が高いですが、ローカル動画生成を試すユーザーにとってはテスト候補に入れる価値があります。実際の体験は、ワークフロー、VRAM 構成、プロンプト品質、そして今後 README やコミュニティ例がどれだけ整うかで決まります。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Hugging Face モデルページ：&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/SulphurAI/Sulphur-2-base&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://huggingface.co/SulphurAI/Sulphur-2-base&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;FreeDidi 参考ページ：&lt;a class=&#34;link&#34; href=&#34;https://www.freedidi.com/24142.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.freedidi.com/24142.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>DeepSeek 4 をローカルで動かす：Apple Silicon Mac における Antirez ds4 の試み</title>
        <link>https://knightli.com/ja/2026/05/11/deepseek-v4-flash-ds4-metal/</link>
        <pubDate>Mon, 11 May 2026 08:51:37 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/11/deepseek-v4-flash-ds4-metal/</guid>
        <description>&lt;p&gt;Antirez が新しいプロジェクト &lt;code&gt;ds4&lt;/code&gt; をオープンソース化しました。これは汎用 LLM フレームワークではなく、DeepSeek V4 Flash 向けのローカル推論エンジンで、Apple Silicon と Metal バックエンドに重点を置いています。&lt;/p&gt;
&lt;p&gt;プロジェクト URL：&lt;a class=&#34;link&#34; href=&#34;https://github.com/antirez/ds4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/antirez/ds4&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;ds4-とは&#34;&gt;ds4 とは
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ds4&lt;/code&gt; の目的は明確です。Mac 上で DeepSeek V4 Flash をローカル実行することです。&lt;/p&gt;
&lt;p&gt;現在は、次の 3 つの使い方が用意されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;対話型 CLI。&lt;/li&gt;
&lt;li&gt;HTTP server。&lt;/li&gt;
&lt;li&gt;実験的な Agent モード。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;位置づけとしては、&lt;code&gt;llama.cpp&lt;/code&gt;、Ollama、vLLM のような汎用ツールを置き換えるものではなく、特定のモデルに深く最適化した推論プロジェクトに近いものです。&lt;/p&gt;
&lt;h2 id=&#34;なぜ注目に値するのか&#34;&gt;なぜ注目に値するのか
&lt;/h2&gt;&lt;p&gt;この種のプロジェクトが注目に値する理由は主に 3 つあります。&lt;/p&gt;
&lt;p&gt;第一に、作者が Redis の作者である Antirez であることです。彼は長く低レイヤーのシステム、性能、シンプルなツールに関心を持っており、プロジェクトの作風も比較的ストレートです。&lt;/p&gt;
&lt;p&gt;第二に、DeepSeek V4 Flash は効率的な推論を指向するモデルです。ローカル実行の体験が十分によければ、Mac ユーザーにとってかなり魅力的です。&lt;/p&gt;
&lt;p&gt;第三に、&lt;code&gt;ds4&lt;/code&gt; は Apple Metal を直接ターゲットにしています。最初にあらゆるプラットフォームをサポートしてから徐々に最適化する路線ではなく、明確な 1 つの場面を深く掘るプロジェクトに見えます。&lt;/p&gt;
&lt;h2 id=&#34;誰に向いているか&#34;&gt;誰に向いているか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ds4&lt;/code&gt; は、次のようなユーザーに向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apple Silicon Mac を使っている。&lt;/li&gt;
&lt;li&gt;DeepSeek V4 Flash をローカルで動かしたい。&lt;/li&gt;
&lt;li&gt;Metal 推論性能に関心がある。&lt;/li&gt;
&lt;li&gt;alpha 段階のプロジェクトを試すことに抵抗がない。&lt;/li&gt;
&lt;li&gt;軽量な推論エンジンやモデル実行の細部を調べたい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安定したデプロイ、クロスプラットフォーム実行、OpenAI API 互換のエコシステムが目的なら、現時点では第一候補ではないかもしれません。実験用ツール、または技術的な観察対象として見るのがよさそうです。&lt;/p&gt;
&lt;h2 id=&#34;使い方&#34;&gt;使い方
&lt;/h2&gt;&lt;p&gt;プロジェクト README にある基本的な流れは、まずビルドしてから実行するというものです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/antirez/ds4.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ds4
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;対話的に実行する場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./ds4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;HTTP server を起動する場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./ds4 --server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Agent モード：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./ds4 --agent
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;具体的なパラメータやモデルファイルの準備方法は、プロジェクトがまだ速いペースで変化しているため、リポジトリの README を確認するのが確実です。&lt;/p&gt;
&lt;h2 id=&#34;現時点のリスク&#34;&gt;現時点のリスク
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ds4&lt;/code&gt; はまだ初期段階のプロジェクトなので、使う前に次の点を想定しておく必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;機能が完全ではない可能性があります。&lt;/li&gt;
&lt;li&gt;パラメータ、モデル形式、コマンドラインの挙動が変わる可能性があります。&lt;/li&gt;
&lt;li&gt;互換性は主に Apple Silicon と Metal を中心にしています。&lt;/li&gt;
&lt;li&gt;Agent モードは実験的な性格が強く、本番フローに直接使うには向いていません。&lt;/li&gt;
&lt;li&gt;問題が起きた場合、自分で README、issue、ソースコードを読んで調べる必要があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、現時点では一般ユーザー向けのワンクリックツールというより、試してみる価値のあるオープンソース実験です。&lt;/p&gt;
&lt;h2 id=&#34;汎用推論ツールとの違い&#34;&gt;汎用推論ツールとの違い
&lt;/h2&gt;&lt;p&gt;汎用推論ツールは通常、モデル形式、プラットフォーム、バックエンド、API の広い互換性を目指します。&lt;code&gt;ds4&lt;/code&gt; の方向性はもっと狭く、DeepSeek V4 Flash と Metal によるローカル実行に絞られています。&lt;/p&gt;
&lt;p&gt;この選択には利点と代償があります。&lt;/p&gt;
&lt;p&gt;利点は、実装を集中させやすく、性能や体験を単一の目標に合わせて最適化しやすいことです。代償は、適用範囲が限られることです。さまざまなモデルを動かすための道具ではなく、完全なデプロイ基盤の置き換えにも向いていません。&lt;/p&gt;
&lt;p&gt;すでに &lt;code&gt;llama.cpp&lt;/code&gt; や Ollama を使っているなら、&lt;code&gt;ds4&lt;/code&gt; は既存のワークフローをすぐ置き換えるものではなく、補助的なテストツールとして見るのが自然です。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ds4&lt;/code&gt; の見どころは、「また 1 つローカル大規模モデルツールが増えた」ことではありません。DeepSeek V4 Flash、Apple Silicon、Metal、ローカル推論という狭い範囲に絞っている点です。&lt;/p&gt;
&lt;p&gt;手元に適した Mac があり、初期段階のプロジェクトを触ることに抵抗がないなら、今後の性能、モデル対応の方法、server/agent 機能の進化を追う価値があります。本番環境については、インターフェイスと使い方が安定してから評価するのがよいでしょう。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/antirez/ds4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/antirez/ds4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>AI コーディングツールの今回の波で、なぜ DeepSeek がコスト削減の鍵になったのか</title>
        <link>https://knightli.com/ja/2026/05/11/deepseek-ai-coding-cost-saving/</link>
        <pubDate>Mon, 11 May 2026 04:59:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/11/deepseek-ai-coding-cost-saving/</guid>
        <description>&lt;p&gt;今回の AI コーディングツール競争は、表面上はモデル性能、プラグインエコシステム、agent 自動化の競争に見える。しかし実際に使い始めると、最初にぶつかる問題はコストだ。&lt;/p&gt;
&lt;p&gt;Claude Code、Codex、OpenClaw、Superpowers はどれも便利だが、共通点がある。複雑なタスクに入ると、とにかく token を消費する。プロジェクトを読み、計画を作り、ツールを呼び出し、コンテキストを要約し、結果を何度も確認し、場合によっては複数のサブタスクを起動する。モデルが賢くなり、ワークフローが自動化されるほど、請求額も静かに膨らみやすい。&lt;/p&gt;
&lt;p&gt;だから今回、DeepSeek が重要になっている。単にコードを書けるからではない。長いコンテキストとキャッシュコストが、AI コーディングツールで最もお金が燃える部分にちょうど効いているからだ。&lt;/p&gt;
&lt;h2 id=&#34;agent-ツールはなぜ-token-を大量に消費するのか&#34;&gt;Agent ツールはなぜ token を大量に消費するのか
&lt;/h2&gt;&lt;p&gt;従来のチャット型コーディング支援は、基本的に一問一答だ。関数の書き方を聞くと、コード片が返ってくる。この形でも token は消費するが、まだ制御しやすい。&lt;/p&gt;
&lt;p&gt;Agent ツールは違う。質問に答えるだけではなく、一時的なエンジニアのようにプロジェクトへ入っていく。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;まずディレクトリと重要ファイルをスキャンする；&lt;/li&gt;
&lt;li&gt;要件と既存アーキテクチャを理解する；&lt;/li&gt;
&lt;li&gt;計画を作る；&lt;/li&gt;
&lt;li&gt;ファイルを修正する；&lt;/li&gt;
&lt;li&gt;コマンドやテストを実行する；&lt;/li&gt;
&lt;li&gt;エラーに応じて修正を続ける；&lt;/li&gt;
&lt;li&gt;最後に変更内容をまとめる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この過程では、モデルが同じコンテキストを何度も読む。プロジェクト説明、コード片、ツール結果、過去の会話、計画、エラーログが繰り返しコンテキストに戻される。少し複雑なタスクになるだけで、数十万 token はすぐに消える。&lt;/p&gt;
&lt;p&gt;さらに攻めたプラグインを入れると、コストはもっと目立つ。OpenCode や Claude Code の拡張ツールの中には、デフォルトで agent チームを組むものもある。小さな機能を一つ変えたいだけでも、計画、レビュー、実行、振り返りまで起動することがある。タスクはより「賢く」見えるが、token も増え続ける。&lt;/p&gt;
&lt;h2 id=&#34;superpowers-の利点は必要なときだけ起動すること&#34;&gt;Superpowers の利点は必要なときだけ起動すること
&lt;/h2&gt;&lt;p&gt;Superpowers のようなツールの利点は、すべてのタスクで完全な agent フローを強制しないことだ。&lt;/p&gt;
&lt;p&gt;普段は Claude Code、OpenCode、Codex を従来の方法で動かせる。ブレインストーミング、計画作成、計画実行、振り返りのような skill を明示的に呼び出したときだけ、より重い自動化フローに入る。&lt;/p&gt;
&lt;p&gt;これはコスト面で重要だ。&lt;/p&gt;
&lt;p&gt;AI コーディングでは、すべてのタスクに重装備を使うべきではない。設定を一行変える、エラーを一つ調べる、小さなスクリプトを書く程度なら、普通の対話で十分だ。複雑なリファクタリング、複数ファイルの変更、長文ドキュメント処理、多段階の検証だけが、完全な agent フローに値する。&lt;/p&gt;
&lt;p&gt;ツールが強力になるほど、起動条件を制御する必要がある。そうしなければ、自動化が増えるほど無駄も増える。&lt;/p&gt;
&lt;h2 id=&#34;deepseek-の重要な強みはキャッシュが安いこと&#34;&gt;DeepSeek の重要な強みはキャッシュが安いこと
&lt;/h2&gt;&lt;p&gt;DeepSeek がこの種の agent ツールに合う大きな理由は、キャッシュヒット時のコストが低いことだ。&lt;/p&gt;
&lt;p&gt;AI コーディングタスクには、大量の反復プレフィックスがある。プロジェクト背景、システムプロンプト、ツール説明、ファイル内容、前の会話ターンは、後続リクエストに何度も現れる。モデルサービスが prompt cache をサポートしていれば、こうした反復部分はキャッシュヒット後にかなり安くなる。&lt;/p&gt;
&lt;p&gt;多くのモデルでは、キャッシュヒット価格は未ヒットより少し安い程度で、たとえば三分の一前後という感覚だ。DeepSeek の強みは、ヒット後の価格差がもっと大きくなり得ることにある。長いコンテキスト、多段階呼び出し、プロジェクトの反復読み込みを行う agent ワークフローでは、この差が請求に直接出る。&lt;/p&gt;
&lt;p&gt;つまり DeepSeek は、毎回の回答が必ず最強というわけではない。しかし「長いタスク、多いターン、コンテキストの反復読み込み」という場面では、コスト構造が AI コーディングに非常に向いている。&lt;/p&gt;
&lt;h2 id=&#34;長いコンテキストは-claude-code-を使いやすくする&#34;&gt;長いコンテキストは Claude Code を使いやすくする
&lt;/h2&gt;&lt;p&gt;Claude Code や類似ツールを DeepSeek V4 に接続すると、もう一つの明確な利点が長いコンテキストだ。&lt;/p&gt;
&lt;p&gt;AI コーディングツールが最も嫌うのは、コンテキスト不足だ。コンテキストが足りなくなると、頻繁に圧縮が必要になる。圧縮が増えると、前に読んだ細部が失われることがある。モデルはプロジェクト構造、制約、あるファイルをなぜ変更したかを忘れ始め、その後の品質が落ちる。&lt;/p&gt;
&lt;p&gt;DeepSeek V4 系列の長いコンテキスト能力は、コードリポジトリ、ドキュメントの一括処理、字幕翻訳、サイト記事整理に向いている。特に Claude Code や OpenClaw に接続する場合、設定が適切ならコンテキスト圧縮を遅らせ、より多くのプロジェクト詳細を保てる。&lt;/p&gt;
&lt;p&gt;だから DeepSeek で動かすと「よく持つ」と感じるタスクがある。各ステップが必ずしも派手ではなくても、長時間、低コスト、反復呼び出しに耐えられる。&lt;/p&gt;
&lt;h2 id=&#34;v4-pro-と-v4-flash-の分担&#34;&gt;V4 Pro と V4 Flash の分担
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 Pro と V4 Flash は混ぜて使うべきではない。&lt;/p&gt;
&lt;p&gt;単純なタスクには &lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; が向いている。速く、安く、次のような場面ではたいてい十分だ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;字幕翻訳；&lt;/li&gt;
&lt;li&gt;ドキュメント整理；&lt;/li&gt;
&lt;li&gt;普通のスクリプト生成；&lt;/li&gt;
&lt;li&gt;小規模なコード修正；&lt;/li&gt;
&lt;li&gt;OpenClaw の軽量タスク；&lt;/li&gt;
&lt;li&gt;簡単なサイトコンテンツ処理。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;複雑なタスクでは &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; を検討する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;大規模リファクタリング；&lt;/li&gt;
&lt;li&gt;複数モジュールのコード理解；&lt;/li&gt;
&lt;li&gt;複雑な推論；&lt;/li&gt;
&lt;li&gt;長い agent チェーンのタスク；&lt;/li&gt;
&lt;li&gt;高リスクなコード変更；&lt;/li&gt;
&lt;li&gt;より強い計画能力が必要なエンジニアリングタスク。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最初から最強モデルを使いたがる人は多いが、それは割に合わないことも多い。AI コーディングツールの現実的な使い方は、タスクを層に分けることだ。安いモデルに大量の定型作業を任せ、高いモデルは重要な判断点だけに使う。&lt;/p&gt;
&lt;h2 id=&#34;minimaxdoubaodeepseek-は役割が違う&#34;&gt;MiniMax、Doubao、DeepSeek は役割が違う
&lt;/h2&gt;&lt;p&gt;国内モデルやプランの中で、MiniMax、Doubao、Kimi、DeepSeek にはそれぞれ位置づけがある。&lt;/p&gt;
&lt;p&gt;MiniMax の強みは、量が多く、安く、機能が広いことだ。最も賢いコーディングモデルではないかもしれないが、翻訳、軽い整理、一括処理には費用対効果が高い。字幕の一括処理、形式変換、簡単な校正などには、MiniMax 型のプランはかなり使いやすい。&lt;/p&gt;
&lt;p&gt;Doubao の強みは、ツールエコシステムが広いことだ。画像、動画、検索、TTS、場合によっては STT や embedding までつなげられる。総合ツールボックスに近い。&lt;/p&gt;
&lt;p&gt;DeepSeek の位置づけはもっと明確だ。テキスト、コード、長いコンテキスト、低コストキャッシュ。画像生成、音声、動画の完全なエコシステムはなく、弱点ははっきりしている。しかし AI コーディングと長文 agent ワークフローでは、長所が十分に長い。&lt;/p&gt;
&lt;p&gt;だから誰が誰を置き換えるという話ではない。タスクを分け、それぞれに合う道具を使う話だ。&lt;/p&gt;
&lt;h2 id=&#34;コスト削減の鍵は安いモデルを探すだけではない&#34;&gt;コスト削減の鍵は安いモデルを探すだけではない
&lt;/h2&gt;&lt;p&gt;AI コーディングでコストを下げるとは、すべてのリクエストを安いモデルに替えることではない。&lt;/p&gt;
&lt;p&gt;有効な方法はいくつかある。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;単純なタスクで重い agent を起動しない。&lt;/li&gt;
&lt;li&gt;Flash で十分なタスクに Pro を使わない。&lt;/li&gt;
&lt;li&gt;長いタスクではできるだけキャッシュを使う。&lt;/li&gt;
&lt;li&gt;反復コンテキストを安定させ、意味のない変更でキャッシュを無効化しない。&lt;/li&gt;
&lt;li&gt;大きなタスクは安いモデルに下書きと一括処理をさせ、強いモデルで重要レビューを行う。&lt;/li&gt;
&lt;li&gt;agent に、事実を繰り返し説明せず、同じことを何度も要約しないよう明確に伝える。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;特に最後の点は重要だ。AI ツールは冗長になりやすい。冗長さは読みやすさだけでなく、コストの問題でもある。プロンプトに「事実は一度だけ説明し、意見は一度だけ述べる」と入れると、文章品質と token 消費の両方を改善できる。&lt;/p&gt;
&lt;h2 id=&#34;deepseek-に向く-ai-コーディングワークフロー&#34;&gt;DeepSeek に向く AI コーディングワークフロー
&lt;/h2&gt;&lt;p&gt;DeepSeek は次のようなタスクに特に向いている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;長いコードリポジトリの読解；&lt;/li&gt;
&lt;li&gt;複数ファイルの軽い修正；&lt;/li&gt;
&lt;li&gt;ドキュメントの一括整理；&lt;/li&gt;
&lt;li&gt;字幕の一括翻訳；&lt;/li&gt;
&lt;li&gt;Hugo 記事の整理；&lt;/li&gt;
&lt;li&gt;agent 計画の実行；&lt;/li&gt;
&lt;li&gt;大量の反復コンテキストを含む低コスト自動化。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;すべてのタスクに向くわけではない。特に強いフロントエンドの審美眼、複雑なプロダクト判断、クロスモーダル制作が必要なら、Claude、GPT、Gemini、Doubao などを組み合わせる必要がある。&lt;/p&gt;
&lt;p&gt;しかしタスクが「長文、長いコンテキスト、反復呼び出し、コスト敏感」である限り、DeepSeek は第一候補になりやすい。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;今回の AI コーディングツールの波で、DeepSeek の価値は「国内モデルがコードを書ける」ことだけではない。agent ツールの最も現実的な痛点、つまり長いタスクが高すぎる問題を解いていることにある。&lt;/p&gt;
&lt;p&gt;Claude Code、OpenClaw、Superpowers のようなツールは開発フローをますます自動化する。しかしその裏側には、大量のコンテキスト読み書きと多段階呼び出しがある。この部分のコストを下げられる人が、AI コーディングを「たまに気持ちよく使うもの」から「毎日使えるもの」に変えられる。&lt;/p&gt;
&lt;p&gt;DeepSeek の長いコンテキスト、低いキャッシュコスト、V4 Flash / V4 Pro の階層的な使い分けは、まさにその位置にある。&lt;/p&gt;
&lt;p&gt;今回の本当のコスト削減の鍵は、良いモデルを使わないことではない。良いモデル、安いモデル、キャッシュ、agent フローをうまく組み合わせることだ。この会計を理解できれば、AI コーディングツールは美しいが高価なおもちゃではなく、本当の生産性になる。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>GPT-5.5、GPT-5.4、GPT-5.3-Codex はどう使い分けるべきか</title>
        <link>https://knightli.com/ja/2026/05/10/gpt-5-5-vs-gpt-5-4-vs-gpt-5-3-codex/</link>
        <pubDate>Sun, 10 May 2026 08:43:17 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/10/gpt-5-5-vs-gpt-5-4-vs-gpt-5-3-codex/</guid>
        <description>&lt;p&gt;結論だけ先に言うと、基本は &lt;code&gt;GPT-5.5&lt;/code&gt;、コストや使用量をより重視するなら &lt;code&gt;GPT-5.4&lt;/code&gt;、そして Codex 環境で長時間のソフトウェアエンジニアリング作業を回したり、Cloud Tasks や Code Review が必要だったりする場合に &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; を重点的に見る、という選び方になります。&lt;/p&gt;
&lt;p&gt;これは単なる主観ではありません。&lt;code&gt;2026-05-10&lt;/code&gt; 時点でも、OpenAI の Codex 公式ドキュメントでは、多くのタスクは &lt;code&gt;gpt-5.5&lt;/code&gt; から始めることを推奨しています。まだ &lt;code&gt;gpt-5.5&lt;/code&gt; が使えない場合は &lt;code&gt;gpt-5.4&lt;/code&gt; を使い、軽いタスクやサブエージェントには &lt;code&gt;gpt-5.4-mini&lt;/code&gt; が向いている、という整理です。&lt;/p&gt;
&lt;h2 id=&#34;3-つのモデルの位置づけ&#34;&gt;3 つのモデルの位置づけ
&lt;/h2&gt;&lt;p&gt;まずは公式の位置づけから見ます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt; は Codex における最新のフロンティアモデルで、複雑なコーディング、コンピュータ操作、ナレッジワーク、リサーチワークフロー向けです。難しい分析、多段階タスク、複数ファイルにまたがる修正、方針設計、重めのドキュメント作業に向く、いわば標準の主力モデルです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt; はより安定した万能型の選択肢です。公式には、&lt;code&gt;GPT-5.3-Codex&lt;/code&gt; の高いコーディング能力に、より強い推論、ツール使用、agentic workflow を組み合わせたモデルと説明されています。つまり、単なる「5.5 の弱い版」ではなく、長期的な主力として使いやすいバランス型です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt; も依然として非常に強いコーディングモデルですが、強みは実際のソフトウェアエンジニアリングや Codex ネイティブのワークフローにより集中しています。公式ドキュメントでも agentic coding tasks 向けに最適化されたモデルだとされており、&lt;code&gt;GPT-5.4&lt;/code&gt; のコーディング能力自体もその長所を引き継いでいます。&lt;/p&gt;
&lt;p&gt;そのため、今の時点では &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; をそのまま「最強のコーディングモデル」と考えるのはあまり適切ではありません。日常的な開発では、まず &lt;code&gt;GPT-5.5&lt;/code&gt; と &lt;code&gt;GPT-5.4&lt;/code&gt; を優先して検討するほうが自然です。&lt;/p&gt;
&lt;h2 id=&#34;用途別にどう選ぶか&#34;&gt;用途別にどう選ぶか
&lt;/h2&gt;&lt;p&gt;日常の Q&amp;amp;A、難しい説明、資料整理、ファイル分析、長文の情報統合のような仕事なら、&lt;code&gt;GPT-5.5&lt;/code&gt; が最も向いています。コードを書くだけでなく、コード以外の負荷の高い知的作業にも強いからです。&lt;/p&gt;
&lt;p&gt;複雑なプログラミング、リファクタリング、デバッグ、アーキテクチャ設計、複数ファイルの修正なら、やはり &lt;code&gt;GPT-5.5&lt;/code&gt; が第一候補です。Codex 公式の推奨も同じで、&lt;code&gt;gpt-5.5&lt;/code&gt; が使えるならまずそこから始める、という扱いです。&lt;/p&gt;
&lt;p&gt;一方で、品質をある程度維持しながら消費量やコストを抑えたいなら、&lt;code&gt;GPT-5.4&lt;/code&gt; がより現実的な標準モデルになります。通常の開発、一般的なリライト、標準的な翻訳、スクリプト生成、バグ修正の多くでは、&lt;code&gt;GPT-5.4&lt;/code&gt; で十分に強く、しかもクレジット消費を抑えやすいからです。&lt;/p&gt;
&lt;p&gt;Codex CLI、IDE 拡張、アプリで、よりエージェント的なソフトウェアエンジニアリング作業を回す場合、たとえば長時間リポジトリを読ませる、継続的にコードを書き換える、タスクをキューに積む、Cloud Tasks や Code Review を使うといった場面では、&lt;code&gt;GPT-5.3-Codex&lt;/code&gt; にまだ意味があります。これは &lt;code&gt;GPT-5.5&lt;/code&gt; より新しいからではなく、Codex の Cloud Tasks と Code Review が今も &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; で動いているからです。&lt;/p&gt;
&lt;h2 id=&#34;クレジット消費はどれくらい違うか&#34;&gt;クレジット消費はどれくらい違うか
&lt;/h2&gt;&lt;p&gt;Codex の credits 表を見ると、この 3 つの違いはかなりはっきりしています。&lt;/p&gt;
&lt;p&gt;Business / New Enterprise のトークン単位の料金では、次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;：入力 &lt;code&gt;125 credits / 1M tokens&lt;/code&gt;、キャッシュ入力 &lt;code&gt;12.5 credits&lt;/code&gt;、出力 &lt;code&gt;750 credits&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;：入力 &lt;code&gt;62.5 credits / 1M tokens&lt;/code&gt;、キャッシュ入力 &lt;code&gt;6.25 credits&lt;/code&gt;、出力 &lt;code&gt;375 credits&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;：入力 &lt;code&gt;43.75 credits / 1M tokens&lt;/code&gt;、キャッシュ入力 &lt;code&gt;4.375 credits&lt;/code&gt;、出力 &lt;code&gt;350 credits&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;表面的な単価だけで見ると、&lt;code&gt;GPT-5.4&lt;/code&gt; は &lt;code&gt;GPT-5.5&lt;/code&gt; のほぼ半額です。同じくらいの入出力長で処理するなら、一般には &lt;code&gt;50%&lt;/code&gt; 近く節約できると考えてよいでしょう。&lt;code&gt;GPT-5.3-Codex&lt;/code&gt; は入力がより安いものの、出力コストはすでに &lt;code&gt;GPT-5.4&lt;/code&gt; にかなり近いため、「圧倒的に安い選択肢」というわけではありません。&lt;/p&gt;
&lt;p&gt;ただし見落としやすい点もあります。Codex 公式には、&lt;code&gt;GPT-5.5 uses significantly fewer tokens to achieve results comparable to GPT-5.4&lt;/code&gt; とあります。つまり単価は高くても、複雑なタスクではトークン使用量の少なさややり直しの減少によって、差が縮まる可能性があります。&lt;/p&gt;
&lt;p&gt;それでも、固定テンプレートの記事リライト、翻訳、SEO 説明文のように入出力の長さが比較的安定している仕事では、この「遠回りの少なさ」の恩恵は、複雑なソフトウェアエンジニアリングほど大きくありません。実運用では、&lt;code&gt;GPT-5.4&lt;/code&gt; のほうがやはり安く、だいたい &lt;code&gt;45%&lt;/code&gt; から &lt;code&gt;50%&lt;/code&gt; ほど節約できると考えてよいケースが多いです。&lt;/p&gt;
&lt;h2 id=&#34;codex-での利用制限の違い&#34;&gt;Codex での利用制限の違い
&lt;/h2&gt;&lt;p&gt;単価だけでなく、Codex 内での使え方も同じではありません。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;2026-05-10&lt;/code&gt; 時点では、&lt;code&gt;GPT-5.5&lt;/code&gt; は Codex の推奨モデルですが、ChatGPT サインインで使う Codex でのみ利用でき、API key 認証には対応していません。&lt;code&gt;GPT-5.4&lt;/code&gt; と &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; は API から利用できます。&lt;/p&gt;
&lt;p&gt;また、&lt;code&gt;GPT-5.5&lt;/code&gt; と &lt;code&gt;GPT-5.4&lt;/code&gt; は現時点で Codex Cloud Tasks と Code Review をサポートしていません。この 2 つは今も &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; の領域です。つまり、Codex 内で長時間のエンジニアリング作業を回したい場合は、単純にモデルの強さだけでなく、必要な機能が &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; に依存していないかも確認する必要があります。&lt;/p&gt;
&lt;p&gt;ローカルメッセージだけを使う場合、Plus プランの 5 時間ウィンドウの目安は次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;：&lt;code&gt;15-80&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;：&lt;code&gt;20-100&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;：&lt;code&gt;30-150&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ここからも現実的な違いが見えます。&lt;code&gt;GPT-5.5&lt;/code&gt; は最も強力ですが、固定枠の中では使える回数が少なくなりやすい。&lt;code&gt;GPT-5.4&lt;/code&gt; はよりバランスが良く、&lt;code&gt;GPT-5.3-Codex&lt;/code&gt; はローカルメッセージだけを見ると、むしろ粘り強く見えることがあります。&lt;/p&gt;
&lt;h2 id=&#34;よくある場面ではどう選ぶか&#34;&gt;よくある場面ではどう選ぶか
&lt;/h2&gt;&lt;p&gt;日常業務には、かなり種類の違う高頻度タスクがあります。抽象的に「どれが一番強いか」を考えるより、場面ごとに分けて見るほうが実用的です。&lt;/p&gt;
&lt;h3 id=&#34;1-日常の-qa資料整理長文要約&#34;&gt;1. 日常の Q&amp;amp;A、資料整理、長文要約
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;：最も向いています。曖昧な依頼を処理し、文脈を補い、散らばった情報を構造化するのが得意です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;：通常の要約や大量整理に向いています。難度が高くなく、量が多いならより経済的です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;：主力にはあまり向きません。こなせますが、もっとも得意な領域ではありません。&lt;/p&gt;
&lt;h3 id=&#34;2-技術概念の説明コード解説古いプロジェクトの読解&#34;&gt;2. 技術概念の説明、コード解説、古いプロジェクトの読解
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;：複雑なプロジェクト向きです。ファイル間の関係が多い、呼び出し経路が長い、歴史的経緯が重い、といった場合により安定します。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;：通常の読解には十分です。関数やモジュールの理解、設定の説明、既存プロジェクトの立ち上がり支援に向いています。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;：より実行寄りで、解説中心の用途では第一候補ではありません。&lt;/p&gt;
&lt;h3 id=&#34;3-スクリプト小ツールsqlshell正規表現&#34;&gt;3. スクリプト、小ツール、SQL、Shell、正規表現
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;：スクリプトの背後にシステム設計があったり、複数サービスが連動したり、制約が複雑だったりする場合に向いています。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;：標準の主力として最も使いやすいです。多くのスクリプト、小ツール、SQL、コマンドライン作業には十分で、しかもクレジット効率が良いです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;：スクリプトが大きなエージェントワークフローの一部なら候補になりますが、単体の小さなスクリプト作成で優先する必要はありません。&lt;/p&gt;
&lt;h3 id=&#34;4-バグ修正小機能追加テスト補完通常開発&#34;&gt;4. バグ修正、小機能追加、テスト補完、通常開発
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;：原因分析、複数ファイル修正、テスト補完まで含む少し重い修正に向いています。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;：日常開発の主力として最適です。一般的なバグ、小機能、テストのひな形、リネーム、整形などでは最もバランスが良いです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;：対応できますが、Cloud Tasks やエンジニアリングエージェントが不要なら、普通は第一候補ではありません。&lt;/p&gt;
&lt;h3 id=&#34;5-複雑なリファクタリング設計検討難しいデバッグ&#34;&gt;5. 複雑なリファクタリング、設計検討、難しいデバッグ
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;：最も向いています。複雑な作業で本当に高くつくのは単発の出力ではなく、やり直しだからです。&lt;code&gt;GPT-5.5&lt;/code&gt; は主問題解決モデルとして使いやすいです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;：中程度の難しさには向いています。設計案やリファクタリングにも使えますが、非常に長い文脈、多段階推論、不確実性の高い問題では &lt;code&gt;GPT-5.5&lt;/code&gt; ほど安定しないことが多いです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;：より実行寄りで、この種の高難度な判断中心タスクでは優先順位は低めです。&lt;/p&gt;
&lt;h3 id=&#34;6-大量の軽作業反復作業サブタスク分割&#34;&gt;6. 大量の軽作業、反復作業、サブタスク分割
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;：できますが、通常は割高です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;：最も向いています。コメントの一括修正、整形の一括処理、定型コード生成、内容のまとめて修正といった場面で最もバランスが良いです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;：すでに Codex のエンジニアリングフローの中に組み込まれているなら候補ですが、単純な費用対効果では &lt;code&gt;GPT-5.4&lt;/code&gt; に劣りやすいです。&lt;/p&gt;
&lt;h3 id=&#34;7-自動化パイプラインエージェント実行継続的なリポジトリ操作&#34;&gt;7. 自動化パイプライン、エージェント実行、継続的なリポジトリ操作
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;：初期の設計、ルール作成、複雑なタスク分解に向いています。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;：自動化スクリプトや中程度のワークフローロジックの実装に向いており、特に API から使いたい場合に便利です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;：ここでは特に重要です。Codex の Cloud Tasks と Code Review が今もこのモデルで動いているため、「仕組みを自走させる」場面に向いています。&lt;/p&gt;
&lt;h3 id=&#34;8-重要ページの文章ブランド紹介最終仕上げ&#34;&gt;8. 重要ページの文章、ブランド紹介、最終仕上げ
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;：最も向いています。自然さ、文体制御、長文の一貫性が最も高いです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;：通常ページや日常更新には十分です。重要ページは &lt;code&gt;GPT-5.4&lt;/code&gt; で下書きを作り、最後に &lt;code&gt;GPT-5.5&lt;/code&gt; で磨くのが実用的です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;：主文案モデルには向きません。&lt;/p&gt;
&lt;h3 id=&#34;9-固定テンプレートの記事リライト翻訳seo-説明文&#34;&gt;9. 固定テンプレートの記事リライト、翻訳、SEO 説明文
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;：テンプレート設計、最終調整、重要ページの仕上げ、より自然な中国語から英語への翻訳に向いています。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;：大量処理の主力に最も向いています。標準的な記事リライト、固定構成の翻訳、商品文案の書き換え、Meta description の一括生成では、品質とコストのバランスが良いです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;：主文案モデルには向きません。バッチ処理スクリプト、HTML の整形、タグ構造の保持、自動公開フローの改善などに向いています。&lt;/p&gt;
&lt;h3 id=&#34;10-ec-商品文案カテゴリページ大量コンテンツ運用&#34;&gt;10. EC 商品文案、カテゴリページ、大量コンテンツ運用
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;：ルール設計、抜き取り確認、高価値ページの最終仕上げに向いています。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;：大量処理の主力として最適です。商品タイトル、カテゴリ説明、キャンペーン文案、ロングテール SEO コンテンツなどでは、品質とコストのバランスが良いです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;：クロール、クリーニング、バッチ処理、自動公開スクリプトには向いていますが、主文案にはあまり向きません。&lt;/p&gt;
&lt;p&gt;これらを一言でまとめるなら、次のようになります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;複雑な知的作業、複雑な分析、重要な文章作成：&lt;code&gt;GPT-5.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;日常開発、大量処理、反復作業：&lt;code&gt;GPT-5.4&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Codex エンジニアリングエージェント、Cloud Tasks、Code Review：&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;最後にどう使い分けるか&#34;&gt;最後にどう使い分けるか
&lt;/h2&gt;&lt;p&gt;普段の仕事が通常のコーディング、バグ修正、技術相談、付随するドキュメント作成であれば、&lt;code&gt;GPT-5.4&lt;/code&gt; は非常に安定した主力になります。&lt;/p&gt;
&lt;p&gt;より複雑なプロジェクト分析、複数ファイルの修正、設計検討、難しいデバッグ、あるいはエンジニアリングと重い知的作業の両方を 1 つのモデルでこなしたいなら、素直に &lt;code&gt;GPT-5.5&lt;/code&gt; を優先するのがよいです。&lt;/p&gt;
&lt;p&gt;一方で、Codex 環境そのもののワークフロー、たとえば Cloud Tasks、Code Review、長時間のエージェント実行が重要なら、&lt;code&gt;GPT-5.3-Codex&lt;/code&gt; はまだ残す価値があります。ただし、もはや最初の既定選択にするモデルではありません。&lt;/p&gt;
&lt;p&gt;固定テンプレートのコンテンツサイトであれば、実用的な組み合わせは次のようになります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;GPT-5.4&lt;/code&gt; で大量生成&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.5&lt;/code&gt; でテンプレート設計、抜き取り確認、最終仕上げ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt; で自動化ツールを書く&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;現在のより現実的な優先順は、&lt;code&gt;GPT-5.5&lt;/code&gt;、&lt;code&gt;GPT-5.4&lt;/code&gt;、&lt;code&gt;GPT-5.3-Codex&lt;/code&gt; の順です。&lt;code&gt;GPT-5.3-Codex&lt;/code&gt; は、よりエンジニアリングエージェント寄り、あるいは Codex 固有機能寄りの場面に置くのが自然です。&lt;/p&gt;
&lt;p&gt;もし「同じテンプレート記事をリライトする場合、&lt;code&gt;GPT-5.4&lt;/code&gt; は &lt;code&gt;GPT-5.5&lt;/code&gt; よりどれくらい節約できるのか」を知りたいなら、公式の credits 表とこの種のタスクに典型的なトークン構造を見る限り、「ほぼ半分近く節約できる」と考えてよいでしょう。大量コンテンツサイトではその差は十分に大きいため、&lt;code&gt;GPT-5.5&lt;/code&gt; を最初に使ってルールと文体を固め、その後の大量処理を &lt;code&gt;GPT-5.4&lt;/code&gt; に任せる、という運用がもっとも現実的です。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>AI Coding プランの選び方：ライトユーザーは使いやすさ、ヘビーユーザーは柔軟性</title>
        <link>https://knightli.com/ja/2026/05/10/ai-coding-plan-selection/</link>
        <pubDate>Sun, 10 May 2026 08:20:58 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/10/ai-coding-plan-selection/</guid>
        <description>&lt;p&gt;AI Coding のプランは、この半年でかなり速いペースで変わっています。多くのツールが「回数ベース」から「使用量ベース」に移行し、無料または低価格プランの枠は締まり、海外サービスの一部では本人確認、地域制限、より厳しい利用ルールも増えました。&lt;/p&gt;
&lt;p&gt;開発者にとって問題は、もはや「どのモデルが一番強いか」だけではありません。毎月いくら払うのか、枠は十分か、ツールは使いやすいか、そしてプランが突然値上げされたりルール変更されたりしたときに、スムーズに乗り換えられるかも重要です。&lt;/p&gt;
&lt;p&gt;実用的な結論としては、ライトユーザーは使いやすさを買い、中程度のユーザーはコストパフォーマンスを買い、ヘビーユーザーは柔軟性を買うべきです。使い方が重くなるほど、モデルとツールを一つのプランに固定しないほうがよくなります。&lt;/p&gt;
&lt;h2 id=&#34;プラン選びで見るべき-4-つのポイント&#34;&gt;プラン選びで見るべき 4 つのポイント
&lt;/h2&gt;&lt;p&gt;以前の AI Coding プラン選びでは、通常は 3 つのことを見れば十分でした。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;モデルの性能が十分に強いか。&lt;/li&gt;
&lt;li&gt;応答速度が安定しているか。&lt;/li&gt;
&lt;li&gt;プランの枠が足りるか。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;今はこれに 4 つ目を加える必要があります。モデルとツールを分けて使えるかどうかです。&lt;/p&gt;
&lt;p&gt;モデルは推論能力を担い、ツールはコンテキスト管理、ファイル編集、Agent の編成、ワークフロー体験を担います。どちらも重要ですが、完全に結びつけないほうが安全です。たとえば Claude 系モデルが好きなら公式プランを使ってもいいですし、API を別のツールに接続しても構いません。あるエディタや Agent ツールが気に入っているなら、それが自社モデルしか使えないのではなく、複数モデルをつなげられるかを見たほうがよいです。&lt;/p&gt;
&lt;p&gt;ここで大事なのは、複雑にすること自体ではなく、リスクを減らすことです。AI Coding は業界の中でも変化が最も速い分野の一つです。今は枠が緩いプランでも、数か月後には課金方式が変わるかもしれませんし、今は使いやすいツールでも、モデル連携の変更で体験が落ちるかもしれません。モデルとツールを分けておくことは、移行の余地を残すことでもあります。&lt;/p&gt;
&lt;h2 id=&#34;海外プランは全体として締まりつつある&#34;&gt;海外プランは全体として締まりつつある
&lt;/h2&gt;&lt;p&gt;GitHub Copilot、Cursor、Windsurf、Claude Code のようなツールは今でも多くの人の主力ですが、流れはかなり明確です。安くて枠が大きいプランは維持しにくくなり、使用量ベース課金が一般化しています。&lt;/p&gt;
&lt;p&gt;GitHub Copilot のようなサービスが使用量課金を強めるほど、プランそのものの「割安感」は薄くなります。ライトユーザーにはまだ便利ですが、Agent、長いコンテキスト、複雑なコードタスクを高頻度で使う人にとっては、実際の消費は本物の API コストにかなり近づいていきます。&lt;/p&gt;
&lt;p&gt;Cursor と Windsurf は、要するにモデル能力を IDE 体験にまとめているツールです。強みは導入のしやすさと成熟したエディタ体験ですが、弱みはツールへのロックインが強めなことです。専用 Agent、インデックス、自動化フローに依存するほど、後から移るコストは高くなります。&lt;/p&gt;
&lt;p&gt;Claude Code は体験面でも注目度でも魅力がありますが、海外サブスクリプション、本人確認、地域制限、中継サービスの安全性は、中国国内のユーザーにとって無視できないリスクです。特に第三者の中継サービスは、モデルの混在、安定性不足、データ安全性、サービス終了といった問題を抱えやすく、重要な仕事の長期基盤には向きません。&lt;/p&gt;
&lt;h2 id=&#34;国内プランの強みと弱み&#34;&gt;国内プランの強みと弱み
&lt;/h2&gt;&lt;p&gt;国内の AI Coding プランの利点は、多くが API 形式で提供されているため、特定のツールに強く縛られにくいことです。OpenCode、Cline、Continue、自作スクリプト、社内 Agent などに接続できます。&lt;/p&gt;
&lt;p&gt;一方で弱点もはっきりしています。モデルが強く、速く、枠も大きい、という条件を同時に満たすプランはあまり多くありません。&lt;/p&gt;
&lt;p&gt;GLM 系は国内モデルの中では強い部類ですが、ピーク時間帯にはスループットが不安定になり、重いタスクでは速度が足かせになることがあります。Kimi も能力は高いですが、価格と枠のルールは継続的に確認が必要で、特にバックエンドの枠がどれだけ透明かが重要です。MiniMax のようなモデルは速度と枠の面では使いやすく、日常の軽いタスクやバッチ処理、比較的単純なコード支援に向いていますが、難しいエンジニアリング推論では一段落ちることがあります。DeepSeek の新モデルは、キャンペーン価格のうちは非常にコスト効率が高く見えることがありますが、終了後は通常価格で改めて評価し直す必要があります。&lt;/p&gt;
&lt;p&gt;そのため国内プランは、一つの万能パッケージとして使うより、「モデルプール」として運用したほうが向いています。タスクごとにモデルを使い分けるほうが現実的です。&lt;/p&gt;
&lt;h2 id=&#34;ライトユーザー使いやすさを優先しapi-構築にこだわりすぎない&#34;&gt;ライトユーザー：使いやすさを優先し、API 構築にこだわりすぎない
&lt;/h2&gt;&lt;p&gt;週に数回、AI にスクリプト修正、ドキュメント補完、エラー説明、小さなツール作成を頼む程度なら、複雑な構成は不要です。&lt;/p&gt;
&lt;p&gt;このタイプのユーザーは、まず使いやすい製品を選ぶのが正解です。Cursor、Windsurf、Trae、CodeBuddy、通義霊碼、GitHub Copilot などはどれも試す価値があります。大切なのは最安値ではなく、摩擦が少ないことです。普段使うエディタで安定して動き、補完品質が悪くなく、失敗したときに戻しやすい。それで十分です。&lt;/p&gt;
&lt;p&gt;少し安くするためだけに、多段の API、中継、複雑なプロキシ構成を組むのは、ライトユーザーにはあまりおすすめできません。時間コスト、アカウントリスク、トラブル対応の手間のほうが、節約額より大きくなりがちです。&lt;/p&gt;
&lt;h2 id=&#34;中程度のユーザーコスパだけでなく移行しやすさも見る&#34;&gt;中程度のユーザー：コスパだけでなく、移行しやすさも見る
&lt;/h2&gt;&lt;p&gt;毎日 AI を使ってコードを書き、プロジェクトを直し、テストを作り、ドキュメントを整理するようになると、枠と実際の消費量をより真剣に見る必要が出てきます。&lt;/p&gt;
&lt;p&gt;このタイプのユーザーには、主力ツールと予備モデルを分けておく構成が向いています。たとえば、使いやすい IDE プランで日常の編集を行い、別に複数ツールへ接続できる API や集約プランを用意して、長いコンテキストや複雑な Agent タスクに使う、といった形です。&lt;/p&gt;
&lt;p&gt;選ぶときに見るべきポイントは主に 3 つです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;外部ツールへ接続できるか。&lt;/li&gt;
&lt;li&gt;token や枠の消費が見えるか。&lt;/li&gt;
&lt;li&gt;超過時の挙動が、速度制限、機能劣化、停止、純粋な従量課金のどれか。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;見た目は安くても、そのツールの中でしか使えないプランなら、移行コストまで含めて考える必要があります。逆に少し高くても複数ツールで使えるなら、長期的にはそちらのほうが主力に向く場合があります。&lt;/p&gt;
&lt;h2 id=&#34;ヘビーユーザーモデルとツールを固定しない&#34;&gt;ヘビーユーザー：モデルとツールを固定しない
&lt;/h2&gt;&lt;p&gt;ヘビーユーザーにとっての核心は柔軟性です。&lt;/p&gt;
&lt;p&gt;個人やチームが毎日大量に AI Agent を使うようになると、消費量はすぐ大きくなります。コードベース検索、長いコンテキストでの修正、多段のデバッグ、自動テスト修復などは、token 消費を一気に増やします。その状態で単一プランに依存すると、次の 3 つの問題が起きやすくなります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;枠が急に足りなくなる。&lt;/li&gt;
&lt;li&gt;課金ルールが突然変わる。&lt;/li&gt;
&lt;li&gt;あるツールやモデルが一時的に使えなくなる。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;より安定したやり方は、層を分けた構成にすることです。主力 Agent ツールを一つ、差し替え可能なモデル接続先を一つ以上、軽い仕事をさばく低コストモデルを一つ、難しい仕事を担う高性能モデルを一つ、という形です。日常の軽い仕事を全部いちばん高いモデルに投げる必要はありませんし、重要な仕事を最安モデルだけに頼るのも危険です。&lt;/p&gt;
&lt;p&gt;ヘビーユーザーにとっては、「どのツールにもモデルをつなげられる」「どのモデルも別ツールで使える」という柔軟性のほうが、月数十ドルの差額より重要です。本当に高いのはサブスク料金そのものではなく、一つのエコシステムに閉じ込められたあとで、ワークフローを作り直すコストだからです。&lt;/p&gt;
&lt;h2 id=&#34;より安定した組み合わせ方&#34;&gt;より安定した組み合わせ方
&lt;/h2&gt;&lt;p&gt;比較的安定した構成は、次のように考えられます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;軽いタスクは低コストモデルに任せる。コード説明、小さなスクリプト、整形、簡単な文書生成など。&lt;/li&gt;
&lt;li&gt;中程度のタスクはコスパ重視モデルに任せる。通常の機能開発、テスト補完、リファクタリング提案など。&lt;/li&gt;
&lt;li&gt;難しいタスクは強いモデルに任せる。複雑な設計変更、複数ファイルの修正、難しいバグ、長いコンテキスト推論など。&lt;/li&gt;
&lt;li&gt;ツール層は開いておく。API 接続、設定の持ち出し、モデル切り替えができるツールを選ぶ。&lt;/li&gt;
&lt;li&gt;予備ルートを残す。主力プランのルールが変わったときに、別のモデルやツールへすぐ切り替えられるようにする。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;これが最安とは限りませんが、変化にはかなり強くなります。AI Coding の価格や枠は今後も変わり続けるはずです。長期的に価値があるのは、短期的にお得に見えるプランそのものではなく、持ち運びできるワークフローです。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;AI Coding のプランは、月額だけで判断すべきではありません。ライトユーザーはシンプルさと使いやすさを優先し、中程度のユーザーは枠、消費量、移行しやすさを見て、ヘビーユーザーはモデルとツールを切り離して単一エコシステムへの依存を避けるべきです。&lt;/p&gt;
&lt;p&gt;覚えておきたいのは、プランもモデルもツールも変わる、ということです。選択権を自分の手元に残しておくことが、長く AI Coding を使ううえで最も重要なコスト管理になります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Chrome が 4GB の Gemini Nano を静かにダウンロード：確認、無効化、削除の方法</title>
        <link>https://knightli.com/ja/2026/05/09/chrome-gemini-nano-silent-download/</link>
        <pubDate>Sat, 09 May 2026 21:37:18 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/09/chrome-gemini-nano-silent-download/</guid>
        <description>&lt;p&gt;Google Chrome が、ユーザーの明示的な許可なしに約 4GB のローカル AI モデルファイルをバックグラウンドでダウンロードしていると報じられ、プライバシー、ストレージ使用量、環境負荷をめぐる議論が起きています。&lt;/p&gt;
&lt;p&gt;このファイル群は Gemini Nano に関連しており、主に Chrome のローカル AI 機能で使われます。論点は、ブラウザがローカル AI をサポートすること自体ではなく、ダウンロードの過程が十分に透明か、ユーザーが事前に知るべきか、そしてシステムリソースの使い方が妥当かどうかです。&lt;/p&gt;
&lt;h2 id=&#34;何が起きたのか&#34;&gt;何が起きたのか
&lt;/h2&gt;&lt;p&gt;問題になっているモデルファイルは &lt;code&gt;weights.bin&lt;/code&gt; という名前で、Chrome の &lt;code&gt;OptGuideOnDeviceModel&lt;/code&gt; ディレクトリにあります。Gemini Nano のローカル版とみられ、デバイス上で一部の AI 推論を行うために使われます。&lt;/p&gt;
&lt;p&gt;Chrome はデバイスのハードウェア性能に応じて、バックグラウンドでダウンロードするかどうかを判断します。特に RAM や VRAM などの条件が参照されます。ユーザーが自分でダウンロードを開始する必要はなく、事前に明確な通知が表示されない場合もあります。&lt;/p&gt;
&lt;p&gt;さらに厄介なのは、モデルファイルを手動で削除しても、完全には再ダウンロードを止められないことです。関連機能が有効なままだと、Chrome の再起動後や更新後に再びダウンロードされる可能性があります。&lt;/p&gt;
&lt;p&gt;現在の議論で名前が挙がっている対象プラットフォームは、Windows 11、macOS、Ubuntu などのデスクトップ OS です。Chrome のデスクトップ版の利用規模を考えると、潜在的に影響を受けるデバイスは数億台に達する可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;google-の説明&#34;&gt;Google の説明
&lt;/h2&gt;&lt;p&gt;Google は、これらのファイルは「Help me write」や詐欺検出などのローカル AI 機能を支えるためのものだと説明しています。モデルをローカルで実行することで、一部のデータ送信を減らし、プライバシー保護を改善できるという主張です。&lt;/p&gt;
&lt;p&gt;また Google によると、デバイスの空き容量が不足した場合、Chrome は関連モデルを自動的に削除して容量を確保します。つまり、モデルが必ず永続的にディスクを占有するわけではありません。&lt;/p&gt;
&lt;p&gt;同時に Google は、2024 年 2 月以降、ユーザーは Chrome の設定から関連機能を無効化できるとしています。無効化後は、モデルのダウンロードや更新は続かないとのことです。&lt;/p&gt;
&lt;h2 id=&#34;確認と無効化の方法&#34;&gt;確認と無効化の方法
&lt;/h2&gt;&lt;p&gt;Chrome に Gemini Nano モデルをローカルに保持してほしくない場合は、次の場所を確認できます。&lt;/p&gt;
&lt;p&gt;まず Chrome の設定を開き、「オンデバイス AI」、ローカル AI、文章作成支援、最適化の提案に関連する項目を探し、不要な機能をオフにします。&lt;/p&gt;
&lt;p&gt;次に、アドレスバーに次を入力します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chrome://flags
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;その後、次の項目を検索して無効化します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Enables optimization guide on device
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;最後に、Chrome のユーザーデータディレクトリで &lt;code&gt;OptGuideOnDeviceModel&lt;/code&gt; フォルダを探し、その中のモデルファイルを削除します。ただし、ファイルを削除するだけでは通常不十分です。先に関連する flag や設定を無効化しておかないと、Chrome が後で再びダウンロードする可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;os-ごとの主な保存場所&#34;&gt;OS ごとの主な保存場所
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;OptGuideOnDeviceModel&lt;/code&gt; は通常、Chrome のユーザーデータディレクトリ配下にあります。OS やインストール方法によって異なりますが、まずは次の場所を確認するとよいでしょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows: &lt;code&gt;%LOCALAPPDATA%\Google\Chrome\User Data\&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;macOS: &lt;code&gt;~/Library/Application Support/Google/Chrome/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Linux: &lt;code&gt;~/.config/google-chrome/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Chromium: &lt;code&gt;~/.config/chromium/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;該当するディレクトリに入ったら、&lt;code&gt;OptGuideOnDeviceModel&lt;/code&gt; または &lt;code&gt;weights.bin&lt;/code&gt; を検索します。Chrome Beta、Dev、Canary を使っている場合は、ディレクトリ名に対応するチャンネル名が含まれることがあります。&lt;/p&gt;
&lt;h2 id=&#34;weightsbin-がダウンロード済みか確認する方法&#34;&gt;weights.bin がダウンロード済みか確認する方法
&lt;/h2&gt;&lt;p&gt;もっとも直接的な方法は、Chrome のユーザーデータディレクトリで次を検索することです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;weights.bin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ダウンロード済みであれば、通常は &lt;code&gt;OptGuideOnDeviceModel&lt;/code&gt; の中にあり、ファイルサイズは数 GB 近くになる可能性があります。更新日時を見れば、Chrome が最近バックグラウンドで作成または更新したものかどうかも判断できます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;weights.bin&lt;/code&gt; が見つからない場合でも、そのデバイスが今後まったくダウンロードしないとは限りません。Chrome はハードウェア条件、地域、バージョン、機能フラグ、実験設定に基づいて、モデルを取得するかどうかを決める場合があります。&lt;/p&gt;
&lt;h2 id=&#34;無効化すると影響を受ける可能性がある-chrome-ai-機能&#34;&gt;無効化すると影響を受ける可能性がある Chrome AI 機能
&lt;/h2&gt;&lt;p&gt;関連するローカル AI 機能や最適化機能を無効化すると、Gemini Nano に依存するオンデバイス機能に影響が出る可能性があります。たとえば「Help me write」、ローカルの詐欺検出、今後追加されるクラウドを経由しないブラウザ AI 機能などです。&lt;/p&gt;
&lt;p&gt;これらの機能を使っていないユーザーであれば、日常的なブラウジングへの影響は通常大きくありません。一方で、Chrome 組み込みの文章作成支援、ページ理解、安全検出の実験機能をよく使うユーザーは、クラウド処理へ戻る、機能が使えなくなる、または別の代替方式が使われる可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;どこが争点なのか&#34;&gt;どこが争点なのか
&lt;/h2&gt;&lt;p&gt;この件の中心的な争点は、ブラウザがユーザーの明確な同意なしに、AI 機能のために数 GB のモデルファイルを事前にダウンロードしてよいのかという点です。&lt;/p&gt;
&lt;p&gt;支持する側は、ローカル AI によってクラウド処理を減らし、プライバシー保護や応答速度の向上につながると考えます。反対する側は、特にファイルサイズが 4GB 近くあり、ストレージや通信量に影響し得る場合、少なくとも事前に明確な通知が必要だと主張します。&lt;/p&gt;
&lt;p&gt;プライバシー専門家は、このような十分な告知を伴わないバックグラウンドダウンロードが、EU の ePrivacy 指令や GDPR 上の論点になり得るとも指摘しています。違反に当たるかどうかは、Google の告知方法、デフォルト設定、データ処理の経路、ユーザー制御の仕組みによって変わります。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Chrome に Gemini Nano が入ることは、ブラウザがより多くの AI 機能をローカル実行へ移していることを示しています。一方で、ローカルモデルもディスク容量と帯域を消費し、ユーザーが自分のデバイスをどれだけ制御できているかという感覚に影響します。&lt;/p&gt;
&lt;p&gt;一般ユーザーにとって最も直接的な対処は、Chrome のローカル AI と最適化機能の設定を確認することです。不要であれば関連オプションをオフにし、その後 &lt;code&gt;OptGuideOnDeviceModel&lt;/code&gt; ディレクトリ内のモデルファイルを削除します。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>llama.cpp のマルチ GPU 性能を実測する考え方：2x V100 16GB は単体 32GB より速いのか？</title>
        <link>https://knightli.com/ja/2026/05/09/llama-cpp-multi-gpu-offload-performance/</link>
        <pubDate>Sat, 09 May 2026 15:05:41 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/09/llama-cpp-multi-gpu-offload-performance/</guid>
        <description>&lt;p&gt;大まかな結論は、llama.cpp のマルチ GPU offload は「2 枚目を足せば性能がそのまま増える」ものではない、ということです。モデルが最初から 1 枚の 32GB GPU に完全に収まるなら、2x V100 16GB は単体 32GB より扱いにくく、場合によっては遅くなります。逆に、モデルが 1 枚の 16GB に収まらないなら、2 枚構成の主な価値は「モデルを GPU に載せられること」で、その効果はかなり大きくなります。&lt;/p&gt;
&lt;h2 id=&#34;まず-split-mode-を分けて考える&#34;&gt;まず split mode を分けて考える
&lt;/h2&gt;&lt;p&gt;llama.cpp のマルチ GPU 利用では、主に &lt;code&gt;--split-mode&lt;/code&gt; と &lt;code&gt;--tensor-split&lt;/code&gt; が関係します。性能を考えるときは、まず次のモードを分けて見ます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;layer&lt;/code&gt;：層ごとに別の GPU へ分割する方式。互換性が高く、多くの場合は最初に試す選択肢です。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tensor&lt;/code&gt;：テンソル計算を複数 GPU に分割する方式。より並列計算に近い一方で、GPU 間の帯域とバックエンド対応に強く依存します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;row&lt;/code&gt;：古い行分割方式です。今でも見かけますが、新規構成で最初に選ぶ方式ではありません。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;簡単に言えば、&lt;code&gt;layer&lt;/code&gt; は「階ごとに別のカードへ置く」ようなものです。単一 token 生成時には、2 枚のカードを同時に常に使い切れるとは限りません。&lt;code&gt;tensor&lt;/code&gt; は「同じ層を 2 枚のカードで一緒に計算する」形に近く、理論上は並列性がありますが、カード間通信がボトルネックになります。&lt;/p&gt;
&lt;h2 id=&#34;単体-32gb-に収まるなら双-16gb-が速いとは限らない&#34;&gt;単体 32GB に収まるなら、双 16GB が速いとは限らない
&lt;/h2&gt;&lt;p&gt;モデルと KV cache が 1 枚の 32GB GPU に完全に収まるなら、単体カードのほうが安定し、速いことも多いです。1x V100 32GB と 2x V100 16GB のような同世代ハードウェアでは、後者が必ず勝つとは言えません。&lt;/p&gt;
&lt;p&gt;保守的に見ると、2x V100 16GB は単体 V100 32GB より 10% から 40% 遅くなることがあります。特に、一人でのチャット、Continue Agent、コード Q&amp;amp;A のように、1 回のリクエストで主に 1 つの回答を生成する用途ではそうなりやすいです。&lt;/p&gt;
&lt;p&gt;理由は単純です。マルチ GPU は VRAM を単純に 1 つの高速なプールへ合体するわけではありません。layer 分割では推論が GPU 間を移動し、token 生成時に片方の GPU がもう片方を待つことがあります。tensor 分割では 2 枚で同時に計算できますが、中間結果の同期が必要になり、帯域と遅延がスループットに直接効きます。&lt;/p&gt;
&lt;p&gt;つまり選択肢が次の 2 つなら、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1x V100 32GB&lt;/li&gt;
&lt;li&gt;2x V100 16GB&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;対象モデルがすでに 1 枚の 32GB に完全に収まる場合、単体 32GB のほうが使いやすいことが多いです。&lt;/p&gt;
&lt;h2 id=&#34;単体-16gb-に収まらないなら双カードの価値は大きい&#34;&gt;単体 16GB に収まらないなら、双カードの価値は大きい
&lt;/h2&gt;&lt;p&gt;一方で、モデルが 1 枚の 16GB に収まらず、2 枚の 16GB なら収まる場合は話が変わります。&lt;/p&gt;
&lt;p&gt;このとき双カードの価値ははっきりしています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 枚の 16GB：大量の CPU offload が必要になり、速度が大きく落ちる可能性があります。&lt;/li&gt;
&lt;li&gt;2x 16GB：重みをできるだけ GPU に残せるため、CPU/GPU 混在実行よりかなり速くなる可能性があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この場面では、2x V100 16GB が単体 32GB より速いとは限りません。それでも「1 枚 16GB と大量のシステムメモリ offload」より数倍速いことはあります。つまり双カードの第一の価値は加速ではなく、モデル重みを遅いシステムメモリへ落とさずに済むことです。&lt;/p&gt;
&lt;h2 id=&#34;v100-pcie-と-v100-sxm2-は大きく違う&#34;&gt;V100 PCIe と V100 SXM2 は大きく違う
&lt;/h2&gt;&lt;p&gt;マルチ GPU 推論で見落としやすいのがインターコネクトです。&lt;/p&gt;
&lt;p&gt;V100 SXM2 で、マシンに NVLink がある場合、GPU 間通信帯域はかなり高くなります。NVIDIA の V100 資料では、NVLink の相互接続帯域は最大 300GB/s とされています。この環境なら、&lt;code&gt;tensor&lt;/code&gt; や大きめの batch を使う場面で、単体カードに近い性能、あるいはそれを超える性能を狙いやすくなります。&lt;/p&gt;
&lt;p&gt;V100 PCIe の場合は、もっと保守的に見るべきです。V100 PCIe の相互接続は主に PCIe Gen3 で、資料上の interconnect bandwidth は 32GB/s です。NVLink とは桁が違うため、PCIe 双カードでは「VRAM は足りるが速度は 2 倍にならない」ことがよくあります。&lt;/p&gt;
&lt;p&gt;そのため 2x V100 16GB が価値ある構成かを判断するときは、VRAM を足して 32GB と見るだけでは足りません。PCIe 版なのか、SXM2/NVLink 版なのかも確認する必要があります。&lt;/p&gt;
&lt;h2 id=&#34;実際にはどう選ぶか&#34;&gt;実際にはどう選ぶか
&lt;/h2&gt;&lt;p&gt;モデルが 1 枚の 32GB GPU に収まるなら、まず単体カードを優先します。遅延、安定性、調整コストの面で有利なことが多いです。&lt;/p&gt;
&lt;p&gt;モデルが 1 枚の 16GB には収まらず、2 枚の 16GB なら収まるなら、双カードは使う価値があります。この場合の目的は、重みをできるだけ GPU に残すことであり、性能が線形に倍増することを期待することではありません。&lt;/p&gt;
&lt;p&gt;V100 PCIe の双カードなら、まず &lt;code&gt;--split-mode layer&lt;/code&gt; を試し、「安定して動くこと」と「CPU に落とす量を減らすこと」を目標にします。&lt;/p&gt;
&lt;p&gt;V100 SXM2/NVLink なら、&lt;code&gt;tensor&lt;/code&gt; 関連のモードを試す価値が高くなります。特に prefill、大きい batch、同時リクエストの場面で有効です。&lt;/p&gt;
&lt;h2 id=&#34;いつ-2x16gb-を買いいつ-1x32gb-を買うか&#34;&gt;いつ 2x16GB を買い、いつ 1x32GB を買うか
&lt;/h2&gt;&lt;p&gt;一人で使い、主にチャット、コード補完、Continue Agent、長文コンテキスト Q&amp;amp;A を行い、対象モデルが 32GB に収まるなら、1x32GB のほうが一般的にはおすすめです。GPU 間スケジューリングがなく、遅延が安定し、問題切り分けも簡単です。&lt;/p&gt;
&lt;p&gt;すでに 16GB カードを 1 枚持っていて、低コストで 30B、32B、または高めの量子化モデルを動かしたいなら、2x16GB には意味があります。token/s が倍になるとは限りませんが、本来 CPU offload が必要だった重みを GPU に残せます。&lt;/p&gt;
&lt;p&gt;新規に購入するなら、優先度は次のように考えられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;単一モデル、単一ユーザー、応答遅延重視：1x32GB を優先。&lt;/li&gt;
&lt;li&gt;モデルが単体カードに収まらず、予算が限られる：2x16GB を検討。&lt;/li&gt;
&lt;li&gt;NVLink または SXM2 マシンがある：2x16GB の有用性は通常の PCIe 双カードよりかなり高い。&lt;/li&gt;
&lt;li&gt;将来さらに長いコンテキストを使いたい：重みサイズだけでなく、KV cache 用の VRAM も残す。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;layer-split-と-tensor-split-の実用的な使い方&#34;&gt;layer split と tensor split の実用的な使い方
&lt;/h2&gt;&lt;p&gt;実用上のおすすめは、まず &lt;code&gt;layer&lt;/code&gt;、次に &lt;code&gt;tensor&lt;/code&gt; を測ることです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;layer&lt;/code&gt; は出発点に向いています。モデルを層単位で分配し、互換性が高く、PCIe 双カードにも比較的向いています。欠点は、生成段階がパイプラインのようになり、ある時点では片方のカードだけが忙しく、もう片方が待つことがある点です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;tensor&lt;/code&gt; は、V100 SXM2/NVLink のように相互接続帯域が高いマシンに向いています。同じ層の計算の一部を複数 GPU に分けるため、理論上は並列性があります。ただしカード間同期が増えます。PCIe 双カードでは、通信コストが利益を食いつぶす可能性があります。&lt;/p&gt;
&lt;p&gt;実際のテストは、まず次のような組み合わせから始めます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-bench -m model.gguf -ngl &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; --split-mode layer --tensor-split 1,1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-bench -m model.gguf -ngl &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; --split-mode tensor --tensor-split 1,1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-bench -m model.gguf -ngl &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; --split-mode layer --tensor-split 1,0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;3 つ目は長期運用向けではありません。単体カードの参照値を取るためです。これにより、双カードが本当に速いのか、それとも単に VRAM 圧力を分散しているだけなのかを見分けられます。&lt;/p&gt;
&lt;h2 id=&#34;prefill-と-decode-で性能が違う理由&#34;&gt;prefill と decode で性能が違う理由
&lt;/h2&gt;&lt;p&gt;ローカル LLM の性能は、通常 2 つの段階に分けて見るべきです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;prefill&lt;/code&gt;：入力 prompt を処理します。代表的な指標は &lt;code&gt;pp512&lt;/code&gt; のような prompt processing スループットです。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;decode&lt;/code&gt;：回答を token ごとに生成します。代表的な指標は &lt;code&gt;tg128&lt;/code&gt; のような token generation スループットです。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;prefill&lt;/code&gt; は大きな batch の行列計算に近く、GPU を使い切りやすく、マルチ GPU 並列化の恩恵も受けやすいです。&lt;code&gt;decode&lt;/code&gt; は 1 token ずつ生成するため、batch が小さく同期が頻繁です。そのためカード間通信とスケジューリング遅延が表に出やすくなります。&lt;/p&gt;
&lt;p&gt;そのため、双カードで &lt;code&gt;pp512&lt;/code&gt; は良くなるのに、&lt;code&gt;tg128&lt;/code&gt; はほとんど改善しない、あるいは遅くなることがあります。チャットや Agent の体感は &lt;code&gt;tg128&lt;/code&gt; に近く、長文投入、batch prefill、同時リクエスト処理では &lt;code&gt;pp512&lt;/code&gt; も重要になります。&lt;/p&gt;
&lt;h2 id=&#34;kv-cache-は第-2-の-vram-ボトルネックになるか&#34;&gt;KV cache は第 2 の VRAM ボトルネックになるか
&lt;/h2&gt;&lt;p&gt;なります。多くの人はモデル重みだけを計算し、KV cache を忘れます。&lt;/p&gt;
&lt;p&gt;モデル重みは「モデルをロードできるか」を決めます。KV cache は「必要なコンテキスト長を使えるか」を決めます。コンテキストが長く、同時実行が多く、batch が大きいほど、KV cache の占有は目立ちます。モデル本体は 32GB に収まるのに、32K や 64K コンテキストを開くと VRAM が足りなくなることがあります。&lt;/p&gt;
&lt;p&gt;少なくとも次の分の VRAM 余裕を残して考えるべきです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KV cache&lt;/li&gt;
&lt;li&gt;CUDA graph またはバックエンドのランタイムオーバーヘッド&lt;/li&gt;
&lt;li&gt;prompt batch と ubatch&lt;/li&gt;
&lt;li&gt;デスクトップ、ドライバ、他プロセスの使用量&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2x16GB を使う場合、VRAM は完全に等価な 32GB の大きなプールではありません。一部のバッファ、KV cache、中間テンソルは、単一カードの残り VRAM に制限される場合があります。長文コンテキストを測るときは、モデルが起動するかだけでなく、実際の &lt;code&gt;--ctx-size&lt;/code&gt; と同時実行数でテストするのが安全です。&lt;/p&gt;
&lt;h2 id=&#34;llama-bench-で双カードを自分で測る&#34;&gt;llama-bench で双カードを自分で測る
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;llama-bench&lt;/code&gt; は、直接チャットするよりハードウェア比較に向いています。prompt processing と token generation を分けて比較できるためです。公式 README の基本例は次の通りです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-bench -m model.gguf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;双 V100 なら、少なくとも次の組み合わせを測ります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Single-card baseline&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; llama-bench -m model.gguf -ngl &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Dual-card layer split&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 llama-bench -m model.gguf -ngl &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; --split-mode layer --tensor-split 1,1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Dual-card tensor split&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 llama-bench -m model.gguf -ngl &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; --split-mode tensor --tensor-split 1,1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;特に見るべき列は 2 つです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pp512&lt;/code&gt;：prompt processing。長い入力や batch prefill に関係します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt;：token generation。単一ユーザーのチャットや Agent の体感に関係します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;テスト時は、モデル、量子化形式、コンテキスト長、batch、ドライババージョン、llama.cpp バージョンを固定します。各組み合わせを複数回実行し、一度だけの結果ではなく中央値で比べるほうが信頼できます。最後に、Continue Agent、OpenAI-compatible server、自分の RAG リクエストなど、実際のワークフローでも確認します。benchmark が良くても、対話体験が必ず良くなるとは限らないためです。&lt;/p&gt;
&lt;h2 id=&#34;一言でまとめると&#34;&gt;一言でまとめると
&lt;/h2&gt;&lt;p&gt;2x V100 16GB の強みは主に VRAM 容量であり、生成速度が必ず上がることではありません。モデルが単体カードに収まるなら、単体 32GB のほうが速く安定しやすいです。モデルが 1 枚 16GB に収まらないなら、双 16GB の価値は大きくなります。大量の CPU offload を避けられるためです。実際に速くなるかは、split mode、batch、モデルサイズ、そして 2 枚の V100 が PCIe でつながっているのか NVLink なのかで決まります。&lt;/p&gt;
&lt;p&gt;参考資料：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;llama.cpp server README&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.mintlify.com/ggml-org/llama.cpp/concepts/backends&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;llama.cpp Compute Backends&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.nvidia.com/en-gb/data-center/tesla-v100/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NVIDIA Tesla V100&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://images.nvidia.com/content/technologies/volta/pdf/tesla-volta-v100-datasheet.pdf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NVIDIA V100 Datasheet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude Code の制限が倍増：Anthropic が SpaceX の計算資源拡張で利用制限を緩和</title>
        <link>https://knightli.com/ja/2026/05/09/anthropic-claude-code-higher-limits-spacex-compute/</link>
        <pubDate>Sat, 09 May 2026 10:59:48 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/09/anthropic-claude-code-higher-limits-spacex-compute/</guid>
        <description>&lt;p&gt;Anthropic は 2026 年 5 月 6 日、Claude Code と Claude API の利用上限を引き上げ、SpaceX と新たな計算資源提携を結んだと発表しました。一般ユーザーにとって最も直接的な変化は、Claude Code で使える容量が増えることです。開発者や企業にとっては、Claude の推論容量がさらに拡大している点が重要です。&lt;/p&gt;
&lt;p&gt;今回の発表は 2 つに分けて見ると分かりやすいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code と Claude API の制限引き上げ。&lt;/li&gt;
&lt;li&gt;SpaceX のデータセンターから得る新しい計算資源。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;claude-code-の制限はどう変わったか&#34;&gt;Claude Code の制限はどう変わったか
&lt;/h2&gt;&lt;p&gt;Anthropic によると、発表当日から次の 3 つの変更が有効になりました。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Pro、Max、Team、seat-based Enterprise プランで、Claude Code の 5 時間 rate limit が倍増。&lt;/li&gt;
&lt;li&gt;Pro と Max アカウントに対する Claude Code のピーク時間帯の制限引き下げを廃止。&lt;/li&gt;
&lt;li&gt;Claude Opus モデルの API rate limits を大幅に引き上げ。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;つまり、Claude Code を長時間のコーディング、リポジトリ分析、リファクタリング、デバッグ、Agent ワークフローに使っている場合、作業途中で制限に達する場面が減る可能性があります。&lt;/p&gt;
&lt;p&gt;ただし、制限引き上げは無制限利用を意味しません。Claude Code は引き続き、契約プラン、利用方法、モデル、タスクの長さ、コンテキストサイズ、プラットフォームポリシーの影響を受けます。それでも、以前より明確に利用余地が広がったと言えます。&lt;/p&gt;
&lt;h2 id=&#34;なぜ計算資源が-claude-code-体験に影響するのか&#34;&gt;なぜ計算資源が Claude Code 体験に影響するのか
&lt;/h2&gt;&lt;p&gt;Claude Code のようなツールは、通常のチャットより多くのリソースを使います。1 つのコーディングタスクでも次のような処理が含まれることがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多数のファイル読み込み。&lt;/li&gt;
&lt;li&gt;長いコンテキストの分析。&lt;/li&gt;
&lt;li&gt;複数回のツール呼び出し。&lt;/li&gt;
&lt;li&gt;コードの生成、編集、確認。&lt;/li&gt;
&lt;li&gt;テスト実行やエラー説明の繰り返し。&lt;/li&gt;
&lt;li&gt;複雑な推論に Opus モデルを使うこと。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの操作で消費されるのは token だけではありません。モデル推論容量、同時実行能力、スケジューリング資源も必要です。ユーザーには「制限」「待ち行列」「ピーク時の遅さ」として見え、プラットフォーム側では計算資源の供給と需要の圧力として見えます。&lt;/p&gt;
&lt;p&gt;そのため、Anthropic が制限引き上げと計算資源提携を同じ発表に入れたことには意味があります。Claude Code の体験改善は、単にプラン設定を変えるだけではなく、バックエンドの推論容量拡張に依存しているということです。&lt;/p&gt;
&lt;h2 id=&#34;spacex-との提携で何が増えるのか&#34;&gt;SpaceX との提携で何が増えるのか
&lt;/h2&gt;&lt;p&gt;Anthropic は SpaceX と契約し、SpaceX Colossus 1 データセンターの全計算容量を利用すると述べています。公式発表では、この容量は 300 メガワット超で、22 万基以上の NVIDIA GPU に相当し、1 か月以内に Anthropic が利用可能になるとされています。&lt;/p&gt;
&lt;p&gt;この追加容量は、Claude Pro と Claude Max 加入者の利用可能容量を直接改善するとされています。&lt;/p&gt;
&lt;p&gt;発表では、将来的に SpaceX と軌道上 AI 計算資源の開発で協力することにも関心を示しています。ただしこれは長期的な方向性であり、ユーザーがすぐに感じる Claude Code の制限引き上げとは別の話です。&lt;/p&gt;
&lt;h2 id=&#34;anthropic-の計算資源展開は大きくなっている&#34;&gt;Anthropic の計算資源展開は大きくなっている
&lt;/h2&gt;&lt;p&gt;SpaceX は Anthropic の最近の計算資源拡張の一部にすぎません。公式発表では他の提携も挙げられています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Amazon との最大 5GW の提携。うち約 1GW の新容量は 2026 年末までに稼働予定。&lt;/li&gt;
&lt;li&gt;Google と Broadcom との 5GW の提携。2027 年から稼働開始予定。&lt;/li&gt;
&lt;li&gt;Microsoft と NVIDIA との戦略提携。300 億ドルの Azure 容量を含む。&lt;/li&gt;
&lt;li&gt;Fluidstack との 500 億ドル規模の米国 AI インフラ投資。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anthropic は、Claude の学習と推論に AWS Trainium、Google TPU、NVIDIA GPU など複数の AI ハードウェアを使うとも説明しています。&lt;/p&gt;
&lt;p&gt;この傾向は明確です。主要モデル企業の競争は、モデル名、ベンチマーク、製品機能だけではありません。電力、データセンター、GPU、TPU、ネットワーク、グローバル展開能力も競争領域になっています。&lt;/p&gt;
&lt;h2 id=&#34;claude-code-ユーザーへの実際の影響&#34;&gt;Claude Code ユーザーへの実際の影響
&lt;/h2&gt;&lt;p&gt;開発者にとって最も注目すべき変化は、Claude Code の 5 時間制限が倍増したことです。これは次のような場面に影響します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;大規模リポジトリのコード読解。&lt;/li&gt;
&lt;li&gt;複数ファイルのリファクタリング。&lt;/li&gt;
&lt;li&gt;バグ調査とテスト修正。&lt;/li&gt;
&lt;li&gt;コード移行と依存関係アップグレード。&lt;/li&gt;
&lt;li&gt;長時間の Agent コーディングタスク。&lt;/li&gt;
&lt;li&gt;Team や Enterprise で複数人が同時に Claude Code を使う場合。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これまで Claude Code では、タスクが進行中なのに上限に達することがよくありました。制限が上がれば、Agent が途中で止まらず 1 つのタスクを最後まで進めやすくなります。&lt;/p&gt;
&lt;p&gt;Pro または Max ユーザーにとっては、ピーク時間帯の制限引き下げ廃止も重要です。混雑する時間帯でも体験が安定しやすくなり、一時的な制限強化で Claude Code のワークフローが大きく妨げられる可能性が下がります。&lt;/p&gt;
&lt;h2 id=&#34;api-ユーザーにとっての意味&#34;&gt;API ユーザーにとっての意味
&lt;/h2&gt;&lt;p&gt;発表では、Claude Opus モデルの API rate limits も大幅に引き上げられたとされています。Opus を複雑なタスクに使うチームにとって、通常これは次のような意味を持ちます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;より高い同時実行。&lt;/li&gt;
&lt;li&gt;429 レート制限エラーの減少。&lt;/li&gt;
&lt;li&gt;バッチ処理を支えやすくなる。&lt;/li&gt;
&lt;li&gt;長いコンテキスト、複雑な推論、Agent ワークフローにより適する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし具体的な上限は、アカウント、組織、モデル、プランによって異なります。本番導入前には、自分の Anthropic Console、rate limits ドキュメント、エラーログを確認する必要があります。&lt;/p&gt;
&lt;h2 id=&#34;企業と地域展開も重要になる&#34;&gt;企業と地域展開も重要になる
&lt;/h2&gt;&lt;p&gt;Anthropic は、金融、医療、政府などの規制業界では、コンプライアンスとデータ所在要件を満たすために地域内インフラがますます必要になるとも述べています。そのため、容量拡張の一部は米国外、特にアジアと欧州の推論能力に向けられます。&lt;/p&gt;
&lt;p&gt;これは企業顧客にとって重要です。大規模モデルアプリケーションが中核業務に入ると、問題は「モデルが使いやすいか」だけではありません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;データが指定地域に留まるか。&lt;/li&gt;
&lt;li&gt;業界のコンプライアンス要件を満たせるか。&lt;/li&gt;
&lt;li&gt;ピーク時に安定した容量があるか。&lt;/li&gt;
&lt;li&gt;チーム単位、組織単位の同時利用を支えられるか。&lt;/li&gt;
&lt;li&gt;監査、権限、安全制御があるか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この観点では、計算資源の拡張は単なる性能ニュースではありません。企業の調達や導入判断にも影響します。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Anthropic の今回のメッセージは明確です。新しい計算容量がオンラインになるため、Claude Code と Claude API の利用制限が緩和されています。&lt;/p&gt;
&lt;p&gt;一般的な Claude Code ユーザーにとって重要なのは、5 時間制限の倍増と、Pro、Max のピーク時間帯制限引き下げ廃止です。API と企業ユーザーにとっては、Opus rate limits の引き上げと、SpaceX、Amazon、Google、Microsoft、NVIDIA、Fluidstack との長期的な計算資源戦略が重要です。&lt;/p&gt;
&lt;p&gt;AI ツールはますますインフラサービスに近づいています。モデル能力は一部にすぎません。安定した容量、地域コンプライアンス、制限ポリシー、コスト管理もユーザー体験を決めます。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/higher-limits-spacex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic：Higher usage limits for Claude and a compute deal with SpaceX&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenAI の新世代 Realtime 音声モデル：GPT-Realtime-2、リアルタイム翻訳、ストリーミング文字起こし</title>
        <link>https://knightli.com/ja/2026/05/09/openai-realtime-voice-models-gpt-realtime-2-translate-whisper/</link>
        <pubDate>Sat, 09 May 2026 10:58:47 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/09/openai-realtime-voice-models-gpt-realtime-2-translate-whisper/</guid>
        <description>&lt;p&gt;OpenAI は 2026 年 5 月 7 日、新世代の Realtime API 向け音声モデルを発表しました。焦点は「より人間らしく話す」ことだけではなく、音声エージェントがリアルタイムの会話中に理解し、推論し、ツールを呼び出し、翻訳し、文字起こしできるようにすることです。&lt;/p&gt;
&lt;p&gt;今回の更新には 3 つのモデルが含まれます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPT-Realtime-2&lt;/code&gt;：リアルタイム音声 Agent 向けの主力モデル。より強い推論、ツール呼び出し、長いコンテキストに対応します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-Realtime-Translate&lt;/code&gt;：70 以上の入力言語から 13 の出力言語へのリアルタイム音声翻訳モデル。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-Realtime-Whisper&lt;/code&gt;：字幕、会議メモ、リアルタイムワークフロー向けの低遅延ストリーミング音声認識モデル。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;初期の音声アシスタントが「一問一答」に近かったとすれば、今回の更新は「聞きながら作業する」音声インターフェースに近づいています。&lt;/p&gt;
&lt;h2 id=&#34;gpt-realtime-2音声-agent-の主力モデル&#34;&gt;GPT-Realtime-2：音声 Agent の主力モデル
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT-Realtime-2&lt;/code&gt; はリアルタイム音声対話向けに作られています。質問に答えるだけでなく、ユーザーが話し、言い直し、割り込み、条件を追加する間も文脈を保ち、必要に応じてツールを呼び出してタスクを完了します。&lt;/p&gt;
&lt;p&gt;公式に強調されている機能は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「確認します」のような短い前置きを返し、処理中であることをユーザーに伝えられる。&lt;/li&gt;
&lt;li&gt;カレンダー、検索、注文、サポートシステムなどの複数ツールを並行して呼び出せる。&lt;/li&gt;
&lt;li&gt;失敗時の復帰がより自然で、会話が突然止まったり沈黙したりしにくい。&lt;/li&gt;
&lt;li&gt;コンテキストウィンドウが 32K から 128K に拡大され、長い会話や複雑なタスクフローに対応しやすい。&lt;/li&gt;
&lt;li&gt;専門用語、固有名詞、医療用語などの保持が改善されている。&lt;/li&gt;
&lt;li&gt;冷静、共感的、確認的、明るいなど、場面に応じた話し方を制御しやすい。&lt;/li&gt;
&lt;li&gt;reasoning effort は &lt;code&gt;minimal&lt;/code&gt;、&lt;code&gt;low&lt;/code&gt;、&lt;code&gt;medium&lt;/code&gt;、&lt;code&gt;high&lt;/code&gt;、&lt;code&gt;xhigh&lt;/code&gt; から選択でき、デフォルトは &lt;code&gt;low&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これにより、開発者は単純な Q&amp;amp;A だけでなく、より複雑な業務に音声 Agent を組み込めます。たとえば、サポート Agent がユーザーの説明を聞きながら注文を確認したり、旅行アプリがフライト変更に応じて次の行動を提案したり、不動産アプリが口頭条件から物件を絞り込んで内見を予約したりできます。&lt;/p&gt;
&lt;h2 id=&#34;リアルタイム翻訳多言語音声プロダクト向け&#34;&gt;リアルタイム翻訳：多言語音声プロダクト向け
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT-Realtime-Translate&lt;/code&gt; はリアルタイム音声翻訳向けのモデルです。ユーザーは自分の言語で話し、相手は翻訳された音声を聞きながらリアルタイムの文字起こしも確認できます。&lt;/p&gt;
&lt;p&gt;適した用途は明確です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多言語カスタマーサポート。&lt;/li&gt;
&lt;li&gt;越境営業やプリセールス。&lt;/li&gt;
&lt;li&gt;オンライン教育やライブイベント。&lt;/li&gt;
&lt;li&gt;国際会議やイベント司会。&lt;/li&gt;
&lt;li&gt;動画プラットフォームやクリエイターコンテンツのローカライズ。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;リアルタイム翻訳の難しさは、正確さだけではありません。低遅延、自然な間、トーンの保持、アクセントへの対応、専門語彙の処理も必要です。OpenAI は、発話全体を待ってから翻訳するのではなく、より自然な異言語会話に近づけることを強調しています。&lt;/p&gt;
&lt;h2 id=&#34;ストリーミング文字起こし音声をすぐにワークフローへ&#34;&gt;ストリーミング文字起こし：音声をすぐにワークフローへ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT-Realtime-Whisper&lt;/code&gt; は新しいストリーミング音声認識モデルです。録音が終わるのを待つのではなく、話されている最中に音声を処理可能なテキストへ変換できる点に価値があります。&lt;/p&gt;
&lt;p&gt;主な用途は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;会議のリアルタイム字幕。&lt;/li&gt;
&lt;li&gt;授業や配信の字幕。&lt;/li&gt;
&lt;li&gt;リアルタイム議事録。&lt;/li&gt;
&lt;li&gt;音声 Agent への継続的な音声入力。&lt;/li&gt;
&lt;li&gt;サポート、医療、採用、営業など高頻度の音声業務における後続処理。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;プロダクト側では、ストリーミング文字起こしによって「話す」から「使えるテキスト」までの時間を短縮できます。字幕は早く表示され、会議メモは会話中に生成され、要約、タスク抽出、CRM 登録なども早く始められます。&lt;/p&gt;
&lt;h2 id=&#34;価格と提供状況&#34;&gt;価格と提供状況
&lt;/h2&gt;&lt;p&gt;3 つのモデルはいずれも Realtime API で利用できます。公式価格は次の通りです。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;モデル&lt;/th&gt;
          &lt;th&gt;価格&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;GPT-Realtime-2&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;音声入力 $32 / 1M tokens、キャッシュ入力 $0.40 / 1M tokens、音声出力 $64 / 1M tokens&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;GPT-Realtime-Translate&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;$0.034 / 分&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;GPT-Realtime-Whisper&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;$0.017 / 分&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;OpenAI は Realtime API が EU Data Residency に対応し、エンタープライズ向けプライバシーコミットメントの対象であるとも述べています。欧州企業やデータ所在要件のある音声プロダクトでは、個別に評価すべき点です。&lt;/p&gt;
&lt;h2 id=&#34;開発者にとっての意味&#34;&gt;開発者にとっての意味
&lt;/h2&gt;&lt;p&gt;今回の発表で重要なのは、音声機能が単なる入出力層から、プロダクトの対話層へ移り始めていることです。&lt;/p&gt;
&lt;p&gt;従来の多くの音声機能は、音声をテキストに変換し、テキスト応答を音声に戻すものでした。本当に難しいのは中間層です。ユーザー意図の理解、割り込み処理、文脈補完、ツール呼び出し、処理状況の説明、失敗時の自然な復帰が必要になります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-Realtime-2&lt;/code&gt; はこの能力をリアルタイム音声モデル側に直接持たせようとしています。開発者が見るべきなのは単発の回答品質だけでなく、継続的な会話と多段階タスクを支えられるかどうかです。&lt;/p&gt;
&lt;p&gt;優先的に試す価値があるプロダクトは次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;カスタマーサポート音声 Agent。&lt;/li&gt;
&lt;li&gt;車載およびモバイル音声アシスタント。&lt;/li&gt;
&lt;li&gt;旅行、予約、不動産、金融など、会話しながら検索や照会が必要なサービス。&lt;/li&gt;
&lt;li&gt;多言語会議や越境コミュニケーションツール。&lt;/li&gt;
&lt;li&gt;リアルタイム字幕、議事録、通話品質管理システム。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;安全性と告知も重要&#34;&gt;安全性と告知も重要
&lt;/h2&gt;&lt;p&gt;OpenAI は発表ページで、Realtime API には複数の安全対策が含まれると説明しています。たとえばセッションに対するアクティブ分類や、ポリシー違反が検出された会話の停止です。開発者は Agents SDK を使って独自のガードレールを追加することもできます。&lt;/p&gt;
&lt;p&gt;見落としやすい要件として、エンドユーザーが AI と対話していることを明確に知らせる必要があります。ただし、文脈上それが明らかな場合は例外です。&lt;/p&gt;
&lt;p&gt;これはサポート、営業、教育、医療などで特に重要です。音声が自然になるほど、プロダクト設計上の境界も明確にする必要があります。ユーザーは自分が AI と話していること、どの操作が記録、文字起こし、ツール呼び出しにつながるのかを理解できるべきです。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;OpenAI の今回の Realtime API 更新は、リアルタイム音声を「聞いて話せる」段階から「聞きながらタスクを処理できる」段階へ進めるものです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-Realtime-2&lt;/code&gt; は複雑な音声 Agent、&lt;code&gt;GPT-Realtime-Translate&lt;/code&gt; は異言語間のリアルタイム会話、&lt;code&gt;GPT-Realtime-Whisper&lt;/code&gt; は低遅延文字起こしを担当します。3 つを合わせると、音声プロダクトでよく必要になる会話、翻訳、文字起こしをカバーできます。&lt;/p&gt;
&lt;p&gt;サポート、車載、会議、教育、越境コミュニケーション、モバイル音声アシスタントを作っているなら、この更新は重点的に試す価値があります。検証すべきなのは、自然に聞こえるかだけではなく、長い会話、割り込み、ツール呼び出し、失敗復帰、コスト管理でどう振る舞うかです。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/advancing-voice-intelligence-with-new-models-in-the-api/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI：Advancing voice intelligence with new models in the API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude アカウントが停止されたら？Claude Code 制限の原因と異議申し立てガイド</title>
        <link>https://knightli.com/ja/2026/05/09/claude-account-suspension-code-limit-guide/</link>
        <pubDate>Sat, 09 May 2026 10:32:12 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/09/claude-account-suspension-code-limit-guide/</guid>
        <description>&lt;p&gt;Claude または Claude Code の account が突然制限される、支払い直後に停止される、Pro 権限が反映されない、利用量が急に少なく見える。このような問題は最近よく話題になる。重要なのは、これを単純に「IP を変えればよい」「別 account を作ればよい」という技術問題として扱わないことだ。account risk system は通常、region、payment、device、login behavior、usage content、automation、sharing pattern など複数の signal を組み合わせて判断する。&lt;/p&gt;
&lt;p&gt;より安全な対応は、自分が遭遇している問題をまず分類することだ。通常の quota limit なのか、payment/subscription mismatch なのか、Claude Code authorization issue なのか、それとも Anthropic が policy または terms 違反と判断した account-level action なのかを分ける。&lt;/p&gt;
&lt;h2 id=&#34;まず三つの状況を分ける&#34;&gt;まず三つの状況を分ける
&lt;/h2&gt;&lt;p&gt;第一は通常の利用上限である。Claude Pro、Max、Team、API、Claude Code は quota model が異なる。peak hour、long context、coding task、agent workflow は limit を早く消費することがある。「limit reached」が出ても、必ずしも account ban ではない。&lt;/p&gt;
&lt;p&gt;第二は subscription または authorization の異常である。支払いは成功したが権限が更新されない、mobile subscription と web account が一致しない、Claude Code が正しく login していない、環境変数に古い &lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt; が残っている、といったケースがある。まず billing、login state、client configuration を確認する。&lt;/p&gt;
&lt;p&gt;第三が account suspension または termination である。suspension、disabled、terminated といった email を受け取る、または login 時に account unavailable と表示される場合がこれに近い。この場合、device、network、account を次々変えて再試行しないほうがよい。risk signal をさらに複雑にする可能性がある。&lt;/p&gt;
&lt;h2 id=&#34;よくある-trigger&#34;&gt;よくある trigger
&lt;/h2&gt;&lt;p&gt;Anthropic の help document と privacy document では、Usage Policy 違反、unsupported region からの account 作成または利用、terms 違反、繰り返しの違反、異常 access、abuse などが risk area として挙げられている。&lt;/p&gt;
&lt;p&gt;実際の利用で risk になりやすい場面は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;account registration、login region、payment region が一致しない。&lt;/li&gt;
&lt;li&gt;datacenter proxy、shared proxy、頻繁な IP switching を長期利用する。&lt;/li&gt;
&lt;li&gt;複数人で一つの personal account を共有する。&lt;/li&gt;
&lt;li&gt;短時間に多くの device や region から login する。&lt;/li&gt;
&lt;li&gt;Claude.ai へ high-frequency automation で access する。&lt;/li&gt;
&lt;li&gt;Claude Code を shared service や resale entry point として扱う。&lt;/li&gt;
&lt;li&gt;Anthropic の policy に明確に反する content を要求する。&lt;/li&gt;
&lt;li&gt;payment method、billing address、account region が衝突する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一つの signal が必ず suspension につながるわけではない。複数の abnormal signal が重なると、account が high risk と判断されやすくなる。&lt;/p&gt;
&lt;h2 id=&#34;risk-control-を回避する発想で解決しない&#34;&gt;risk control を回避する発想で解決しない
&lt;/h2&gt;&lt;p&gt;ネット上では、fingerprint browser、device fingerprint reset、local folder 削除、environment 変更、time zone/language の固定、新しい email での再登録などを「安定利用策」として紹介することがある。その一部は普通の troubleshooting だが、一部は明らかに platform risk control の回避を狙っている。&lt;/p&gt;
&lt;p&gt;「risk control bypass」を解決策にするのは勧めない。理由は単純だ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;terms of service に違反する可能性がある。&lt;/li&gt;
&lt;li&gt;account risk signal をさらに増やす可能性がある。&lt;/li&gt;
&lt;li&gt;payment、region、policy violation といった根本原因を解決しない。&lt;/li&gt;
&lt;li&gt;team または business use の場合、後の appeal で説明しにくくなる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Claude を長期的に安定して使いたいなら、正しい方向は偽装ではない。account information、region、payment、device、usage をできるだけ真实で、一貫し、説明可能にすることだ。&lt;/p&gt;
&lt;h2 id=&#34;claude-code-制限の確認&#34;&gt;Claude Code 制限の確認
&lt;/h2&gt;&lt;p&gt;Claude Code ユーザーは、まず次を確認する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude --version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude auth status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;API key を使っている場合は、環境変数が正しい account を指しているか確認する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$ANTHROPIC_API_KEY&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Windows PowerShell では次を使う。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$env:ANTHROPIC_API_KEY&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;web login、OAuth、API key、third-party client、異なる terminal を併用していた場合は、まず authentication method を統一する。一部の tool が古い credential を使い続けていることがある。&lt;/p&gt;
&lt;p&gt;また、次の二つを分ける。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code の usage limit に達した：通常は quota または subscription の問題。&lt;/li&gt;
&lt;li&gt;account または organization が disabled：通常は account、organization、payment、policy risk の問題。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;前者は quota refresh を待つか plan を調整する。後者は screenshot と email を保存し、official support または appeal channel を使う。&lt;/p&gt;
&lt;h2 id=&#34;compliant-に安定利用するための注意&#34;&gt;compliant に安定利用するための注意
&lt;/h2&gt;&lt;p&gt;account 異常の可能性を下げたいなら、まず基本を整える。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;supported country/region の normal account を使う。&lt;/li&gt;
&lt;li&gt;login region、payment method、billing information をできるだけ一致させる。&lt;/li&gt;
&lt;li&gt;personal account を複数人で共有しない。&lt;/li&gt;
&lt;li&gt;personal Pro/Max を team API pool として使わない。&lt;/li&gt;
&lt;li&gt;IP、device、browser environment を頻繁に切り替えない。&lt;/li&gt;
&lt;li&gt;出所不明の third-party Claude client を使わない。&lt;/li&gt;
&lt;li&gt;Claude.ai の web interface に対して high-frequency automation をしない。&lt;/li&gt;
&lt;li&gt;business/team use では Team、Enterprise、API を優先する。&lt;/li&gt;
&lt;li&gt;Anthropic Usage Policy を理解し、restricted use に使わない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;複数 device で使う必要があるなら、通常通り login すればよい。environment を頻繁に消したり、fingerprint を変えたり、proxy を切り替えたりしない。過度な environment manipulation 自体が abnormal behavior に見える可能性がある。&lt;/p&gt;
&lt;h2 id=&#34;停止後にやること&#34;&gt;停止後にやること
&lt;/h2&gt;&lt;p&gt;account がすでに suspended された場合は、次の順序で対応する。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Anthropic または Claude からの email を確認し、理由または message type を把握する。&lt;/li&gt;
&lt;li&gt;新しい account 作成、network 変更、device 変更を繰り返さない。&lt;/li&gt;
&lt;li&gt;account email、subscription order、payment proof、recent usage context を整理する。&lt;/li&gt;
&lt;li&gt;誤判定だと思う場合は、official entry から appeal を提出するか support に連絡する。&lt;/li&gt;
&lt;li&gt;real usage scenario を説明し、region、identity、purpose を作らない。&lt;/li&gt;
&lt;li&gt;subscription charge が関係する場合は、refund または subscription handling を別途問い合わせる。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;appeal では具体性が重要だ。Claude Code を使ったか、device を切り替えたか、VPN を使ったか、team sharing があったか、third-party tool を接続したかを説明する。platform は risk source を判断する必要がある。「何もしていない」という曖昧な説明だけでは効果が薄い。&lt;/p&gt;
&lt;h2 id=&#34;注意して読むべき主張&#34;&gt;注意して読むべき主張
&lt;/h2&gt;&lt;p&gt;「fingerprint を固定すれば ban されない」「特定 browser で完全に防げる」「ある directory を消せば device identity が reset される」「IP と time zone を合わせればすべて解決する」といった主張がある。これらはそのまま信じないほうがよい。&lt;/p&gt;
&lt;p&gt;platform risk control は通常 multidimensional であり、browser fingerprint や IP だけを見ているわけではない。account history、payment information、region policy、usage content、access frequency、automation pattern、client version、API call behavior などが関わる。単一 signal の disguise は長期安定ではなく、不一致を増やすことがある。&lt;/p&gt;
&lt;p&gt;さらに、多くの「anti-ban solution」は実質的には tool や service の販売である。ユーザーに必要なのは risk source の判断、compliant use、appeal evidence の保存であり、third-party environment wrapper に account safety を預けることではない。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Claude account suspension や Claude Code limitation は、必ずしも単一原因ではない。quota、subscription、authorization の問題かもしれないし、region、payment、device、sharing、automation、content policy が組み合わさった risk control かもしれない。&lt;/p&gt;
&lt;p&gt;Claude を長期的に安定して使う鍵は、risk control を回避することではない。compliant usage、account information の一貫性、stable access pattern、team use の正式 plan である。停止された場合は、environment をいじるのを止め、evidence を保存し、official appeal と support channel を使うのが最も安全だ。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/supported-countries&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic：Supported countries and regions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://support.claude.com/en/articles/8241253-i-ve-received-a-warning-that-my-usage-violates-the-acceptable-use-policy-what-should-i-do-differently&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude Help Center：Safeguards warnings and appeals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://privacy.claude.com/en/articles/11186740-does-claude-use-my-location&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic Privacy Center：Does Claude use my location?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://support.anthropic.com/en/articles/12005017-using-agents-according-to-our-usage-policy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic Help Center：Using agents according to our Usage Policy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>PPTからプロトタイプ設計まで：Guizang PPT SkillとHuashu Designの使いどころ</title>
        <link>https://knightli.com/ja/2026/05/09/guizang-ppt-skill-huashu-design-agent-skills/</link>
        <pubDate>Sat, 09 May 2026 08:34:23 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/09/guizang-ppt-skill-huashu-design-agent-skills/</guid>
        <description>&lt;p&gt;最近、中国語圏の開発者が作った2つのデザイン系 Agent Skill は、並べて見る価値があります。ひとつは歸藏による &lt;a class=&#34;link&#34; href=&#34;https://github.com/op7418/guizang-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;guizang-ppt-skill&lt;/a&gt;、もうひとつは花叔による &lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/huashu-design&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;huashu-design&lt;/a&gt; です。&lt;/p&gt;
&lt;p&gt;どちらも従来の意味での「デザインツール」ではありません。設計プロセス、審美上の好み、チェックリスト、エンジニアリングテンプレートを、Agent が実行できる Skill として記述したものです。UI を開いて要素を少しずつドラッグするのではなく、Claude Code、Codex、Cursor のような Agent に要件を渡し、決められた流れに沿って HTML、PPT、アニメーション、プロトタイプを生成させます。&lt;/p&gt;
&lt;p&gt;この種のプロジェクトの価値は、AI にランダムに発想させることではありません。「どう作れば見苦しくならないか」をプロセス化している点にあります。&lt;/p&gt;
&lt;h2 id=&#34;guizang-ppt-skill雑誌風web-pptに特化&#34;&gt;guizang-ppt-skill：雑誌風Web PPTに特化
&lt;/h2&gt;&lt;p&gt;歸藏の &lt;code&gt;guizang-ppt-skill&lt;/code&gt; は位置づけが明確です。単一ファイルの HTML 横スクロールPPTを生成し、視覚の基調は「デジタル雑誌 x 電子インク」です。汎用デザインフレームワークというより、登壇用に用意されたレイアウトシステムに近い存在です。&lt;/p&gt;
&lt;p&gt;リポジトリの README では、主な機能として次のものが挙げられています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;単一ファイル HTML 出力。ビルドもサーバーも不要で、ブラウザから直接開ける。&lt;/li&gt;
&lt;li&gt;横方向のページ移動。キーボード、ホイール、タッチスワイプ、下部ドット、ESC インデックスに対応。&lt;/li&gt;
&lt;li&gt;Ink Classic、Indigo Porcelain、Forest Ink、Kraft Paper、Dune を含む5種類のテーマカラープリセット。&lt;/li&gt;
&lt;li&gt;オープニングカバー、章区切り、データ大見出し、左テキスト右画像、画像グリッド、Pipeline、サスペンス質問、大きな引用、Before/After 比較、テキスト画像混在など10種類のページレイアウト。&lt;/li&gt;
&lt;li&gt;テンプレート、コンポーネント説明、レイアウト骨格、テーマ設定、品質チェックリストを内蔵。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;オフライン共有、業界内の社内発表、少人数イベント、AIプロダクト発表、demo day、そして強い個人スタイルを持つプレゼン資料に向いています。一方で、大量の表データ、研修教材、複数人での共同編集にはあまり向きません。&lt;/p&gt;
&lt;p&gt;このプロジェクトの良いところは、割り切りです。すべてのデザイン場面を覆おうとせず、「雑誌風PPT」という場面を狭く定義しています。テーマ色はプリセットから選び、レイアウトにも明確な骨格があります。その制約が、むしろ Agent の脱線を減らします。&lt;/p&gt;
&lt;p&gt;意見、業界観察、プロダクト発表の内容をプレゼン deck にまとめる機会が多いなら、かなり実用的です。&lt;/p&gt;
&lt;p&gt;インストールコマンドも単純です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add https://github.com/op7418/guizang-ppt-skill --skill guizang-ppt-skill
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;huashu-designより包括的なhtmlネイティブ設計ワークフロー&#34;&gt;huashu-design：より包括的なHTMLネイティブ設計ワークフロー
&lt;/h2&gt;&lt;p&gt;花叔の &lt;code&gt;huashu-design&lt;/code&gt; はカバー範囲がより広いです。目標は PPT だけを作ることではなく、HTML をネイティブなデザインキャンバスとして扱い、Agent に納品可能なデザイン資産を生成させることです。&lt;/p&gt;
&lt;p&gt;リポジトリの README では、次のような機能が挙げられています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;クリック可能な App または Web プロトタイプ。&lt;/li&gt;
&lt;li&gt;HTML スライド、および編集可能な PPTX エクスポート。&lt;/li&gt;
&lt;li&gt;プロダクト発表アニメーション、MP4、GIF、音楽付きバージョン。&lt;/li&gt;
&lt;li&gt;複数方向のデザイン案の横並び比較。&lt;/li&gt;
&lt;li&gt;インフォグラフィック、データ可視化、PDF、PNG、SVG エクスポート。&lt;/li&gt;
&lt;li&gt;哲学的一貫性、視覚階層、実行品質、機能性、革新性を含む5次元の専門家レビュー。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;中心にある考え方は、Agent にまずブランドと素材を理解させ、その後で高忠実度のデザインを出させることです。プロジェクトでは Core Asset Protocol が強調されています。具体的なブランドを扱うときは、記憶に頼って推測するのではなく、logo、製品画像、UI スクリーンショット、配色、フォント、ブランドガイドラインを先に確認します。&lt;/p&gt;
&lt;p&gt;これは重要です。AI が生成したデザインの多くは「デザインっぽく」は見えますが、特定の実在する製品やブランドには見えません。&lt;code&gt;huashu-design&lt;/code&gt; はこの問題を前段で解決しようとします。まず本物の素材を見つけ、それからデザインする、という流れです。&lt;/p&gt;
&lt;p&gt;インストールコマンドは次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add alchaincyf/huashu-design
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;より包括的なデザイン納品をターミナル内で進めたい人に向いています。製品プロトタイプ、発表アニメーション、プレゼン資料、インフォグラフィック、デザインレビューを、ひとつの Agent ワークフローに載せて処理できます。&lt;/p&gt;
&lt;h2 id=&#34;両者の最大の違い&#34;&gt;両者の最大の違い
&lt;/h2&gt;&lt;p&gt;簡単に言えば、&lt;code&gt;guizang-ppt-skill&lt;/code&gt; はより狭く、より安定したプレゼン deck 生成器です。&lt;code&gt;huashu-design&lt;/code&gt; はより広く、より包括的な HTML ネイティブ設計システムです。&lt;/p&gt;
&lt;p&gt;PPT だけを見るなら：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;guizang-ppt-skill&lt;/code&gt; は雑誌感、リズム、版面、単一ファイルのブラウザ発表をより重視します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;huashu-design&lt;/code&gt; は汎用的なデザイン能力、編集可能な PPTX、ブランド素材、エクスポート経路、レビュー工程をより重視します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;全体的なデザイン能力を見るなら：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;guizang-ppt-skill&lt;/code&gt; は境界が明確で、スタイルのある横型プレゼンを素早く作るのに向いています。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;huashu-design&lt;/code&gt; はより総合的で、製品やブランドのデザインタスクをプロトタイプ、アニメーション、スライド、インフォグラフィックに分解するのに向いています。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この2つのプロジェクトは、Skill の書き方としても異なる型を示しています。前者は高度に収束したテンプレートと審美上の制約の集合に近く、後者は小さなデザインチームのワークフロー説明書に近いものです。&lt;/p&gt;
&lt;h2 id=&#34;なぜこの種のskillが重要なのか&#34;&gt;なぜこの種のSkillが重要なのか
&lt;/h2&gt;&lt;p&gt;Agent でよくある問題は、「できるが、安定しない」ことです。同じ要件でも、あるときは良い出力になり、別のときは紫のグラデーション、角丸カード、偽物のアイコン、もっともらしい空文句へ流れてしまうことがあります。&lt;/p&gt;
&lt;p&gt;Skill の意義は、そこに安定性を補うことです。次のようなものを固定化できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;再利用可能なテンプレート。&lt;/li&gt;
&lt;li&gt;実行可能なチェックリスト。&lt;/li&gt;
&lt;li&gt;明確な審美上の好み。&lt;/li&gt;
&lt;li&gt;よくあるミスを避けるルール。&lt;/li&gt;
&lt;li&gt;出力形式と検証フロー。&lt;/li&gt;
&lt;li&gt;いつ質問し、いつそのまま作業を始めるべきか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは、単に「もっと高級感を出して」と書くよりはるかに信頼できます。&lt;/p&gt;
&lt;p&gt;特にデザインタスクでは、審美は一文の prompt だけで安定して再現できるものではありません。本当に役に立つのはプロセスです。まず素材を確認し、方向性を決め、構造を組み、視覚表現を作り、最後に出力を確認する。この流れを Skill として書くことで、Agent は一回きりの画像生成器ではなく、協働できる実行者に近づきます。&lt;/p&gt;
&lt;h2 id=&#34;使い分けの提案&#34;&gt;使い分けの提案
&lt;/h2&gt;&lt;p&gt;ひとつのテーマをオフライン登壇や共有用の deck にしたいだけなら、まず &lt;code&gt;guizang-ppt-skill&lt;/code&gt; を試すとよいでしょう。出力の境界が狭く、単一ファイル HTML なので配布やプレビューもしやすいです。&lt;/p&gt;
&lt;p&gt;Agent により包括的なデザインタスクを任せたい場合、たとえば App プロトタイプ、発表アニメーション、ブランド化されたスライド、エクスポート可能な PPTX、インフォグラフィックなどであれば、まず &lt;code&gt;huashu-design&lt;/code&gt; を見るとよいでしょう。ワークフローは長めですが、複数回の反復と納品物の出力が必要なタスクに向いています。&lt;/p&gt;
&lt;p&gt;すでに自分の Codex や Claude Code Skill を書いているなら、この2つのプロジェクトはいずれも参考になります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「狭い場面をどう安定させるか」を学びたいなら、&lt;code&gt;guizang-ppt-skill&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;「複雑なワークフローをどう実行可能なプロトコルに分解するか」を学びたいなら、&lt;code&gt;huashu-design&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;歸藏と花叔の2つのプロジェクトに共通しているのは、「デザイン能力」を一回の prompt から、繰り返し実行できるプロセスへ変えていることです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;guizang-ppt-skill&lt;/code&gt; の重点は雑誌風 HTML PPT で、強くスタイル化されたプレゼンに向いています。&lt;code&gt;huashu-design&lt;/code&gt; の重点は HTML ネイティブ設計システムで、プロトタイプ、アニメーション、スライド、インフォグラフィック、レビューまでをカバーします。解決しているのは「AI はデザインを生成できるか」ではなく、「AI は安定した方法に沿って納品可能なデザインを生成できるか」です。&lt;/p&gt;
&lt;p&gt;これは Agent ツールのエコシステムにおいて、重要なオープンソースプロジェクトの一類型になるかもしれません。コードテンプレートだけでなく、人間の経験、審美、仕事の進め方を Skill としてパッケージ化するものです。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/op7418/guizang-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;op7418/guizang-ppt-skill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/huashu-design&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;alchaincyf/huashu-design&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude 4 生成テキストをどう検出するか：AI テキスト検出ツールと最新手法</title>
        <link>https://knightli.com/ja/2026/05/08/detect-claude-4-ai-generated-text-tools/</link>
        <pubDate>Fri, 08 May 2026 22:55:16 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/08/detect-claude-4-ai-generated-text-tools/</guid>
        <description>&lt;p&gt;あるテキストが Claude 4 によって生成されたかを判断したい場合、最初に理解すべきことがある。現時点で、100% 確実な結論を出せるツールは存在しない。AI テキスト検出は本質的に確率判断であり、「この文章は AI らしい」と示すことはできても、作者が必ず Claude 4 を使ったと証明することはできない。&lt;/p&gt;
&lt;p&gt;これは 2026 年には特に重要だ。Claude 4、GPT-5、Gemini 2.5、DeepSeek などのモデルは、以前より人間に近い文章を書くようになっている。同時に、多くの文章は「純粋な AI」でも「完全な人間」でもなく、AI による下書き、人間の修正、文法ツールの校正、翻訳、書き換え、結合を経ている。検出ツールは手がかりを提供できるが、信頼できる判断には、執筆プロセス、版管理、引用元、人間によるレビューも必要だ。&lt;/p&gt;
&lt;h2 id=&#34;まず結論一つのスコアだけを見ない&#34;&gt;まず結論：一つのスコアだけを見ない
&lt;/h2&gt;&lt;p&gt;簡単な自己確認なら、GPTZero、Copyleaks、Originality.ai、Sapling、Winston AI など、二つか三つの検出器を併用する。学術場面では Turnitin がよく使われる。各ツールはモデル、訓練データ、閾値が違うため、同じ文章でも結果が異なることがある。&lt;/p&gt;
&lt;p&gt;より堅実な方法は次の通り。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;同じ文章を二つ以上のツールで検出する。&lt;/li&gt;
&lt;li&gt;総合スコアだけでなく、文単位のハイライトを見る。&lt;/li&gt;
&lt;li&gt;引用ミス、事実の hallucination、過度に滑らかな接続を確認する。&lt;/li&gt;
&lt;li&gt;下書き、修正履歴、commit history などの執筆過程の証拠を見る。&lt;/li&gt;
&lt;li&gt;低い AI スコアも慎重に扱い、検出結果を唯一の証拠にしない。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;学校、採用、出版、コンプライアンスの場面では、AI 検出スコアはリスク信号であって、最終判断ではない。&lt;/p&gt;
&lt;h2 id=&#34;代表的なツール&#34;&gt;代表的なツール
&lt;/h2&gt;&lt;h3 id=&#34;gptzero&#34;&gt;GPTZero
&lt;/h3&gt;&lt;p&gt;GPTZero は教育や出版の場面でよく使われる AI テキスト検出ツールだ。初期には perplexity と burstiness のような統計的特徴で知られ、その後は新しいモデルに対応する多段階検出システムへ発展している。&lt;/p&gt;
&lt;p&gt;英語の長文、論文草稿、記事の初稿をざっくり確認する用途に向いている。インターフェースがわかりやすく、文単位の説明も比較的明確だ。一方、短文、強く人間が編集した文章、多言語混在テキストでは不安定になりやすい。&lt;/p&gt;
&lt;h3 id=&#34;copyleaks-ai-detector&#34;&gt;Copyleaks AI Detector
&lt;/h3&gt;&lt;p&gt;Copyleaks は多言語対応、API、ブラウザ拡張、LMS integration が強みだ。公式ページでは Claude、Gemini、GPT-5、DeepSeek、Llama などのモデルを対象にでき、人間と AI の混在文章も検出できると説明している。&lt;/p&gt;
&lt;p&gt;コンテンツチーム、教育機関、企業がまとめて導入する用途に向いている。ただし、ベンダーが示す accuracy は特定の test set に基づくことが多い。実運用では、文章の長さ、言語、書き換えの有無、false positive のコストを考える必要がある。&lt;/p&gt;
&lt;h3 id=&#34;turnitin-ai-writing-report&#34;&gt;Turnitin AI Writing Report
&lt;/h3&gt;&lt;p&gt;Turnitin は学術的な integrity の場面で使われることが多い。AI writing indicator、ハイライトされた箇所、AI 生成文と AI paraphrasing tool によって処理された文章の検出を提供する。&lt;/p&gt;
&lt;p&gt;ただし Turnitin の公式ドキュメントも、モデルは人間の文章、AI の文章、AI による言い換え文章を誤分類する可能性があり、学生に不利益な対応を取る唯一の根拠にしてはいけないと明記している。低い AI 割合の表示についても、誤読と false positive を減らすために慎重な扱いをしている。&lt;/p&gt;
&lt;h3 id=&#34;originalityaisaplingwinston-ai&#34;&gt;Originality.ai、Sapling、Winston AI
&lt;/h3&gt;&lt;p&gt;これらのツールは、content marketing、SEO、出版、編集ワークフローでよく使われる。多くは batch detection、チーム機能、API、文単位分析を提供する。コンテンツ品質管理には役立つが、単発の結果を「証明」として扱うべきではない。&lt;/p&gt;
&lt;h3 id=&#34;zerogptmonicaphrasly-などの無料ツール&#34;&gt;ZeroGPT、Monica、Phrasly などの無料ツール
&lt;/h3&gt;&lt;p&gt;無料ツールは素早い自己確認には使えるが、高リスクの判断には勧めにくい。閾値、訓練データ、false positive rate、更新頻度が十分に透明でないことがある。「99%+ accuracy」のような宣伝も慎重に受け止める必要がある。&lt;/p&gt;
&lt;h2 id=&#34;検出アルゴリズムは何を見るのか&#34;&gt;検出アルゴリズムは何を見るのか
&lt;/h2&gt;&lt;p&gt;従来の AI テキスト検出では、よく二つの指標が語られる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Perplexity&lt;/code&gt;：困惑度。言語モデルにとって文章がどれだけ予測しやすいかを大まかに測る。極端に滑らかで次の語が予測しやすい文章は、AI らしく見えることがある。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Burstiness&lt;/code&gt;：文の長さ、構造、リズムの変化を測る。人間の文章は不均一な変化が多い一方、モデル出力は平滑になりやすい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし、最新の検出器はこの二つだけを見ているわけではない。より多くの特徴を組み合わせる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;語頻度とフレーズパターン。&lt;/li&gt;
&lt;li&gt;構文構造と品詞分布。&lt;/li&gt;
&lt;li&gt;句読点、接続語、段落構成の癖。&lt;/li&gt;
&lt;li&gt;繰り返しの文型とテンプレート表現。&lt;/li&gt;
&lt;li&gt;意味的一貫性と事実参照の異常。&lt;/li&gt;
&lt;li&gt;モデル固有の linguistic fingerprint。&lt;/li&gt;
&lt;li&gt;人間と AI の混在箇所の境界。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、Claude 4 の文章を検出するとき、ツールは通常「Claude 4 の watermark」を見つけているのではない。その文章が LLM 生成テキストに関連する統計的特徴に合っているかを判断している。&lt;/p&gt;
&lt;h2 id=&#34;claude-4-が検出しにくい理由&#34;&gt;Claude 4 が検出しにくい理由
&lt;/h2&gt;&lt;p&gt;Claude 系列の文章は自然で、長い段落のつながりも安定しやすい。丁寧な prompt を使えば、個人の文体を模倣し、テンプレート感を減らし、少し口語的な揺らぎを残すこともできる。人間が編集したり翻訳したりすると、検出はさらに難しくなる。&lt;/p&gt;
&lt;p&gt;そのため、二つの問題が起きる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;純粋な Claude 4 出力は AI と判定されることがあるが、信頼度はテーマ、言語、長さに左右される。&lt;/li&gt;
&lt;li&gt;Claude 4 で下書きし、人間が書き換えた文章は検出を逃れることもあれば、高い AI スコアで誤判定されることもある。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;したがって、検出結果で最も価値があるのは「総合 87%」ではない。どの文がハイライトされたのか、なぜ怪しいのか、それが執筆過程の証拠と一致するのかである。&lt;/p&gt;
&lt;h2 id=&#34;推奨する検出フロー&#34;&gt;推奨する検出フロー
&lt;/h2&gt;&lt;p&gt;ある記事が Claude 4 で生成された可能性を判断したいなら、次の手順を使う。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;元の文章を保存し、先に人間が書き換えない。&lt;/li&gt;
&lt;li&gt;GPTZero、Copyleaks、Turnitin などで別々に検出する。&lt;/li&gt;
&lt;li&gt;総合スコア、文単位のハイライト、ツールのバージョンを記録する。&lt;/li&gt;
&lt;li&gt;ハイライトされた文を人間が確認し、テンプレート的な接続、一般論、根拠のない事実がないか見る。&lt;/li&gt;
&lt;li&gt;引用、データ、リンク、固有名詞が実在するか確認する。&lt;/li&gt;
&lt;li&gt;outline、draft、revision history などの執筆過程資料を求める。&lt;/li&gt;
&lt;li&gt;検出結果は補助証拠としてのみ扱う。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;自分の文章が誤判定されるリスクを下げたい場合、正しい方法は「検出器を回避する」ことではない。執筆記録を残し、実体験を加え、引用元を確認し、空疎な段落を削り、人間の判断と事実来源が見える文章にすることだ。&lt;/p&gt;
&lt;h2 id=&#34;誤判定されやすいケース&#34;&gt;誤判定されやすいケース
&lt;/h2&gt;&lt;p&gt;次のような文章は誤判定されやすい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;非ネイティブが書いた正式な英語。&lt;/li&gt;
&lt;li&gt;テンプレート性の高い学術要約、ビジネスメール、政策説明。&lt;/li&gt;
&lt;li&gt;Grammarly、DeepL Write、Notion AI などで校正された文章。&lt;/li&gt;
&lt;li&gt;短文、タイトル、要約、商品説明。&lt;/li&gt;
&lt;li&gt;翻訳調の強い中国語や英語。&lt;/li&gt;
&lt;li&gt;複数人で協作した後、文体が統一された原稿。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;懲戒、採用、成績、著作権、コンプライアンスに関わるほど、一つの AI スコアだけで判断してはいけない。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Claude 4 生成テキストを検出する最も信頼できる方法は、特定の「最新アルゴリズムツール」を盲信することではない。検出器を確率信号として扱い、複数ツールで交差確認し、文単位のハイライトでリスク箇所を見つけ、引用確認と執筆過程の証拠を組み合わせることである。&lt;/p&gt;
&lt;p&gt;GPTZero、Copyleaks、Turnitin、Originality.ai、Sapling、Winston AI はいずれもツール箱の一部になり得る。AI 生成テキストを見つける確率は上げられるが、人間の判断を置き換えるものではない。説得力のある結論は、検出結果、文章の事実品質、執筆過程の記録、そして具体的な場面のルールを総合して出すべきだ。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://guides.turnitin.com/hc/en-us/articles/22774058814093-Using-the-AI-Writing-Report&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Turnitin：Using the AI Writing Report&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.turnitin.com/blog/understanding-the-false-positive-rate-for-sentences-of-our-ai-writing-detection-capability&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Turnitin：Understanding false positive rates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://copyleaks.com/ai-content-detector&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Copyleaks AI Detector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://gptzero.me/news/gptzero-ai-detection-benchmarking-the-industry-standard-in-accuracy-transparency-and-fairness/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GPTZero AI Detection Benchmarking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://arxiv.org/abs/2602.13042&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;arXiv：GPTZero: Robust Detection of LLM-Generated Texts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Codex vs Claude Code：2 つの Subagent 設計をどう選ぶか</title>
        <link>https://knightli.com/ja/2026/05/08/codex-vs-claude-code-subagent-design/</link>
        <pubDate>Fri, 08 May 2026 14:14:01 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/08/codex-vs-claude-code-subagent-design/</guid>
        <description>&lt;p&gt;AI コーディングツールでは Subagent が重要になっています。これは流行りの機能ではなく、単一 Agent が実際の開発タスクを抱え込むと限界に当たりやすいからです。&lt;/p&gt;
&lt;p&gt;1 つの Agent がコードを読み、ログを確認し、実装を変更し、テストを実行し、エラーを分析し、結果をまとめると、main context はすぐ汚れます。検索結果、コマンド出力、テストログ、中間推論が混ざり、後の判断が不安定になります。探索、実装、検証、レビューを 1 本の main thread に押し込むため、並行処理もしづらくなります。&lt;/p&gt;
&lt;p&gt;Subagent の本質は Agent の負荷を下げることです。main session はすべてを最後まで行うのではなく、目標を決め、タスクを割り当て、結果を受け取り、最終回答へ統合する coordinator になります。Subagent は探索、実装、検証、レビューなど局所的な仕事を処理し、圧縮した結論を返します。&lt;/p&gt;
&lt;p&gt;つまり Subagent は「もう 1 人の自分」ではなく、絡み合った開発作業を明確な役割に分ける仕組みです。&lt;/p&gt;
&lt;h2 id=&#34;共通する土台&#34;&gt;共通する土台
&lt;/h2&gt;&lt;p&gt;成熟した Subagent system には通常、次の要素が必要です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Context isolation。&lt;/li&gt;
&lt;li&gt;Role specialization。&lt;/li&gt;
&lt;li&gt;Project/user level configuration。&lt;/li&gt;
&lt;li&gt;Tool and permission boundaries。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Context isolation は前提です。実際のリポジトリでは、検索結果、テストログ、コマンド出力など中間情報が大量に出ます。これをすべて main session に入れると main thread が乱れます。Subagent は局所的な過程を先に消化し、判断に必要な signal だけを返します。&lt;/p&gt;
&lt;p&gt;Role specialization も重要です。複数 Agent とは同じモデルを複数起動することではありません。探索役は検索、読解、要約に強くあるべきです。実装役はコード変更に集中します。検証役はチェックを実行し、リスクを見つけ、結果を明確に報告します。&lt;/p&gt;
&lt;p&gt;Tool と permission の境界は安全性を決めます。Subagent が main session の全能力を自動継承すべきではありません。読み取り専用の explorer に書き込み権限は不要です。verifier が実装を変更する必要もありません。&lt;/p&gt;
&lt;p&gt;Codex と Claude Code はこの問題意識を共有しつつ、異なる道を取っています。&lt;/p&gt;
&lt;h2 id=&#34;codex明示的な委任&#34;&gt;Codex：明示的な委任
&lt;/h2&gt;&lt;p&gt;Codex の Subagent 設計は抑制的です。&lt;/p&gt;
&lt;p&gt;現在の main session を中心に、制御された軽量な分業機構を提供します。いつ委任するか、誰に渡すか、いつ結果を受け取るかは明示的な判断です。制御フローは現在のタスクに残ります。&lt;/p&gt;
&lt;p&gt;特徴は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;main session が明示的に subtask を委任する。&lt;/li&gt;
&lt;li&gt;role set は小さく保たれる。&lt;/li&gt;
&lt;li&gt;main session は誰が何をしているか把握できる。&lt;/li&gt;
&lt;li&gt;結果は main line に戻ってから判断される。&lt;/li&gt;
&lt;li&gt;協作境界が透明。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは手動 orchestration、予測可能性、実行の確定性を重視するチームに向いています。explorer に call chain を調べさせ、worker に限定的な変更を任せ、main session が結果を統合して次のテストを判断できます。&lt;/p&gt;
&lt;p&gt;一方で、分割、委任、回収、統合の負荷は main session に残ります。軽量な協作には心地よいですが、長期的で複雑な workflow では重くなることがあります。&lt;/p&gt;
&lt;h2 id=&#34;claude-codeagent-を-workstations-として扱う&#34;&gt;Claude Code：Agent を workstations として扱う
&lt;/h2&gt;&lt;p&gt;Claude Code はより platform 的です。&lt;/p&gt;
&lt;p&gt;Agent を、説明可能、選択可能、設定可能、記憶可能、隔離可能、background 実行可能な正式な object として扱います。Subagent は会話中の一時的な helper ではなく、開発システムの workstation に近い存在です。&lt;/p&gt;
&lt;p&gt;Agent list、use case、description、tool boundary をモデルに渡し、モデル自身がその turn に適した role を選ぶことができます。これにより委任はより自動化されます。&lt;/p&gt;
&lt;p&gt;この方向性を支える要素はいくつかあります。&lt;/p&gt;
&lt;p&gt;第一に role system。explorer、planner、general-purpose、verifier などの role が用途説明、tool restriction、default model、runtime condition を持てます。read-only explorer は編集できず、planner は設計に集中し、verifier は検証に集中します。&lt;/p&gt;
&lt;p&gt;第二に inheritance と override。Subagent は完全に自由ではありません。main session の大きな境界を継承しつつ、許可された範囲で局所的に振る舞いを調整します。&lt;/p&gt;
&lt;p&gt;第三に memory。memory は単に少し覚えることではなく、scope を持ちます。user memory は長期的な好み、project memory はリポジトリ背景、local memory は現在環境の状態です。&lt;/p&gt;
&lt;p&gt;第四に background work と worktree isolation。検証 task は background で走り続けることができ、main thread は待ち続けなくて済みます。強い隔離が必要なときは別 worktree で作業できます。&lt;/p&gt;
&lt;p&gt;第五に plugin ecosystem。Agent を first-class object と見るなら、配布、インストール、優先順位、override、安全境界を考える必要があります。plugin agent は入れられますが、permission mode、hooks、MCP servers など高リスク領域は制限されるべきです。&lt;/p&gt;
&lt;p&gt;これにより Claude Code は単発 session の協作ツールではなく、Agent runtime に近く見えます。&lt;/p&gt;
&lt;h2 id=&#34;違い&#34;&gt;違い
&lt;/h2&gt;&lt;p&gt;Codex は制御された分業ツールに近いです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;明示的な委任。&lt;/li&gt;
&lt;li&gt;軽量な role set。&lt;/li&gt;
&lt;li&gt;明確な制御フロー。&lt;/li&gt;
&lt;li&gt;現在 session 中心の subtask。&lt;/li&gt;
&lt;li&gt;人が orchestration する確定的な作業に向く。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Claude Code は engineering workstation system に近いです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agent が正式に model 化される。&lt;/li&gt;
&lt;li&gt;role が体系化される。&lt;/li&gt;
&lt;li&gt;memory、background、isolation、plugin が runtime に含まれる。&lt;/li&gt;
&lt;li&gt;モデルが role 選択に関与できる。&lt;/li&gt;
&lt;li&gt;長期 project や platform 的 workflow に向く。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;問題は機能数ではありません。Subagent を「自分が明示的に呼ぶ helper」と見るか、「system に長期存在する workstation」と見るかです。&lt;/p&gt;
&lt;h2 id=&#34;選び方&#34;&gt;選び方
&lt;/h2&gt;&lt;p&gt;明示的な制御、軽量な分業、現在 session 内の安全な並行処理を重視するなら Codex 的な設計が合います。コードレビュー、小さな変更、明確な実装 task、人がリズムを握りたい workflow に向きます。&lt;/p&gt;
&lt;p&gt;体系化された role、長期 memory、background execution、worktree isolation、plugin extension、より完全な Agent runtime を求めるなら Claude Code 的な設計が合います。&lt;/p&gt;
&lt;p&gt;判断する質問は 2 つです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;モデル自身が誰に仕事を任せるか選ぶことを受け入れられるか。&lt;/li&gt;
&lt;li&gt;より完全な Agent runtime が必要か。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;1 つ目が不安なら明示的委任が向いています。2 つ目が yes なら、platform 的な workstation system が向いています。&lt;/p&gt;
&lt;h2 id=&#34;使い方の注意&#34;&gt;使い方の注意
&lt;/h2&gt;&lt;p&gt;Subagent を「モデルを増やせば強くなる」と考えない方がよいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;各 role の task boundary を明確にする。&lt;/li&gt;
&lt;li&gt;role ごとの tool を制限する。&lt;/li&gt;
&lt;li&gt;raw log ではなく結論を返させる。&lt;/li&gt;
&lt;li&gt;最終判断は main session に残す。&lt;/li&gt;
&lt;li&gt;background task と worktree isolation を可視化する。&lt;/li&gt;
&lt;li&gt;plugin agent に安全境界を置く。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Subagent の価値は数ではなく分業品質です。role が明確で context がきれいなほど、main thread の判断は安定します。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Codex と Claude Code は同じ問題に向き合っています。単一 Agent は実際の開発作業をすべて背負いにくい。両者とも context isolation、role specialization、permission boundary、local summarization を重視します。&lt;/p&gt;
&lt;p&gt;違いは設計の方向です。Codex は抑制的で、明示的委任と main session の制御を重視します。Claude Code は体系的で、Agent を設定、記憶、隔離、background 実行、plugin ecosystem に対応した正式な workstation として扱います。&lt;/p&gt;
&lt;p&gt;選択はブランド勝負ではありません。必要なのが制御された協作ツールなのか、完全な Agent runtime なのかで決まります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>9Router：Claude Code、Codex、Cursor を 1 つの AI ルーターにつなぐ</title>
        <link>https://knightli.com/ja/2026/05/08/9router-ai-coding-router-token-saver/</link>
        <pubDate>Fri, 08 May 2026 13:41:15 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/08/9router-ai-coding-router-token-saver/</guid>
        <description>&lt;p&gt;9Router は AI コーディングツール向けのローカルルーターです。Claude Code、Codex、Cursor、Cline、Copilot、OpenCode、OpenClaw などを 1 つの OpenAI-compatible endpoint に接続し、そこから複数のモデルや provider に転送します。&lt;/p&gt;
&lt;p&gt;目的はチャットクライアントを増やすことではありません。AI コーディングツールとモデル provider の間に入り、API 形式の違い、provider の手動切り替え、ツール出力による token 消費、quota 切れ、複数アカウント管理をまとめて扱います。&lt;/p&gt;
&lt;p&gt;README によると、9Router は 40 以上の provider と 100 以上のモデルに対応し、RTK Token Saver、自動 fallback、quota 追跡、複数アカウントのローテーション、形式変換、リクエストログを備えています。JavaScript 製で、Node.js、Next.js、React、Tailwind CSS、LowDB を使い、MIT ライセンスです。&lt;/p&gt;
&lt;h2 id=&#34;何に向いているか&#34;&gt;何に向いているか
&lt;/h2&gt;&lt;p&gt;複数の AI コーディングツールと複数のモデル供給元を同時に使う場合に便利です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code はサブスクリプションで使う。&lt;/li&gt;
&lt;li&gt;Codex や Cursor にカスタム OpenAI endpoint を設定したい。&lt;/li&gt;
&lt;li&gt;Cline、Continue、RooCode に OpenAI-compatible API を渡したい。&lt;/li&gt;
&lt;li&gt;無料 provider を試用に使う。&lt;/li&gt;
&lt;li&gt;GLM、MiniMax、Kimi などを安価なバックアップにする。&lt;/li&gt;
&lt;li&gt;高品質モデルを難しいタスクだけに使う。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;通常は各ツールに endpoint、API key、モデル名、fallback を個別設定する必要があります。9Router はそれをローカルのルーティング層に集約します。&lt;/p&gt;
&lt;p&gt;API:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:20128/v1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Dashboard:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:20128/dashboard
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;インストール&#34;&gt;インストール
&lt;/h2&gt;&lt;p&gt;ローカル利用なら npm が簡単です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g 9router
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9router
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ソースから実行する場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/decolua/9router.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; 9router
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PORT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20128&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;NEXT_PUBLIC_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://localhost:20128 npm run dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;本番起動：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run build
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PORT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20128&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;HOSTNAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0.0.0.0 &lt;span class=&#34;nv&#34;&gt;NEXT_PUBLIC_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://localhost:20128 npm run start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;npm パッケージは Node.js &lt;code&gt;&amp;gt;=18.0.0&lt;/code&gt; を要求します。VPS や Docker では &lt;code&gt;JWT_SECRET&lt;/code&gt;、&lt;code&gt;INITIAL_PASSWORD&lt;/code&gt;、&lt;code&gt;DATA_DIR&lt;/code&gt;、&lt;code&gt;API_KEY_SECRET&lt;/code&gt; を設定してください。&lt;/p&gt;
&lt;h2 id=&#34;ツールの接続&#34;&gt;ツールの接続
&lt;/h2&gt;&lt;p&gt;一般的な設定：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: http://localhost:20128/v1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: 9Router Dashboard からコピー
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model: 9Router で設定したモデル名または combo 名
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Codex CLI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OPENAI_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;http://localhost:20128&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;your-9router-api-key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex &lt;span class=&#34;s2&#34;&gt;&amp;#34;your prompt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cline、Continue、RooCode では &lt;code&gt;OpenAI Compatible&lt;/code&gt; を選びます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: http://localhost:20128/v1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: your-9router-api-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model: cc/claude-opus-4-7
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;モデル名は接続済み provider によって変わり、&lt;code&gt;cc/&lt;/code&gt;、&lt;code&gt;cx/&lt;/code&gt;、&lt;code&gt;gh/&lt;/code&gt;、&lt;code&gt;glm/&lt;/code&gt;、&lt;code&gt;minimax/&lt;/code&gt;、&lt;code&gt;kr/&lt;/code&gt;、&lt;code&gt;vertex/&lt;/code&gt; などがあります。&lt;/p&gt;
&lt;h2 id=&#34;rtk-token-saver&#34;&gt;RTK Token Saver
&lt;/h2&gt;&lt;p&gt;AI コーディングでは以下のようなツール出力が token を大きく消費します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git diff&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;grep&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;find&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ls&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tree&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;ログ&lt;/li&gt;
&lt;li&gt;長いファイル一覧&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;9Router の RTK Token Saver は、これらをモデルに送る前に圧縮します。プロジェクト説明では、多くのリクエストで 20%-40% の input tokens を節約できるとされています。&lt;/p&gt;
&lt;p&gt;ただし、重要なログや完全なファイル内容が必要な場面では、圧縮が回答品質に影響しないか確認してから使うのが安全です。&lt;/p&gt;
&lt;h2 id=&#34;自動-fallback&#34;&gt;自動 fallback
&lt;/h2&gt;&lt;p&gt;モデルを優先順に並べられます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. サブスクリプションモデル
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. 安価な API
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. 無料 provider
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. cc/claude-opus-4-7
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. glm/glm-5.1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. kr/claude-sonnet-4.5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;fallback は作業停止を減らしますが、モデルが変わると出力の一貫性も変わります。大規模リファクタリングや移行では固定モデルを使う方が安全です。&lt;/p&gt;
&lt;h2 id=&#34;無料-provider-の注意点&#34;&gt;無料 provider の注意点
&lt;/h2&gt;&lt;p&gt;Kiro、OpenCode Free、Vertex などの無料経路は便利ですが、利用条件、地域制限、サードパーティツールでの利用可否、ban や rate limit、期限を必ず確認してください。9Router はルーティングを管理するだけで、上流 provider の規約は変えません。&lt;/p&gt;
&lt;h2 id=&#34;デプロイ&#34;&gt;デプロイ
&lt;/h2&gt;&lt;p&gt;個人利用なら &lt;code&gt;localhost&lt;/code&gt; のみで十分です。VPS や LAN で公開するなら、デフォルトパスワードを変更し、強い &lt;code&gt;JWT_SECRET&lt;/code&gt; と &lt;code&gt;API_KEY_SECRET&lt;/code&gt; を設定し、Dashboard を公衆インターネットに直接出さず、&lt;code&gt;/v1/*&lt;/code&gt; に Bearer API key を要求します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name 9router &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 20128:20128 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --env-file ./.env &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v 9router-data:/app/data &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v 9router-usage:/root/.9router &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  9router
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;9Router は AI コーディングツールのローカル gateway です。Claude Code、Codex、Cursor、Cline などを &lt;code&gt;http://localhost:20128/v1&lt;/code&gt; に集約し、モデル選択、形式変換、token 圧縮、quota 追跡、fallback を処理します。&lt;/p&gt;
&lt;p&gt;複数 provider を使う重めの AI コーディングユーザーに向いています。まず 1 つのツールと 1 つの provider から試し、徐々に combo とアカウントを増やすのが無難です。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/decolua/9router&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;9Router GitHub リポジトリ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://9router.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;9Router 公式サイト&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.npmjs.com/package/9router&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;9Router npm パッケージ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>DeepSeek-TUI：ターミナルで DeepSeek コーディング Agent を動かす</title>
        <link>https://knightli.com/ja/2026/05/08/deepseek-tui-terminal-coding-agent/</link>
        <pubDate>Fri, 08 May 2026 13:41:15 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/08/deepseek-tui-terminal-coding-agent/</guid>
        <description>&lt;p&gt;DeepSeek-TUI はターミナルで動く AI コーディング Agent です。DeepSeek V4 モデルを中心に設計され、&lt;code&gt;deepseek&lt;/code&gt; コマンドで起動します。TUI 内でファイルの読み書き、shell コマンド、web search、git、MCP server、sub-agent 協調を扱えます。&lt;/p&gt;
&lt;p&gt;単なるチャット CLI というより、ターミナル上の作業台です。コードを読む、ファイルを編集する、コマンドを実行する、診断を見る、セッションを保存する、状態を戻す、という開発動作を 1 つにまとめます。&lt;/p&gt;
&lt;p&gt;リポジトリは主に Rust で書かれ、MIT ライセンスです。&lt;/p&gt;
&lt;h2 id=&#34;向いている人&#34;&gt;向いている人
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUI は、ターミナル中心の開発者が DeepSeek モデルをローカル開発に組み込みたい場合に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DeepSeek でコード修正やプロジェクト分析をしたい。&lt;/li&gt;
&lt;li&gt;フル IDE を開きたくない。&lt;/li&gt;
&lt;li&gt;AI に workspace を読ませ、必要に応じて編集させたい。&lt;/li&gt;
&lt;li&gt;Plan、Agent、YOLO を使い分けたい。&lt;/li&gt;
&lt;li&gt;セッション保存、長時間タスク再開、rollback が必要。&lt;/li&gt;
&lt;li&gt;MCP、LSP 診断、HTTP/SSE runtime API、skills を使いたい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;簡単な Q&amp;amp;A だけなら web や軽量 CLI で十分です。DeepSeek-TUI はモデルをローカル開発フローに入れたい人向けです。&lt;/p&gt;
&lt;h2 id=&#34;インストール&#34;&gt;インストール
&lt;/h2&gt;&lt;p&gt;npm:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g deepseek-tui
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model auto
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;npm パッケージは事前ビルド済み Rust バイナリを取得する installer/wrapper で、Node.js &lt;code&gt;&amp;gt;=18&lt;/code&gt; が必要です。&lt;/p&gt;
&lt;p&gt;Cargo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo install deepseek-tui-cli --locked
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo install deepseek-tui --locked
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Homebrew:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew tap Hmbown/deepseek-tui
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install deepseek-tui
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;GitHub Releases から Linux x64/ARM64、macOS x64/ARM64、Windows x64 のバイナリも入手できます。&lt;/p&gt;
&lt;p&gt;Docker:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run --rm -it &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e DEEPSEEK_API_KEY &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$PWD&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;:/workspace&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ghcr.io/hmbown/deepseek-tui:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;api-key&#34;&gt;API Key
&lt;/h2&gt;&lt;p&gt;初回起動時に DeepSeek API key を入力し、以下へ保存します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.deepseek/config.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;手動設定：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; --provider deepseek
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;環境変数：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;DEEPSEEK_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;YOUR_KEY&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;診断：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek doctor
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;保存済み key の削除：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth clear --provider deepseek
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;auto-mode&#34;&gt;Auto mode
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model auto
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;TUI 内:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/model auto
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Auto mode はモデルと thinking を同時に選びます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Model: &lt;code&gt;deepseek-v4-flash&lt;/code&gt; または &lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Thinking: &lt;code&gt;off&lt;/code&gt;、&lt;code&gt;high&lt;/code&gt;、&lt;code&gt;max&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本番リクエスト前に小さな routing call を行い、最新の依頼と文脈からモデルと thinking を決めます。&lt;code&gt;auto&lt;/code&gt; はローカル機能で、上流 API には具体的なモデル名が送られます。&lt;/p&gt;
&lt;p&gt;ベンチマーク、厳格なコスト管理、固定挙動が必要な場合は明示的にモデルを指定します。&lt;/p&gt;
&lt;h2 id=&#34;モード&#34;&gt;モード
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;モード&lt;/th&gt;
          &lt;th&gt;用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Plan&lt;/td&gt;
          &lt;td&gt;読み取り専用の調査と計画&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Agent&lt;/td&gt;
          &lt;td&gt;承認ゲート付きの通常モード&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;YOLO&lt;/td&gt;
          &lt;td&gt;信頼済み workspace で自動承認&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;YOLO は便利ですが危険も大きいため、信頼できる一時ブランチやテストディレクトリで使うべきです。&lt;/p&gt;
&lt;h2 id=&#34;主な機能&#34;&gt;主な機能
&lt;/h2&gt;&lt;p&gt;ファイル操作、apply patch、shell、git、web search/browse、sub-agent、MCP、LSP 診断、セッション保存と再開、workspace rollback、永続 task queue、HTTP/SSE runtime API、skills system に対応します。&lt;/p&gt;
&lt;p&gt;LSP 診断は編集後のエラーをモデルへ戻せる点が便利です。rollback は side-git snapshot を使い、&lt;code&gt;/restore&lt;/code&gt; と &lt;code&gt;revert_turn&lt;/code&gt; を提供します。ただし通常の git commit は引き続き重要です。&lt;/p&gt;
&lt;h2 id=&#34;よく使うコマンド&#34;&gt;よく使うコマンド
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek &lt;span class=&#34;s2&#34;&gt;&amp;#34;explain this function&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model deepseek-v4-flash &lt;span class=&#34;s2&#34;&gt;&amp;#34;summarize&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model auto &lt;span class=&#34;s2&#34;&gt;&amp;#34;fix this bug&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --yolo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; --provider deepseek
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek doctor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek doctor --json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek models
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek sessions
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek resume --last
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek resume &amp;lt;SESSION_ID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek fork &amp;lt;SESSION_ID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek serve --http
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek serve --acp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek pr &amp;lt;N&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek mcp list
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek mcp validate
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;zed--acp&#34;&gt;Zed / ACP
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;agent_servers&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;DeepSeek&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;custom&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;serve&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;--acp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;README によると、現在の ACP は新規セッションと prompt response を扱いますが、tool-backed editing と checkpoint replay はまだ公開されていません。&lt;/p&gt;
&lt;h2 id=&#34;設定と-provider&#34;&gt;設定と provider
&lt;/h2&gt;&lt;p&gt;ユーザー設定：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.deepseek/config.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;workspace overlay：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;workspace&amp;gt;/.deepseek/config.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;api_key&lt;/code&gt;、&lt;code&gt;base_url&lt;/code&gt;、&lt;code&gt;provider&lt;/code&gt;、&lt;code&gt;mcp_config_path&lt;/code&gt; などは workspace overlay で禁止されています。&lt;/p&gt;
&lt;p&gt;OpenAI-compatible:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; --provider openai --api-key &lt;span class=&#34;s2&#34;&gt;&amp;#34;YOUR_OPENAI_COMPATIBLE_API_KEY&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENAI_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://openai-compatible.example/v4&amp;#34;&lt;/span&gt; deepseek --provider openai --model glm-5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ollama:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama pull deepseek-coder:1.3b
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --provider ollama --model deepseek-coder:1.3b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUI は DeepSeek V4、TUI、tool call、LSP 診断、セッション再開、rollback、MCP、skills を 1 つの Rust ベースの作業環境にまとめたターミナル Agent です。軽量さよりも、ローカル開発フローへ深く入ることに価値があります。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Hmbown/DeepSeek-TUI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-TUI GitHub リポジトリ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://deepseek-tui.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-TUI 公式サイト&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.npmjs.com/package/deepseek-tui&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-TUI npm パッケージ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.deepseek.com/api_keys&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek API Keys&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>goose：デスクトップ、CLI、API を備えたオープンソース AI Agent</title>
        <link>https://knightli.com/ja/2026/05/08/goose-open-source-ai-agent-desktop-cli-api/</link>
        <pubDate>Fri, 08 May 2026 13:41:15 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/08/goose-open-source-ai-agent-desktop-cli-api/</guid>
        <description>&lt;p&gt;goose はローカルマシン上で動くオープンソース AI Agent です。コード補完だけでなく、コード、調査、執筆、自動化、データ分析など広いタスクを対象にしています。README ではデスクトップアプリ、CLI、API を提供する Agent として説明されています。&lt;/p&gt;
&lt;p&gt;このプロジェクトは &lt;code&gt;block/goose&lt;/code&gt; から Linux Foundation の Agentic AI Foundation（AAIF）へ移りました。現在のリポジトリは次の通りです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://github.com/aaif-goose/goose
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;goose は主に Rust と TypeScript で書かれ、Apache-2.0 ライセンスです。GitHub の説明では、コード提案を超えて、install、execute、edit、test を任意の LLM で行える拡張可能な AI agent とされています。&lt;/p&gt;
&lt;h2 id=&#34;解決する問題&#34;&gt;解決する問題
&lt;/h2&gt;&lt;p&gt;多くの AI コーディングツールは提案や局所的なコード編集に寄っています。goose はより広く、AI agent がローカルマシンでタスクを実行することを目指します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コード変更とテスト。&lt;/li&gt;
&lt;li&gt;ローカル自動化。&lt;/li&gt;
&lt;li&gt;調査と執筆。&lt;/li&gt;
&lt;li&gt;データ分析。&lt;/li&gt;
&lt;li&gt;複数ステップの workflow。&lt;/li&gt;
&lt;li&gt;API 経由の埋め込み。&lt;/li&gt;
&lt;li&gt;MCP による拡張。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;IDE 補完だけなら Copilot 系ツールで十分です。goose は AI をローカルのタスク実行チェーンに入れたい場合に向いています。&lt;/p&gt;
&lt;h2 id=&#34;3-つの入口&#34;&gt;3 つの入口
&lt;/h2&gt;&lt;p&gt;デスクトップアプリは macOS、Linux、Windows に対応し、視覚的に使いたい人に向いています。&lt;/p&gt;
&lt;p&gt;CLI はターミナル中心の開発者に向いています。&lt;/p&gt;
&lt;p&gt;API は他のシステムや社内ツールに agent runtime として組み込むためのものです。&lt;/p&gt;
&lt;p&gt;個人利用ならデスクトップか CLI から始め、チームや自動化基盤では API と custom distribution も検討します。&lt;/p&gt;
&lt;h2 id=&#34;インストール&#34;&gt;インストール
&lt;/h2&gt;&lt;p&gt;デスクトップ版：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://goose-docs.ai/docs/getting-started/installation
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;CLI：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;GitHub Releases には複数プラットフォームのビルドがあります。確認時点の latest release は &lt;code&gt;v1.33.1&lt;/code&gt; で、2026-04-29 に公開され、macOS、Linux、Windows、deb、rpm、Flatpak などの asset が含まれます。&lt;/p&gt;
&lt;p&gt;インストール後は公式 Quickstart に従って provider を設定し、まず低リスクなディレクトリで試します。&lt;/p&gt;
&lt;h2 id=&#34;provider&#34;&gt;Provider
&lt;/h2&gt;&lt;p&gt;goose は Anthropic、OpenAI、Google、Ollama、OpenRouter、Azure、Bedrock など 15 以上の provider に対応します。&lt;/p&gt;
&lt;p&gt;API key を使うことも、ACP 経由で既存の Claude、ChatGPT、Gemini サブスクリプションを使うこともできます。&lt;/p&gt;
&lt;p&gt;ACP は、既存のサブスクリプションを agent workflow に持ち込める点で重要です。ただし provider の規約、quota、会社コードや機密データでの利用可否は必ず確認してください。&lt;/p&gt;
&lt;h2 id=&#34;mcp-extension&#34;&gt;MCP extension
&lt;/h2&gt;&lt;p&gt;goose は Model Context Protocol extension に対応し、README では 70 以上の extensions に接続できるとされています。&lt;/p&gt;
&lt;p&gt;MCP により、agent はチャットやファイル編集だけでなく、ドキュメント、データベース、ブラウザ、社内システム、検索サービス、設計ツール、プロジェクト管理ツールなどと標準プロトコルで接続できます。&lt;/p&gt;
&lt;p&gt;チームでは、内部機能を明確な interface として公開する安全な統合層にもなります。&lt;/p&gt;
&lt;h2 id=&#34;コーディング助手との違い&#34;&gt;コーディング助手との違い
&lt;/h2&gt;&lt;p&gt;goose はコード補完ツールというよりローカル agent runtime です。&lt;/p&gt;
&lt;p&gt;一般的な助手は補完、説明、関数生成、エディタ内の局所編集に寄ります。goose はローカルタスク実行、複数ステップ workflow、provider 切り替え、extension、デスクトップと CLI、埋め込み API、非コードタスクも重視します。&lt;/p&gt;
&lt;p&gt;その分、モデル設定、権限、extension、workspace、ログ、credential 管理を考える必要があります。&lt;/p&gt;
&lt;h2 id=&#34;custom-distribution&#34;&gt;Custom distribution
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CUSTOM_DISTROS.md&lt;/code&gt; では、provider、extension、branding を事前設定した goose distro を作る方法が説明されています。&lt;/p&gt;
&lt;p&gt;チームは、許可された provider、社内 MCP server、安全ポリシー、ログ設定、禁止サービス、ブランドやオンボーディングを組み込んだ内部版を作れます。&lt;/p&gt;
&lt;h2 id=&#34;使い方の勧め&#34;&gt;使い方の勧め
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;デスクトップ版または CLI を入れる。&lt;/li&gt;
&lt;li&gt;1 つの provider を設定する。&lt;/li&gt;
&lt;li&gt;テストディレクトリで簡単なタスクを実行する。&lt;/li&gt;
&lt;li&gt;読み取るファイルと実行する動作を見る。&lt;/li&gt;
&lt;li&gt;MCP extension を追加する。&lt;/li&gt;
&lt;li&gt;複雑なリポジトリや自動化 workflow は後で試す。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;重要な変更前は git commit し、API key をプロジェクトに書かず、高権限モードは信頼できる workspace に限定します。会社コードではデータ規約と provider ポリシーを確認してください。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;goose は AAIF/Linux Foundation 傘下のオープンソース AI Agent で、デスクトップ、CLI、API、15 以上の provider、ACP サブスクリプション連携、70 以上の MCP extensions に対応します。&lt;/p&gt;
&lt;p&gt;価値はコードを書くことだけではなく、モデル、ツール、extension、ローカル実行環境を 1 つの agent framework にまとめる点にあります。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/aaif-goose/goose&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;goose GitHub リポジトリ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://goose-docs.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;goose ドキュメント&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://goose-docs.ai/docs/getting-started/installation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;goose インストールガイド&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://aaif.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Agentic AI Foundation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>ノート PC の RTX 4060 8GB で動かしやすいローカル AI モデル</title>
        <link>https://knightli.com/ja/2026/05/08/laptop-rtx-4060-8gb-local-ai-models/</link>
        <pubDate>Fri, 08 May 2026 13:41:15 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/08/laptop-rtx-4060-8gb-local-ai-models/</guid>
        <description>&lt;p&gt;ノート PC の RTX 4060 8GB でもローカル AI は十分試せます。ただし境界は明確で、重要なのは「起動できるか」ではなく「VRAM から溢れないか」です。モバイル版 RTX 4060 は電力、冷却、メモリ帯域、メーカー設定の影響を強く受けます。&lt;/p&gt;
&lt;p&gt;2026 年時点でも 8GB VRAM はローカル AI の入門ラインです。適切な量子化モデルとツールを選べば、3B-8B LLM、SDXL、SD 1.5、一部の FLUX 量子化 workflow、Whisper 文字起こし、画像特徴抽出を動かせます。14B 以上、未量子化大モデル、高負荷画像 workflow を無理に使うと、システムメモリへ溢れて大きく遅くなります。&lt;/p&gt;
&lt;p&gt;要点は、大きいモデルを追わず、小型モデル、量子化、低 VRAM workflow を使うことです。&lt;/p&gt;
&lt;h2 id=&#34;vram-予算&#34;&gt;VRAM 予算
&lt;/h2&gt;&lt;p&gt;Windows 11、ブラウザ、ドライバ、常駐アプリが先に VRAM を使います。AI に使える量は 8GB 全部ではなく、6.5GB-7.2GB 程度と考える方が安全です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LLM：3B-8B、4-bit 量子化。&lt;/li&gt;
&lt;li&gt;画像生成：SDXL、SD 1.5、FLUX GGUF/NF4 低 VRAM workflow。&lt;/li&gt;
&lt;li&gt;マルチモーダル：4B 前後の軽量モデル。&lt;/li&gt;
&lt;li&gt;音声：Whisper large-v3 は可能だが長時間処理は発熱に注意。&lt;/li&gt;
&lt;li&gt;画像索引：CLIP、ViT、SigLIP は相性がよい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;小さなモデルを GPU 内に収める方が、大きなモデルを CPU offload するより快適です。&lt;/p&gt;
&lt;h2 id=&#34;llm3b-8b-量子化&#34;&gt;LLM：3B-8B 量子化
&lt;/h2&gt;&lt;p&gt;ローカルチャットやテキスト推論には Ollama、LM Studio、koboldcpp、llama.cpp など GGUF 対応フロントエンドが便利です。8GB VRAM の快適域は 3B-8B の 4-bit 量子化です。&lt;/p&gt;
&lt;h3 id=&#34;軽量汎用gemma-4-e4b&#34;&gt;軽量汎用：Gemma 4 E4B
&lt;/h3&gt;&lt;p&gt;Gemma 4 E4B は Google の 2026 年 Gemma 4 系列の小型モデルです。ローカルや edge 用途に向き、日常 Q&amp;amp;A、要約、軽いマルチモーダル、低コスト推論に使いやすいモデルです。&lt;/p&gt;
&lt;p&gt;RTX 4060 ノートでは、まず公式またはコミュニティの量子化版から試します。最初から最高精度の重い重みを選ぶ必要はありません。&lt;/p&gt;
&lt;h3 id=&#34;推論と長文deepseek-r1-distill-7b8bqwen-3-8b&#34;&gt;推論と長文：DeepSeek R1 Distill 7B/8B、Qwen 3 8B
&lt;/h3&gt;&lt;p&gt;論理、数学、複雑な分析、長い中国語テキストには DeepSeek R1 distill 7B/8B や Qwen 3 8B の量子化版が候補です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Q4_K_M&lt;/code&gt; なら 8B クラスは 8GB VRAM に収まりやすいです。実際の速度は context 長、backend、driver、電源モードに左右されます。&lt;/p&gt;
&lt;p&gt;14B、32B 以上から始めるのはおすすめしません。CPU offload で起動できても、体験は小型 full-GPU モデルに劣りがちです。&lt;/p&gt;
&lt;h3 id=&#34;コードqwen-25-coder-3b7b&#34;&gt;コード：Qwen 2.5 Coder 3B/7B
&lt;/h3&gt;&lt;p&gt;コード用途では Qwen 2.5 Coder 3B/7B が扱いやすいです。3B は補完、説明、小さな生成に向き、7B は理解力が上がる代わりに重くなります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;リアルタイム補完：3B。&lt;/li&gt;
&lt;li&gt;Q&amp;amp;A と説明：3B または 7B。&lt;/li&gt;
&lt;li&gt;小規模リファクタ：7B 量子化。&lt;/li&gt;
&lt;li&gt;大規模設計分析：8GB 単体では期待しすぎない。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;画像生成&#34;&gt;画像生成
&lt;/h2&gt;&lt;p&gt;SD 1.5 は 8GB にとても優しく、高速で成熟しています。SDXL は重めですが実用範囲です。&lt;/p&gt;
&lt;p&gt;おすすめ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ComfyUI&lt;/li&gt;
&lt;li&gt;Stable Diffusion WebUI Forge&lt;/li&gt;
&lt;li&gt;Fooocus&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;FLUX は画質と prompt 理解が強い一方、元モデルは重いです。8GB では GGUF、NF4、FP8 など低 VRAM 経路と ComfyUI-GGUF を使います。&lt;/p&gt;
&lt;p&gt;実用策：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;FLUX.1 schnell GGUF Q4/Q5。&lt;/li&gt;
&lt;li&gt;解像度や batch size を下げる。&lt;/li&gt;
&lt;li&gt;ComfyUI の &lt;code&gt;--lowvram&lt;/code&gt; を使う。&lt;/li&gt;
&lt;li&gt;LoRA、ControlNet、高解像度修復を同時に盛りすぎない。&lt;/li&gt;
&lt;li&gt;workflow 変更後に VRAM 解放を確認する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;1024px は試せますが、16GB/24GB GPU 用 workflow をそのまま使わないでください。&lt;/p&gt;
&lt;h2 id=&#34;ユーティリティ用途&#34;&gt;ユーティリティ用途
&lt;/h2&gt;&lt;p&gt;Whisper large-v3 は音声文字起こしに使えます。長い音声を連続処理する場合は性能モードと冷却に注意します。&lt;/p&gt;
&lt;p&gt;写真検索システムなら RTX 4060 8GB はかなり向いています。CLIP、ViT、SigLIP は VRAM 要求が大きすぎず、数千枚の画像特徴抽出を高速に処理できます。&lt;/p&gt;
&lt;p&gt;典型的な流れ：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;CLIP/ViT/SigLIP で embedding を抽出する。&lt;/li&gt;
&lt;li&gt;SQLite や vector DB に保存する。&lt;/li&gt;
&lt;li&gt;テキストまたは類似画像で検索する。&lt;/li&gt;
&lt;li&gt;小型 LLM でタグ、説明、アルバム要約を作る。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;推奨構成&#34;&gt;推奨構成
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ollama / LM Studio
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ Gemma 4 E4B 量子化版
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ DeepSeek R1 Distill 7B/8B Q4
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ Qwen 3 8B Q4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Qwen 2.5 Coder 3B
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ Qwen 2.5 Coder 7B Q4
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ Continue / Cline / ローカル OpenAI-compatible server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ComfyUI / Forge
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ SDXL
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ SD 1.5
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ FLUX.1 schnell GGUF Q4/Q5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CLIP / SigLIP / ViT
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ SQLite / FAISS / LanceDB
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ Gemma 4 E4B または Phi-4 Mini
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;注意点&#34;&gt;注意点
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;場面&lt;/th&gt;
          &lt;th&gt;対策&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;大型モデル&lt;/td&gt;
          &lt;td&gt;14B+ は大幅な低速化を覚悟&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;量子化&lt;/td&gt;
          &lt;td&gt;まず &lt;code&gt;Q4_K_M&lt;/code&gt;、必要なら Q5&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;VRAM&lt;/td&gt;
          &lt;td&gt;タスクマネージャーや &lt;code&gt;nvidia-smi&lt;/code&gt; で監視&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;冷却&lt;/td&gt;
          &lt;td&gt;生成や batch 処理では性能モード&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;解像度&lt;/td&gt;
          &lt;td&gt;768px または 1024px 単枚から開始&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ブラウザ&lt;/td&gt;
          &lt;td&gt;GPU を使うタブを閉じる&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ドライバ&lt;/td&gt;
          &lt;td&gt;NVIDIA driver を新しめに保つ&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;workflow&lt;/td&gt;
          &lt;td&gt;16GB/24GB 用 ComfyUI workflow を直コピーしない&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;ノート PC の RTX 4060 8GB は、コスパのよいローカル AI 入門機です。3B-8B LLM、小型コードモデル、SDXL、SD 1.5、量子化 FLUX、Whisper、画像ベクトル検索、写真管理に向いています。&lt;/p&gt;
&lt;p&gt;一方で、14B/32B の長期運用、未量子化大モデル、高解像度 batch FLUX、大規模動画生成、複数モデル常駐には向きません。&lt;/p&gt;
&lt;p&gt;写真検索なら、GPU を CLIP/SigLIP 特徴抽出と小型モデルのタグ生成に使い、SQLite、FAISS、LanceDB で索引する構成が現実的です。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://deepmind.google/models/gemma/gemma-4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google DeepMind: Gemma 4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/google/gemma-4-E4B&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/gemma-4-E4B&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://arxiv.org/abs/2501.12948&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-R1 論文&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://comfyui-wiki.com/en/tutorial/advanced/image/flux/flux-1-dev-t2i&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ComfyUI FLUX.1 GGUF ガイド&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/vava22684/FLUX.1-schnell-gguf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;FLUX.1 schnell GGUF&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude Code 24の使い方：計画モード、巻き戻し、CLAUDE.md、Skills、Agents、プラグイン</title>
        <link>https://knightli.com/ja/2026/05/08/claude-code-24-tips-plan-rewind-skills-agents/</link>
        <pubDate>Fri, 08 May 2026 08:54:14 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/08/claude-code-24-tips-plan-rewind-skills-agents/</guid>
        <description>&lt;p&gt;Claude Code は単なるチャット欄ではない。プロジェクトディレクトリに入り、ファイルを読み書きし、コマンドを実行し、コンテキストを維持できるコーディング Agent に近い。&lt;/p&gt;
&lt;p&gt;要求を投げてコード生成を待つだけだと、計画が曖昧、権限確認が多い、コンテキストが長くなる、結果が気に入らない、戻し方が分からない、プロジェクトルールを残せない、といった問題にすぐ当たる。&lt;/p&gt;
&lt;p&gt;ここでは、Claude Code を使い始める開発者向けに、よく使う操作を整理する。&lt;/p&gt;
&lt;h2 id=&#34;まずプロジェクトディレクトリで起動する&#34;&gt;まずプロジェクトディレクトリで起動する
&lt;/h2&gt;&lt;p&gt;Claude Code は、適当な場所で開くより、プロジェクトディレクトリ内で起動するほうがよい。&lt;/p&gt;
&lt;p&gt;まずプロジェクト用フォルダを作り、その中でコマンドラインを開いて Claude Code を起動する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;初回に現在のフォルダを信頼するか聞かれたら、確認してから進める。これで Claude Code は現在のプロジェクトを基準にファイルを読み、作成し、コマンドを実行できる。&lt;/p&gt;
&lt;p&gt;練習には、写真家のポートフォリオサイトを作らせるようなタスクが向いている。見た目を確認でき、ファイル生成、コマンド実行、巻き戻し、リファクタリングを一通り試せる。&lt;/p&gt;
&lt;h2 id=&#34;計画モードで方向を先に決める&#34;&gt;計画モードで方向を先に決める
&lt;/h2&gt;&lt;p&gt;Claude Code は複雑なタスクでは計画モードに入ることがある。計画モードでは、先に要件を話し合い、手順を分解してから、実行を承認する。&lt;/p&gt;
&lt;p&gt;計画が出た後は、よく次のような選択肢が出る。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;計画を承認し、以後の編集ツール使用も自動承認する。&lt;/li&gt;
&lt;li&gt;計画を承認するが、以後の編集は手動確認する。&lt;/li&gt;
&lt;li&gt;実行を止め、計画についてさらに Claude Code と話す。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;タスクが明確なら承認して進める。まだ曖昧なら、ページの雰囲気、技術スタック、ディレクトリ構成、インタラクション、受け入れ条件をさらに詰める。&lt;/p&gt;
&lt;p&gt;計画モードの利点は手戻りを減らすことだ。いきなり Agent に作業させると多くのファイルが作られるが、方向が間違っていると後で修正が荒れやすい。&lt;/p&gt;
&lt;h2 id=&#34;shift--tab-でモードを切り替える&#34;&gt;Shift + Tab でモードを切り替える
&lt;/h2&gt;&lt;p&gt;Claude Code では &lt;code&gt;Shift + Tab&lt;/code&gt; で作業モードを切り替えられる。よく使うのは、計画モードへの切り替えや、編集ツールの自動承認モードへの切り替えだ。&lt;/p&gt;
&lt;p&gt;おすすめの使い分け：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;新規プロジェクト、新機能、大きな変更：まず計画モード。&lt;/li&gt;
&lt;li&gt;小さな修正、明確なバグ修正：直接実行。&lt;/li&gt;
&lt;li&gt;削除、置換、依存関係のインストール：手動確認を残す。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;計画モードでは、Claude Code がプロジェクト詳細を質問することがある。方向キーで選び、Enter で確定する。フィードバックを送ると、それに合わせて計画が更新される。&lt;/p&gt;
&lt;h2 id=&#34;権限確認をすべて開放しない&#34;&gt;権限確認をすべて開放しない
&lt;/h2&gt;&lt;p&gt;Claude Code がコマンド実行、ファイル編集、プログラム起動を行うとき、権限を求めることがある。&lt;/p&gt;
&lt;p&gt;よくある選択肢：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;今回だけ許可。&lt;/li&gt;
&lt;li&gt;現在の会話内で同種コマンドを許可。&lt;/li&gt;
&lt;li&gt;拒否または一時停止。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ローカルページの起動、開発サーバーの実行、ファイル確認なら必要に応じて許可してよい。ただし、クリックを減らすために「すべて自動許可」で長く使うのは避ける。&lt;/p&gt;
&lt;p&gt;完全自動の権限は、リスクが低く、内容を理解しており、Git バックアップがある場合だけに向く。日常利用では、削除、上書き、依存関係インストール、ネットワーク、コミット、スクリプト実行には人間の確認を残す。&lt;/p&gt;
&lt;h2 id=&#34;ターミナルモードでローカルコマンドを実行する&#34;&gt;ターミナルモードでローカルコマンドを実行する
&lt;/h2&gt;&lt;p&gt;Claude Code ではターミナルコマンドモードに入り、ローカルコマンドを実行できる。&lt;/p&gt;
&lt;p&gt;ページ生成後、HTML ファイルを開く例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;start index.html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;start&lt;/code&gt; は Windows でファイルを開くコマンドで、後ろにファイル名を付ける。エクスプローラーで探すより速い。&lt;/p&gt;
&lt;p&gt;ターミナルモードに向く操作：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;生成ページを開く。&lt;/li&gt;
&lt;li&gt;ディレクトリを確認する。&lt;/li&gt;
&lt;li&gt;開発サーバーを起動する。&lt;/li&gt;
&lt;li&gt;テストやビルドを実行する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一方、再帰削除、ディレクトリ移動、一括上書き、システム環境変更のような高リスク操作には注意する。&lt;/p&gt;
&lt;h2 id=&#34;結果が違うときは早めに巻き戻す&#34;&gt;結果が違うときは早めに巻き戻す
&lt;/h2&gt;&lt;p&gt;Claude Code が作ったページやコードが期待と違い、修正するほど乱れていくなら、早めに巻き戻す。&lt;/p&gt;
&lt;p&gt;巻き戻しでは、会話やコードを特定の時点へ戻せる。よくある選択肢：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コードと会話を同時に戻す。&lt;/li&gt;
&lt;li&gt;会話だけ戻す。&lt;/li&gt;
&lt;li&gt;コードだけ戻す。&lt;/li&gt;
&lt;li&gt;以前の内容を要約に圧縮する。&lt;/li&gt;
&lt;li&gt;キャンセルする。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;明らかに方向がずれた場合は、コードと会話を同時に戻すのがおすすめだ。コンテキストとファイル状態を一緒にきれいな位置へ戻せる。&lt;/p&gt;
&lt;p&gt;ただし、Claude Code の巻き戻しは通常、内蔵ツールで作成・変更したファイルが対象だ。外部コマンドで作ったファイルは完全には戻らないことがある。重要なプロジェクトでは Git と併用する。&lt;/p&gt;
&lt;h2 id=&#34;長いプロンプトはエディタで書く&#34;&gt;長いプロンプトはエディタで書く
&lt;/h2&gt;&lt;p&gt;複雑な要件を1行の入力欄に詰め込まない。&lt;/p&gt;
&lt;p&gt;長いプロンプトをテキストエディタで編集できる場合は、エディタで要件を書き、保存してから送る。&lt;/p&gt;
&lt;p&gt;長いプロンプトには次を書くとよい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;目的。&lt;/li&gt;
&lt;li&gt;使用する技術スタック。&lt;/li&gt;
&lt;li&gt;してはいけないこと。&lt;/li&gt;
&lt;li&gt;残すべきファイル。&lt;/li&gt;
&lt;li&gt;完了後の確認方法。&lt;/li&gt;
&lt;li&gt;ページや機能の受け入れ条件。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例えば普通の HTML ページを現代的な技術スタックへリファクタリングしたい場合、「リファクタリングして」だけでは足りない。コンポーネント化、見た目の維持、レスポンシブ対応、ビルド確認まで明記する。&lt;/p&gt;
&lt;h2 id=&#34;終了後は履歴から会話を復元する&#34;&gt;終了後は履歴から会話を復元する
&lt;/h2&gt;&lt;p&gt;途中で Claude Code を終了する必要がある場合は、通常通り終了する。その後、同じプロジェクトディレクトリに戻って再起動する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;以前の記録が直接出ない場合は、履歴関連コマンドで最近の会話を見て、以前の会話を読み込む。&lt;/p&gt;
&lt;p&gt;これは中断後の継続に便利だ。ただし会話履歴だけを記憶として頼らない。プロジェクトルール、技術スタック、よく使うコマンド、注意点はプロジェクトファイルに書く。&lt;/p&gt;
&lt;h2 id=&#34;claudemd-にプロジェクトルールを保存する&#34;&gt;CLAUDE.md にプロジェクトルールを保存する
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; は Claude Code にとって重要な記憶ファイルだ。通常はプロジェクトルートに置き、プロジェクトルール、技術スタック、ディレクトリ構造、協業上の制約を書く。&lt;/p&gt;
&lt;p&gt;初期化は次で行える。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; に向いている内容：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロジェクト目標。&lt;/li&gt;
&lt;li&gt;技術スタック。&lt;/li&gt;
&lt;li&gt;起動、テスト、ビルドのコマンド。&lt;/li&gt;
&lt;li&gt;ディレクトリ説明。&lt;/li&gt;
&lt;li&gt;コードスタイル。&lt;/li&gt;
&lt;li&gt;禁止操作。&lt;/li&gt;
&lt;li&gt;コミットとデプロイルール。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;各会話で、Claude Code はこの種のルールをコンテキストの一部として利用できる。プロジェクト説明書と考えると分かりやすい。&lt;/p&gt;
&lt;p&gt;簡単な検証方法は、&lt;code&gt;CLAUDE.md&lt;/code&gt; に明確なルールを追加してから質問することだ。回答がそのルールに従えば、プロジェクト記憶を読んでいる。&lt;/p&gt;
&lt;h2 id=&#34;-でファイルを参照する&#34;&gt;@ でファイルを参照する
&lt;/h2&gt;&lt;p&gt;入力欄で &lt;code&gt;@&lt;/code&gt; を使うと、ファイルや Agent を選び、現在の会話コンテキストに追加できる。&lt;/p&gt;
&lt;p&gt;向いている場面：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;設定ファイルを読ませる。&lt;/li&gt;
&lt;li&gt;特定ページを修正させる。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; や他の文書に基づいて続けさせる。&lt;/li&gt;
&lt;li&gt;「このファイルだけ見て、構造を推測しない」と明示する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ファイル内容を入力欄に貼るより、&lt;code&gt;@&lt;/code&gt; 参照のほうが明確で漏れにくい。&lt;/p&gt;
&lt;h2 id=&#34;コンテキストを確認圧縮する&#34;&gt;コンテキストを確認・圧縮する
&lt;/h2&gt;&lt;p&gt;長時間会話すると、コンテキストは大きくなる。長すぎるとモデルが遅くなったり、初期の細部を無視し始めたりする。&lt;/p&gt;
&lt;p&gt;現在の使用状況は次で確認できる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/context
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;長くなったら履歴を圧縮する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/compact
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;それでも効果が悪い場合は、現在のコンテキストを消す。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;消した後も、Claude Code はプロジェクトファイル、&lt;code&gt;CLAUDE.md&lt;/code&gt;、現在のディレクトリから一部を再理解できる。ただし完全な会話履歴は残らない。&lt;/p&gt;
&lt;p&gt;実用的には、1つのタスクが終わったら新しい会話にし、プロジェクトルールは &lt;code&gt;CLAUDE.md&lt;/code&gt; に書き、臨時の議論を1つのチャットに積み続けない。&lt;/p&gt;
&lt;h2 id=&#34;skills固定フローを説明書にする&#34;&gt;Skills：固定フローを説明書にする
&lt;/h2&gt;&lt;p&gt;Skills は Claude Code の作業説明書と考えられる。一度きりのプロンプトではなく、再利用できるタスクフローだ。&lt;/p&gt;
&lt;p&gt;例えば週報をよく作るなら、週報 Skill を作り、次を明記する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;必要な入力。&lt;/li&gt;
&lt;li&gt;出力形式。&lt;/li&gt;
&lt;li&gt;口調と構成。&lt;/li&gt;
&lt;li&gt;必ず残す内容。&lt;/li&gt;
&lt;li&gt;捏造してはいけない内容。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Skills は通常、&lt;code&gt;name&lt;/code&gt;、&lt;code&gt;description&lt;/code&gt;、具体的な指示で構成される。グローバル Skills ディレクトリに入れると、Claude Code は関連タスクで認識して読み込める。&lt;/p&gt;
&lt;p&gt;向いている作業：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;週報。&lt;/li&gt;
&lt;li&gt;コードレビューのテンプレート。&lt;/li&gt;
&lt;li&gt;文書整理。&lt;/li&gt;
&lt;li&gt;画像の一括処理。&lt;/li&gt;
&lt;li&gt;固定形式の記事。&lt;/li&gt;
&lt;li&gt;プロジェクト初期化フロー。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;同じプロンプトを何度もコピーしているなら、Skill 化を検討するとよい。&lt;/p&gt;
&lt;h2 id=&#34;agentsサブタスクを独立した助手へ渡す&#34;&gt;Agents：サブタスクを独立した助手へ渡す
&lt;/h2&gt;&lt;p&gt;Agents は Skills と違う。&lt;/p&gt;
&lt;p&gt;Skill は説明書に近く、Claude Code にやり方を教える。Agent は独立した助手に近く、主会話の外で作業し、結果を返す。&lt;/p&gt;
&lt;p&gt;Agents の価値はコンテキストの隔離だ。コード点検なら、読み取り専用 Agent を作り、プロジェクトを読むだけでレポートを出させる。ファイルを直接変更しないので、主会話を汚さず、誤操作も減らせる。&lt;/p&gt;
&lt;p&gt;Agent 作成時に考えること：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロジェクト級かユーザー級か。&lt;/li&gt;
&lt;li&gt;Claude Code に設定を生成させるか。&lt;/li&gt;
&lt;li&gt;どのツール権限を許すか。&lt;/li&gt;
&lt;li&gt;どのモデルを使うか。&lt;/li&gt;
&lt;li&gt;記憶を保存するか。&lt;/li&gt;
&lt;li&gt;Agent のプロンプトが十分明確か。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;コード点検 Agent には、まず読み取り権限だけを与えるのがおすすめだ。先にレポートを出させ、その後で主会話が修正するか判断する。&lt;/p&gt;
&lt;h2 id=&#34;プラグインskillsagentsmcphooks-をまとめる&#34;&gt;プラグイン：Skills、Agents、MCP、Hooks をまとめる
&lt;/h2&gt;&lt;p&gt;プラグインは、より完全な能力パッケージだ。中には次が含まれることがある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skills&lt;/li&gt;
&lt;li&gt;Agents&lt;/li&gt;
&lt;li&gt;MCP&lt;/li&gt;
&lt;li&gt;Hooks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;単体の Skill より、プラグインはまとまった能力に向いている。例えばフロントエンドデザイン用プラグインなら、見た目のルール、レイアウト、コンポーネント習慣、関連 Agent をまとめて持てる。&lt;/p&gt;
&lt;p&gt;インストール時には、よく次の場所を選べる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ユーザーディレクトリ：全プロジェクトで有効。&lt;/li&gt;
&lt;li&gt;プロジェクトディレクトリ：プロジェクトと共有。&lt;/li&gt;
&lt;li&gt;ローカルプロジェクトディレクトリ：現在の PC だけで有効。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;個人で常用する能力はユーザーディレクトリ、チームの約束はプロジェクトディレクトリ、一時テストはローカルに置くとよい。&lt;/p&gt;
&lt;h2 id=&#34;プラグインは特定タスクの品質を上げる&#34;&gt;プラグインは特定タスクの品質を上げる
&lt;/h2&gt;&lt;p&gt;フロントエンドページ生成では、プラグインは素のプロンプトより安定しやすい。&lt;/p&gt;
&lt;p&gt;同じ「写真家の個人サイトを作る」でも、普通のプロンプトだけなら見られるページができる程度かもしれない。フロントエンドデザインプラグインを明示すると、構造、視覚階層、余白、配色、完成度が良くなりやすい。&lt;/p&gt;
&lt;p&gt;もちろんプラグインは人間の審美眼を置き換えない。より良い初稿を作らせ、人間が細部を調整するのが現実的だ。&lt;/p&gt;
&lt;h2 id=&#34;より安定した-claude-code-ワークフロー&#34;&gt;より安定した Claude Code ワークフロー
&lt;/h2&gt;&lt;p&gt;これらを組み合わせると、安定した流れになる。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;プロジェクトディレクトリで &lt;code&gt;claude&lt;/code&gt; を起動する。&lt;/li&gt;
&lt;li&gt;まず計画モードで要件を話す。&lt;/li&gt;
&lt;li&gt;承認前に技術スタックと受け入れ条件を確認する。&lt;/li&gt;
&lt;li&gt;高リスク操作は手動確認を残す。&lt;/li&gt;
&lt;li&gt;ターミナルモードでプレビューとテストを行う。&lt;/li&gt;
&lt;li&gt;方向がずれたら早めに巻き戻す。&lt;/li&gt;
&lt;li&gt;プロジェクトルールを &lt;code&gt;CLAUDE.md&lt;/code&gt; に書く。&lt;/li&gt;
&lt;li&gt;長い会話では定期的にコンテキストを確認・圧縮する。&lt;/li&gt;
&lt;li&gt;繰り返す作業は Skills にする。&lt;/li&gt;
&lt;li&gt;点検、調査、分析は読み取り専用 Agents に渡す。&lt;/li&gt;
&lt;li&gt;特定分野のタスクはプラグインを優先する。&lt;/li&gt;
&lt;li&gt;重要プロジェクトでは常に Git のチェックポイントを作る。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;こう使うほうが、「一文送って生成を待つ」よりはるかに安定する。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Claude Code の効率はモデル能力だけでなく、ワークフロー制御からも生まれる。&lt;/p&gt;
&lt;p&gt;計画モードは方向を決め、権限確認はリスクを抑え、巻き戻しは手戻りを減らす。&lt;code&gt;CLAUDE.md&lt;/code&gt; はプロジェクトルールを保存し、&lt;code&gt;/context&lt;/code&gt;、&lt;code&gt;/compact&lt;/code&gt;、&lt;code&gt;/clear&lt;/code&gt; はコンテキストを管理する。Skills は固定フローを再利用し、Agents は複雑なサブタスクを隔離し、プラグインはまとまった能力をプロジェクトへ持ち込む。&lt;/p&gt;
&lt;p&gt;Claude Code をうまく使うには、明確な境界の中で継続的に作業させることが大事だ。プロジェクト全体を一度に丸投げするのではない。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude Opus 4.7、Sonnet 4.6、Haiku 4.5 の違いとは？Claude モデル選びガイド</title>
        <link>https://knightli.com/ja/2026/05/08/anthropic-claude-model-lineup/</link>
        <pubDate>Fri, 08 May 2026 08:19:03 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/08/anthropic-claude-model-lineup/</guid>
        <description>&lt;p&gt;Anthropic の中核的な大規模モデルは、主に &lt;code&gt;Claude&lt;/code&gt; シリーズとして進化している。2026 年 5 月時点で、Claude の主流プロダクトラインは 4.x 世代に入り、全体としては今も三つの階層に分かれている。&lt;code&gt;Opus&lt;/code&gt; は最高性能、&lt;code&gt;Sonnet&lt;/code&gt; は性能とコストのバランス、&lt;code&gt;Haiku&lt;/code&gt; は速度と費用対効果を担う。&lt;/p&gt;
&lt;p&gt;素早く選びたいだけなら、まずは次の一文を覚えておくとよい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;最も複雑で重い推論や agentic coding：まず &lt;code&gt;Claude Opus 4.7&lt;/code&gt; を検討する。&lt;/li&gt;
&lt;li&gt;多くの開発、執筆、分析、企業 API の場面：&lt;code&gt;Claude Sonnet 4.6&lt;/code&gt; から始めるのが安定している。&lt;/li&gt;
&lt;li&gt;高並行、低遅延、コスト重視のタスク：&lt;code&gt;Claude Haiku 4.5&lt;/code&gt; を検討する。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;現在の主流モデル&#34;&gt;現在の主流モデル
&lt;/h2&gt;&lt;p&gt;Anthropic の公式モデルドキュメントをもとにすると、現在の Claude の主流モデルは次のように理解できる。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;モデル&lt;/th&gt;
          &lt;th&gt;位置づけ&lt;/th&gt;
          &lt;th&gt;適した用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Claude Opus 4.7&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;現在最も強力な汎用利用可能モデルで、複雑な推論と agentic coding 向け&lt;/td&gt;
          &lt;td&gt;大規模コードベースのリファクタリング、多段階タスク、複雑な戦略分析、より高い一貫性が必要な作業&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Claude Sonnet 4.6&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;速度、能力、コストのバランスがよく、100 万 token のコンテキストウィンドウに対応&lt;/td&gt;
          &lt;td&gt;コード生成、長文書分析、企業ナレッジワーク、Agent 開発、日常的な高品質の生産タスク&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Claude Haiku 4.5&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;最も高速で低コストな小型モデルの階層だが、フロンティアモデルに近い能力も持つ&lt;/td&gt;
          &lt;td&gt;リアルタイム対話、カスタマーサポート、バッチ分類、簡単なコード支援、高並行 API 呼び出し&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;ここでは、二つの命名上の注意点がある。&lt;/p&gt;
&lt;p&gt;第一に、公式名称は &lt;code&gt;Claude Haiku 4.5&lt;/code&gt; であり、&lt;code&gt;Claude 4.5 Haiku&lt;/code&gt; ではない。第二に、&lt;code&gt;Claude Mythos Preview&lt;/code&gt; は一般ユーザーや開発者向けの主流利用可能モデルではない。これは Project Glasswing に関連する管理された研究プレビューであり、主に防御的なサイバーセキュリティワークフロー向けなので、通常の Claude モデル選びに混ぜるべきではない。&lt;/p&gt;
&lt;h2 id=&#34;opus最も難しい問題を扱う&#34;&gt;Opus：最も難しい問題を扱う
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Opus&lt;/code&gt; は Anthropic が最強モデルに使う階層だ。&lt;code&gt;Claude Opus 4.7&lt;/code&gt; の重点は、安さでも最速であることでもない。複雑で、多段階で、何度も検証が必要なタスクにより向いている点にある。&lt;/p&gt;
&lt;p&gt;次のような場面により適している。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多数のファイルにまたがる大規模なコード変更。&lt;/li&gt;
&lt;li&gt;複雑なシステムリファクタリングとアーキテクチャ推論。&lt;/li&gt;
&lt;li&gt;長い処理連鎖を持つ Agent タスク。&lt;/li&gt;
&lt;li&gt;より強い視覚理解、文書理解、多段階計画が必要な作業。&lt;/li&gt;
&lt;li&gt;ミスのコストが高い企業分析タスク。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一度失敗したときの代償が大きいタスクや、作業を始める前にモデルへより深く文脈を理解してほしい場合、&lt;code&gt;Opus&lt;/code&gt; は試す価値が高いことが多い。&lt;/p&gt;
&lt;h2 id=&#34;sonnet多くの人にとってのデフォルト起点&#34;&gt;Sonnet：多くの人にとってのデフォルト起点
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude Sonnet 4.6&lt;/code&gt; は、デフォルトの入口としてより使いやすいモデルだ。その位置づけは「低スペック版 Opus」ではなく、十分に強い推論、プログラミング、視覚理解、長いコンテキスト、agent planning を、より管理しやすいコストと速度の中に収めることにある。&lt;/p&gt;
&lt;p&gt;開発者にとって、&lt;code&gt;Sonnet 4.6&lt;/code&gt; の価値は主に三つある。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;非常に長いコンテキストを扱えるため、コードベース、契約書、レポート、複数の資料を入れやすい。&lt;/li&gt;
&lt;li&gt;Claude Code、API、企業利用の場面で常用モデルとして使いやすい。&lt;/li&gt;
&lt;li&gt;Opus よりコストが低く、高頻度利用に向いている。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;どの Claude モデルから始めればよいかわからない場合は、通常 &lt;code&gt;Claude Sonnet 4.6&lt;/code&gt; から始めればよい。タスクが明らかにより強い能力を必要とするときだけ、&lt;code&gt;Opus&lt;/code&gt; に切り替える。&lt;/p&gt;
&lt;h2 id=&#34;haiku速さと安さがより重要なとき&#34;&gt;Haiku：速さと安さがより重要なとき
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude Haiku 4.5&lt;/code&gt; は小型モデルの階層だが、単純に「弱いモデル」と考えるべきではない。Anthropic はこれを高速かつ低コストでありながら、フロンティアモデルに近い能力を保持するモデルとして位置づけている。&lt;/p&gt;
&lt;p&gt;次のような場面に適している。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;リアルタイムチャットとカスタマーサポートボット。&lt;/li&gt;
&lt;li&gt;大量の短文分類。&lt;/li&gt;
&lt;li&gt;低遅延 API 呼び出し。&lt;/li&gt;
&lt;li&gt;簡単なコード修正と高速プロトタイピング。&lt;/li&gt;
&lt;li&gt;複数 Agent ワークフロー内のサブタスク実行。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;タスク自体が明確で、文脈が複雑ではなく、スループットが重要な場合、&lt;code&gt;Haiku&lt;/code&gt; は大きなモデルを盲目的に使うより合理的なことが多い。&lt;/p&gt;
&lt;h2 id=&#34;claude-のツール能力&#34;&gt;Claude のツール能力
&lt;/h2&gt;&lt;p&gt;Claude シリーズは単なるチャットモデルではない。Anthropic は現在、モデル能力を複数のプロダクトや開発者ツールに組み込んでいる。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Claude Code&lt;/code&gt; は開発者向けのコマンドライン型プログラミングツールで、コードベースの読み取り、ファイル編集、コマンド実行、テスト実行ができる。継続的にエンジニアリングタスクを進める用途に向いている。その体験は、モデル自体のコード理解、コンテキスト管理、ツール呼び出しの安定性に大きく依存する。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Computer Use&lt;/code&gt; は、スクリーンショット、マウス、キーボードを通じてモデルにデスクトップ環境を操作させる能力だ。慎重な利用が必要であり、公式ドキュメントでも誤操作やセキュリティリスクを避けるため、隔離環境で実行することが強調されている。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Artifacts&lt;/code&gt; は Claude アプリ側の体験に近く、コード、ページプロトタイプ、グラフ、文書の結果をインターフェース上でプレビューし、反復できるようにするものだ。これは単独のモデルではなく、Claude のプロダクト形態の一部である。&lt;/p&gt;
&lt;p&gt;「Managed Agents」や「自己進化 Agent」のような表現については、記事を書く際に慎重であるべきだ。Anthropic が Agent SDK、Claude Code、長いコンテキスト、ツール呼び出し、企業ワークフローを強化しているのは確かだが、すでに制御不能な自己進化能力を持つかのように説明すべきではない。&lt;/p&gt;
&lt;h2 id=&#34;アクセス方法&#34;&gt;アクセス方法
&lt;/h2&gt;&lt;p&gt;一般ユーザーは &lt;code&gt;Claude.ai&lt;/code&gt; のWeb版またはモバイルアプリから Claude を利用できる。利用できるモデル、上限、機能はプランによって変わる。&lt;/p&gt;
&lt;p&gt;開発者には通常、いくつかの接続方法がある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Anthropic Console と Claude API。&lt;/li&gt;
&lt;li&gt;Amazon Bedrock。&lt;/li&gt;
&lt;li&gt;Google Cloud Vertex AI。&lt;/li&gt;
&lt;li&gt;Microsoft Foundry。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;利用可能なモデル、コンテキストウィンドウ、価格、地域サポートは変化する可能性がある。開発前には、Anthropic の公式モデルドキュメントと各クラウドプラットフォームのページを確認するのがよい。&lt;/p&gt;
&lt;h2 id=&#34;どう選ぶか&#34;&gt;どう選ぶか
&lt;/h2&gt;&lt;p&gt;実際に使うとき、最初から最強モデルを追いかける必要はない。よりよい方法は、タスクのコストに応じて階層化して選ぶことだ。&lt;/p&gt;
&lt;p&gt;日常的な執筆、コード生成、長文書分析、知識整理、多くの Agent プロトタイプであれば、まず &lt;code&gt;Claude Sonnet 4.6&lt;/code&gt; を使う。通常、費用対効果と汎用能力の最良の出発点になる。&lt;/p&gt;
&lt;p&gt;より強い複雑推論、ファイル横断のエンジニアリング変更、長い処理連鎖の計画、またはより高い信頼性が必要な場合は、&lt;code&gt;Claude Opus 4.7&lt;/code&gt; に切り替える。&lt;/p&gt;
&lt;p&gt;分類、要約、カスタマーサポート、バッチ処理のように、タスクが簡単で量が多く、遅延に敏感な場合は、&lt;code&gt;Claude Haiku 4.5&lt;/code&gt; を候補に入れる。&lt;/p&gt;
&lt;p&gt;Claude のモデルラインは、単なる「新バージョンが旧バージョンを置き換える」ものではない。タスクの難度、速度、コストに応じて階層化されたツールボックスだ。最も高価なモデルを盲目的に使うより、適切なモデルを選ぶことのほうが重要である。&lt;/p&gt;
&lt;h2 id=&#34;参考リンク&#34;&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Anthropic Models Overview：&lt;a class=&#34;link&#34; href=&#34;https://platform.claude.com/docs/en/about-claude/models/overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://platform.claude.com/docs/en/about-claude/models/overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Introducing Claude Opus 4.7：&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/claude-opus-4-7&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.anthropic.com/news/claude-opus-4-7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Introducing Claude Sonnet 4.6：&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/claude-sonnet-4-6&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.anthropic.com/news/claude-sonnet-4-6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Introducing Claude Haiku 4.5：&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/claude-haiku-4-5&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.anthropic.com/news/claude-haiku-4-5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Anthropic Computer Use Tool：&lt;a class=&#34;link&#34; href=&#34;https://docs.anthropic.com/en/docs/build-with-claude/computer-use&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.anthropic.com/en/docs/build-with-claude/computer-use&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT-5.5、GPT-5.5 Instant、GPT-5.5 Thinking、GPT-5.5 Pro の違い</title>
        <link>https://knightli.com/ja/2026/05/07/gpt-5-5-instant-thinking-pro-differences/</link>
        <pubDate>Thu, 07 May 2026 21:59:33 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/07/gpt-5-5-instant-thinking-pro-differences/</guid>
        <description>&lt;p&gt;OpenAI は現在、GPT-5.5 を &lt;code&gt;Instant&lt;/code&gt;、&lt;code&gt;Thinking&lt;/code&gt;、&lt;code&gt;Pro&lt;/code&gt; という、より明確な利用階層に分けています。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;、&lt;code&gt;GPT-5.5 Instant&lt;/code&gt;、&lt;code&gt;GPT-5.5 Thinking&lt;/code&gt;、&lt;code&gt;GPT-5.5 Pro&lt;/code&gt; は混同されがちです。簡単に言えば、&lt;code&gt;GPT-5.5&lt;/code&gt; はこの世代のモデル能力の総称です。&lt;code&gt;Instant&lt;/code&gt; は日常向けの高速モデル、&lt;code&gt;Thinking&lt;/code&gt; は深い推論モード、&lt;code&gt;Pro&lt;/code&gt; はより重い研究級モードです。&lt;/p&gt;
&lt;h2 id=&#34;早見表&#34;&gt;早見表
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;名称&lt;/th&gt;
          &lt;th&gt;本質&lt;/th&gt;
          &lt;th&gt;向いている用途&lt;/th&gt;
          &lt;th&gt;速度/コスト&lt;/th&gt;
          &lt;th&gt;利用可能性&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5&lt;/td&gt;
          &lt;td&gt;GPT-5.5 の主モデル/ファミリー名。ChatGPT では通常 GPT-5.5 Thinking の能力位置付けに近い&lt;/td&gt;
          &lt;td&gt;複雑な作業、コード、研究、分析、ツール利用&lt;/td&gt;
          &lt;td&gt;Instant より重いが、能力は高い&lt;/td&gt;
          &lt;td&gt;Plus、Pro、Business、Enterprise&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5 Instant&lt;/td&gt;
          &lt;td&gt;GPT-5.3 Instant を置き換える高速デフォルトモデル&lt;/td&gt;
          &lt;td&gt;日常 Q&amp;amp;A、文章作成、要約、軽いコード、素早い調査&lt;/td&gt;
          &lt;td&gt;最速で、最もクォータ効率が良い&lt;/td&gt;
          &lt;td&gt;すべての ChatGPT ユーザーへ段階的に展開&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5 Thinking&lt;/td&gt;
          &lt;td&gt;深い推論モード&lt;/td&gt;
          &lt;td&gt;難問、長文脈分析、複雑なコード、研究、文書密集タスク&lt;/td&gt;
          &lt;td&gt;遅めだが、推論が安定&lt;/td&gt;
          &lt;td&gt;有料ユーザーが手動選択可能&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5 Pro&lt;/td&gt;
          &lt;td&gt;より高強度な研究級モード&lt;/td&gt;
          &lt;td&gt;高リスク/高精度タスク：法律、ビジネス、教育、データサイエンス、科学研究分析&lt;/td&gt;
          &lt;td&gt;最も遅く重いが、品質重視&lt;/td&gt;
          &lt;td&gt;Pro、Business、Enterprise、Edu&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;一つだけ覚えるなら次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;日常の高速タスク&lt;/strong&gt;：&lt;code&gt;GPT-5.5 Instant&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;複雑な推論とコード分析&lt;/strong&gt;：&lt;code&gt;GPT-5.5 Thinking&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;特に難しく重要で、より網羅的かつ厳密さが必要な作業&lt;/strong&gt;：&lt;code&gt;GPT-5.5 Pro&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;gpt-55-とは何か&#34;&gt;GPT-5.5 とは何か
&lt;/h2&gt;&lt;p&gt;単独で &lt;code&gt;GPT-5.5&lt;/code&gt; と言う場合、通常は GPT-5.5 世代の主なモデル能力を指し、固定の一つのボタンを指すわけではありません。&lt;/p&gt;
&lt;p&gt;OpenAI は GPT-5.5 を「実際の仕事に向いた、より強いモデル」と位置付けています。重点は次のような能力です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;agentic coding。&lt;/li&gt;
&lt;li&gt;複雑なコードデバッグ。&lt;/li&gt;
&lt;li&gt;研究と資料の統合。&lt;/li&gt;
&lt;li&gt;文書、表計算、プレゼン資料の生成。&lt;/li&gt;
&lt;li&gt;コンピュータ利用とツール横断作業。&lt;/li&gt;
&lt;li&gt;長いタスクでの継続的推論と自己チェック。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ChatGPT では、ユーザーが見るのは曖昧な &lt;code&gt;GPT-5.5&lt;/code&gt; ボタンではなく、より具体的な &lt;code&gt;Instant&lt;/code&gt;、&lt;code&gt;Thinking&lt;/code&gt;、&lt;code&gt;Pro&lt;/code&gt; です。そのため「GPT-5.5 を使っている」と聞いたら、Instant なのか、Thinking なのか、Pro なのかを確認した方がよいです。&lt;/p&gt;
&lt;h2 id=&#34;gpt-55-instantデフォルト高速日常向け&#34;&gt;GPT-5.5 Instant：デフォルト、高速、日常向け
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT-5.5 Instant&lt;/code&gt; は新しい高速デフォルトモデルです。OpenAI の公式説明では、&lt;code&gt;GPT-5.3 Instant&lt;/code&gt; を置き換え始め、ChatGPT のデフォルトモデルになり、API では &lt;code&gt;chat-latest&lt;/code&gt; として提供されます。&lt;/p&gt;
&lt;p&gt;向いているタスク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;日常会話。&lt;/li&gt;
&lt;li&gt;素早い Q&amp;amp;A。&lt;/li&gt;
&lt;li&gt;普通の文章作成。&lt;/li&gt;
&lt;li&gt;記事の要約。&lt;/li&gt;
&lt;li&gt;メールの書き換え。&lt;/li&gt;
&lt;li&gt;軽いコード説明。&lt;/li&gt;
&lt;li&gt;簡単な表やリスト。&lt;/li&gt;
&lt;li&gt;長時間の推論を必要としないタスク。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Instant の主な利点は速度とデフォルト利用です。毎回手動で推論モードを選ぶ必要がなく、普通の質問に高い待ち時間を払う必要もありません。&lt;/p&gt;
&lt;p&gt;もう一つの変化として、OpenAI は GPT-5.5 Instant の回答がより明瞭で簡潔になり、パーソナライズ能力も強くなったとしています。普通のユーザーにとっては、一日中開いておくモデルとして使いやすいということです。&lt;/p&gt;
&lt;p&gt;注意点は、Instant が「最強モード」ではないことです。複雑な数学、長いコード、アーキテクチャ設計、複数ファイル分析、本格的な研究では、自動的に Thinking に切り替わることもあれば、手動で Thinking を選ぶ必要があることもあります。&lt;/p&gt;
&lt;h2 id=&#34;gpt-55-thinking複雑タスクの主力&#34;&gt;GPT-5.5 Thinking：複雑タスクの主力
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT-5.5 Thinking&lt;/code&gt; は、複雑なタスクに向いた推論モードです。&lt;/p&gt;
&lt;p&gt;向いている場面：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コードデバッグ。&lt;/li&gt;
&lt;li&gt;アーキテクチャ設計。&lt;/li&gt;
&lt;li&gt;多段階推論。&lt;/li&gt;
&lt;li&gt;長文書分析。&lt;/li&gt;
&lt;li&gt;学術資料整理。&lt;/li&gt;
&lt;li&gt;ビジネス案の検討。&lt;/li&gt;
&lt;li&gt;データ分析の説明。&lt;/li&gt;
&lt;li&gt;比較、トレードオフ、検証が必要なタスク。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thinking はより多くの時間を使って推論します。OpenAI Help Center によると、GPT-5.5 Thinking または GPT-5.5 Pro が推論を開始すると、何をするつもりかを説明する短い preamble が表示されることがあります。モデルが thinking 中でも、ユーザーは追加指示を入れて方向を早めに調整できます。&lt;/p&gt;
&lt;p&gt;ChatGPT で Thinking を手動選択する場合、thinking time も調整できます。公式説明では、Plus と Business ユーザーは &lt;code&gt;Standard&lt;/code&gt; と &lt;code&gt;Extended&lt;/code&gt; を使えます。Pro ユーザーには &lt;code&gt;Light&lt;/code&gt; や &lt;code&gt;Heavy&lt;/code&gt; など、さらに多くの選択肢があります。&lt;/p&gt;
&lt;p&gt;私の理解では、Thinking は「本気で作業する」ための標準選択です。タスクが多段階、長文脈、高い正確性を必要とするなら、Instant より適しています。&lt;/p&gt;
&lt;h2 id=&#34;gpt-55-pro研究級でより重くより厳密&#34;&gt;GPT-5.5 Pro：研究級で、より重く、より厳密
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT-5.5 Pro&lt;/code&gt; は、より難しい問題と高精度作業向けのモードです。&lt;/p&gt;
&lt;p&gt;向いている場面：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;法律資料分析。&lt;/li&gt;
&lt;li&gt;ビジネス調査。&lt;/li&gt;
&lt;li&gt;教育とカリキュラム設計。&lt;/li&gt;
&lt;li&gt;データサイエンス。&lt;/li&gt;
&lt;li&gt;科学研究資料の統合。&lt;/li&gt;
&lt;li&gt;高リスク判断前の深いレビュー。&lt;/li&gt;
&lt;li&gt;複数文書、複数制約、複数ラウンドの検証タスク。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenAI は GPT-5.5 の発表で、初期テスターが GPT-5.5 Pro について、GPT-5.4 Pro と比べて完全性、構造性、正確性、関連性、実用性が明らかに向上したと評価したと述べています。特にビジネス、法律、教育、データサイエンスで強いとされています。&lt;/p&gt;
&lt;p&gt;Pro の欠点も明確です。遅く、重く、小さな質問すべてに使うものではありません。日常チャットの入口というより、専門家レビューや研究パートナーに近いものです。&lt;/p&gt;
&lt;p&gt;また Pro にはツール対応の制限があります。OpenAI Help Center では、Apps、Memory、Canvas、画像生成は Pro では利用できないとされています。これらの ChatGPT 機能が必要な場合は、Instant または Thinking を使う方がよいかもしれません。&lt;/p&gt;
&lt;h2 id=&#34;ツール対応の違い&#34;&gt;ツール対応の違い
&lt;/h2&gt;&lt;p&gt;OpenAI Help Center によると、&lt;code&gt;GPT-5.5 Instant&lt;/code&gt; と &lt;code&gt;GPT-5.5 Thinking&lt;/code&gt; は ChatGPT の一般的なツールに対応しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web search。&lt;/li&gt;
&lt;li&gt;Data analysis。&lt;/li&gt;
&lt;li&gt;Image analysis。&lt;/li&gt;
&lt;li&gt;File analysis。&lt;/li&gt;
&lt;li&gt;Canvas。&lt;/li&gt;
&lt;li&gt;Image generation。&lt;/li&gt;
&lt;li&gt;Memory。&lt;/li&gt;
&lt;li&gt;Custom Instructions。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;GPT-5.5 Pro&lt;/code&gt; は研究級推論寄りですが、すべての ChatGPT ツールを使えるわけではありません。特に次に注意します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apps は利用不可。&lt;/li&gt;
&lt;li&gt;Memory は利用不可。&lt;/li&gt;
&lt;li&gt;Canvas は利用不可。&lt;/li&gt;
&lt;li&gt;画像生成は利用不可。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまりモデルを選ぶときは、「どれが賢いか」だけでなく、必要なツールも見る必要があります。&lt;/p&gt;
&lt;h2 id=&#34;コンテキストウィンドウの違い&#34;&gt;コンテキストウィンドウの違い
&lt;/h2&gt;&lt;p&gt;OpenAI Help Center が示す ChatGPT のコンテキストウィンドウは、おおよそ次の通りです。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;モード&lt;/th&gt;
          &lt;th&gt;コンテキストウィンドウ&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5 Instant&lt;/td&gt;
          &lt;td&gt;Free：16K；Plus/Business：32K；Pro/Enterprise：128K&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5 Thinking&lt;/td&gt;
          &lt;td&gt;有料プランで手動選択した場合は通常 256K；Pro では最大 400K&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;つまり次のように考えられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;普通の会話と短い文書なら Instant で十分。&lt;/li&gt;
&lt;li&gt;複数ファイル、多ラウンド研究、長いコードベース分析なら Thinking が向く。&lt;/li&gt;
&lt;li&gt;特に長く複雑で高精度なタスクでは、Pro ユーザーはより大きな文脈と重い推論を使える。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;どう選ぶか&#34;&gt;どう選ぶか
&lt;/h2&gt;&lt;h3 id=&#34;日常-qa&#34;&gt;日常 Q&amp;amp;A
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5 Instant&lt;/code&gt; を使います。&lt;/p&gt;
&lt;p&gt;速く、十分賢く、気軽な質問、素早い文章作成、素早い修正に向いています。&lt;/p&gt;
&lt;h3 id=&#34;記事作成要約メール修正&#34;&gt;記事作成、要約、メール修正
&lt;/h3&gt;&lt;p&gt;まず &lt;code&gt;GPT-5.5 Instant&lt;/code&gt; を使います。&lt;/p&gt;
&lt;p&gt;記事が長い、構造的な書き直しが必要、複数回の校正が必要な場合は、&lt;code&gt;GPT-5.5 Thinking&lt;/code&gt; に切り替えます。&lt;/p&gt;
&lt;h3 id=&#34;コード作成とデバッグ&#34;&gt;コード作成とデバッグ
&lt;/h3&gt;&lt;p&gt;簡単なコード説明は &lt;code&gt;Instant&lt;/code&gt; で十分です。&lt;/p&gt;
&lt;p&gt;複数ファイルのデバッグ、アーキテクチャ設計、複雑なエラー分析には &lt;code&gt;Thinking&lt;/code&gt; を使います。非常に難しい長期的なエンジニアリング問題なら &lt;code&gt;Pro&lt;/code&gt; も検討できます。&lt;/p&gt;
&lt;h3 id=&#34;研究と資料分析&#34;&gt;研究と資料分析
&lt;/h3&gt;&lt;p&gt;普通の資料整理には &lt;code&gt;Thinking&lt;/code&gt; を使います。&lt;/p&gt;
&lt;p&gt;法律、ビジネス、科学研究、データサイエンスのような高精度タスクでは &lt;code&gt;Pro&lt;/code&gt; がより適しています。&lt;/p&gt;
&lt;h3 id=&#34;画像生成canvasmemory-が必要な場合&#34;&gt;画像生成、Canvas、Memory が必要な場合
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Instant&lt;/code&gt; または &lt;code&gt;Thinking&lt;/code&gt; を優先します。&lt;/p&gt;
&lt;p&gt;Pro は一部の ChatGPT ツールに対応していないため、デフォルトで &lt;code&gt;Pro&lt;/code&gt; を選ばない方がよいです。&lt;/p&gt;
&lt;h2 id=&#34;短い結論&#34;&gt;短い結論
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT-5.5 Instant&lt;/code&gt; は日常のデフォルトモデルです。速く、明瞭で、クォータ効率が良く、多くの普通のタスクに向きます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.5 Thinking&lt;/code&gt; は複雑タスクの主力です。コード、研究、長文書、分析、多段階推論に向きます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.5 Pro&lt;/code&gt; は高精度研究モードです。より難しく重要で、厳密さが必要なタスクに向きますが、速度とツール対応にはより制限があります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt; そのものは、この世代の総称に近いものです。実際に選ぶときは、ChatGPT で &lt;code&gt;Instant&lt;/code&gt;、&lt;code&gt;Thinking&lt;/code&gt;、&lt;code&gt;Pro&lt;/code&gt; のどれを選ぶかが重要です。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GPT-5.5 Instant 発表：&lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/gpt-5-5-instant/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://openai.com/index/gpt-5-5-instant/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GPT-5.5 発表：&lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/introducing-gpt-5-5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://openai.com/index/introducing-gpt-5-5/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GPT-5.5 in ChatGPT Help Center：&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/11909943-gpt-53-and-gpt-55-in-chatgpt&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/11909943-gpt-53-and-gpt-55-in-chatgpt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Pixelle-Video：1つのテーマから短尺動画を生成するオープンソース AI エンジン</title>
        <link>https://knightli.com/ja/2026/05/07/pixelle-video-ai-short-video-engine/</link>
        <pubDate>Thu, 07 May 2026 20:25:17 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/07/pixelle-video-ai-short-video-engine/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/AIDC-AI/Pixelle-Video&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Pixelle-Video&lt;/a&gt; は、AIDC-AI が公開している全自動短尺動画生成エンジンです。目標は明快です。ユーザーがテーマを入力すると、動画台本、AI 画像または動画、音声ナレーション、BGM、最終合成までを自動で処理します。&lt;/p&gt;
&lt;p&gt;この種のツールは、短尺動画の量産、知識解説、口播コンテンツ、小説解説、歴史・文化系動画、自媒体向け素材実験に向いています。単体の「テキストから動画」モデルではなく、複数の AI 能力をつなげた制作パイプラインです。&lt;/p&gt;
&lt;h2 id=&#34;自動化できること&#34;&gt;自動化できること
&lt;/h2&gt;&lt;p&gt;Pixelle-Video の標準フローは次のように整理できます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;テーマまたは固定台本を入力する。&lt;/li&gt;
&lt;li&gt;大規模言語モデルでナレーション原稿を生成する。&lt;/li&gt;
&lt;li&gt;シーン設計に沿って画像または動画素材を生成する。&lt;/li&gt;
&lt;li&gt;TTS で音声ナレーションを生成する。&lt;/li&gt;
&lt;li&gt;BGM を追加する。&lt;/li&gt;
&lt;li&gt;動画テンプレートを適用して最終動画を合成する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;README では「台本生成 → 画像計画 → フレームごとの処理 → 動画合成」という流れとして説明されています。モジュール化されているため、各ステップのモデルやパラメータを差し替えたり、独自ワークフローに変更したりしやすい構成です。&lt;/p&gt;
&lt;h2 id=&#34;主な機能&#34;&gt;主な機能
&lt;/h2&gt;&lt;p&gt;プロジェクトが対応している機能はかなり幅広いです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI 台本生成：テーマから動画ナレーションを自動生成。&lt;/li&gt;
&lt;li&gt;AI 画像生成：各セリフや各シーンに対応するイラストを生成。&lt;/li&gt;
&lt;li&gt;AI 動画生成：WAN 2.1 などの動画生成モデルに対応。&lt;/li&gt;
&lt;li&gt;TTS 音声：Edge-TTS、Index-TTS などをサポート。&lt;/li&gt;
&lt;li&gt;BGM：内蔵 BGM またはカスタム音楽を利用可能。&lt;/li&gt;
&lt;li&gt;複数サイズ出力：縦動画、横動画など複数の比率に対応。&lt;/li&gt;
&lt;li&gt;複数モデル：GPT、Qwen、DeepSeek、Ollama などに対応。&lt;/li&gt;
&lt;li&gt;ComfyUI ワークフロー：標準ワークフローを使うことも、画像生成、TTS、動画生成などを差し替えることも可能。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最近の更新では、モーション転写、デジタルヒューマン口播、画像から動画、多言語 TTS ボイス、RunningHub 対応、Windows 一体型パッケージなども追加されています。単なるスクリプトではなく、より完成度の高い制作ツールへ向かっていることが分かります。&lt;/p&gt;
&lt;h2 id=&#34;インストールと起動&#34;&gt;インストールと起動
&lt;/h2&gt;&lt;p&gt;Windows ユーザーは、まず公式の一体型パッケージを見るのがよいでしょう。Python、uv、ffmpeg を手動で準備せずに使えるようにするためのもので、展開後に &lt;code&gt;start.bat&lt;/code&gt; を実行し、ブラウザで Web UI を開いて API と画像生成サービスを設定します。&lt;/p&gt;
&lt;p&gt;ソースコードから起動する場合、README では次の基本手順が示されています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/AIDC-AI/Pixelle-Video.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; Pixelle-Video
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv run streamlit run web/app.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ソースからの利用は macOS、Linux ユーザーや、テンプレート、ワークフロー、サービス設定を変更したい人に向いています。主な前提は &lt;code&gt;uv&lt;/code&gt; と &lt;code&gt;ffmpeg&lt;/code&gt; です。&lt;/p&gt;
&lt;h2 id=&#34;設定の要点&#34;&gt;設定の要点
&lt;/h2&gt;&lt;p&gt;初回利用時に重要なのは、すぐに「生成」を押すことではなく、外部能力を正しく接続することです。&lt;/p&gt;
&lt;p&gt;LLM 設定は台本品質を左右します。Qwen、GPT、DeepSeek、Ollama などを選び、API Key、Base URL、モデル名を入力します。コストを抑えたいならローカルの Ollama が候補になります。安定した結果を優先するなら、クラウドモデルの方が扱いやすいことが多いです。&lt;/p&gt;
&lt;p&gt;画像・動画生成設定は画面品質を決めます。プロジェクトはローカル ComfyUI と RunningHub に対応しています。ComfyUI に慣れているユーザーなら、自分のワークフローを &lt;code&gt;workflows/&lt;/code&gt; ディレクトリに置き、標準の画像生成、動画生成、TTS フローを差し替えられます。&lt;/p&gt;
&lt;p&gt;テンプレート設定は最終動画の見た目を決めます。プロジェクトは &lt;code&gt;templates/&lt;/code&gt; ディレクトリで動画テンプレートを管理し、静的テンプレート、画像テンプレート、動画テンプレートを命名規則で分けています。クリエイターにとっては、素材だけでなく、そのままプレビューしてダウンロードできる動画まで出せる点が実用的です。&lt;/p&gt;
&lt;h2 id=&#34;向いている人&#34;&gt;向いている人
&lt;/h2&gt;&lt;p&gt;Pixelle-Video は次のような人に向いています。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;短尺動画クリエイター&lt;/strong&gt;：企画を素早く投稿可能な下書き動画にしたい人。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AIGC ツールユーザー&lt;/strong&gt;：LLM、ComfyUI、TTS、動画合成をつなげたい人。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;開発者・自動化ユーザー&lt;/strong&gt;：オープンソースを基にテンプレートやワークフローを改造し、自分の素材やモデルを接続したい人。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;高品質な一本ものの動画を作るだけなら、手作業の編集を完全に置き換えるとは限りません。ただし、同じ構造の解説動画、口播動画、科普系コンテンツを大量に作りたいなら、このパイプライン型の考え方はかなり有用です。&lt;/p&gt;
&lt;h2 id=&#34;注意点&#34;&gt;注意点
&lt;/h2&gt;&lt;p&gt;この種のツールの上限は複数の工程で決まります。台本モデルが弱いと内容が薄くなり、画像モデルが弱いと画面が散らかり、TTS が不自然だと動画が粗く感じられます。テンプレートが合わなければ、最終的な見栄えも弱くなります。&lt;/p&gt;
&lt;p&gt;そのため、まずは「60秒の縦型知識解説動画」のような固定シーンから調整するのがおすすめです。LLM、画風、TTS 音色、BGM、テンプレートを固めてから、ほかのテーマへ広げる方が安定します。&lt;/p&gt;
&lt;p&gt;また、ローカル無料構成にも対応していますが、通常は GPU、ComfyUI 設定、モデルファイルが必要です。ローカル推論環境がない場合は、クラウド LLM と RunningHub を組み合わせると導入は楽になりますが、利用コストには注意が必要です。&lt;/p&gt;
&lt;h2 id=&#34;短評&#34;&gt;短評
&lt;/h2&gt;&lt;p&gt;Pixelle-Video の見どころは「一文から動画を生成できる」ことだけではありません。短尺動画制作を、台本、映像、音声、音楽、テンプレート、合成という交換可能なモジュールに分解している点にあります。一般ユーザーにとっては低ハードルの AI 動画ツールであり、開発者にとっては改造しやすい短尺動画自動化フレームワークです。&lt;/p&gt;
&lt;p&gt;AI 短尺動画パイプラインを研究している人、あるいは ComfyUI、TTS、LLM、テンプレート合成を一つの製品としてつなげたい人なら、Pixelle-Video は試して分解してみる価値があります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>ChatGPT、Claude Code、Gemini の記憶機構は何が違うのか</title>
        <link>https://knightli.com/ja/2026/05/07/chatgpt-claude-code-gemini-memory-comparison/</link>
        <pubDate>Thu, 07 May 2026 14:47:17 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/07/chatgpt-claude-code-gemini-memory-comparison/</guid>
        <description>&lt;p&gt;AI 製品における「記憶」はますます重要になっている。これは AI が「単発の会話ツール」から「長期的な協力相手」へ移行していることを示している。毎回背景を説明し直す必要がなくなり、好みを繰り返し伝える必要もなく、同じプロジェクトを何度も理解させる必要も減る。&lt;/p&gt;
&lt;p&gt;しかし、製品ごとの記憶は同じものではない。&lt;code&gt;ChatGPT&lt;/code&gt;、&lt;code&gt;Claude Code&lt;/code&gt;、&lt;code&gt;Gemini&lt;/code&gt; はいずれも「AI がより長く覚える」問題を扱っているが、設計目標、保存場所、透明性、適用シーンは大きく異なる。&lt;/p&gt;
&lt;p&gt;2026 年 5 月 7 日時点では、おおまかに3つに分けられる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT は「個人アシスタントの記憶」に近い。&lt;/li&gt;
&lt;li&gt;Claude Code は「エンジニアリングプロジェクトの記憶」に近い。&lt;/li&gt;
&lt;li&gt;Gemini は「Google エコシステムの文脈」に近い。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;chatgpt人を中心にした長期的な好み&#34;&gt;ChatGPT：人を中心にした長期的な好み
&lt;/h2&gt;&lt;p&gt;ChatGPT の記憶機構は主に個人協作向けだ。関心の中心は「あなたは誰か」「何を好むか」「長期的に何をしているか」にある。&lt;/p&gt;
&lt;p&gt;OpenAI は現在、ChatGPT の記憶を &lt;code&gt;saved memories&lt;/code&gt; と &lt;code&gt;chat history&lt;/code&gt; に分けている。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;saved memories&lt;/code&gt; は、ChatGPT が保存する重要情報だ。名前、好み、目標、よく使う技術スタック、文章の癖などが含まれる。ユーザーが明示的に覚えるよう頼むこともできるし、ChatGPT が会話の中から将来役立つと判断した情報を保存する場合もある。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;chat history&lt;/code&gt; は、回答時に過去の会話を参照する仕組みだ。すべての会話がそのまま記憶になるわけではなく、必要に応じて過去の会話から関連文脈を探す。&lt;/p&gt;
&lt;p&gt;つまり ChatGPT の中核ロジックは、同じユーザーを会話をまたいで理解することだ。&lt;/p&gt;
&lt;p&gt;典型例は次のようなものだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「今後コード例はできるだけ簡潔にして。」&lt;/li&gt;
&lt;li&gt;「私は主に Python と TypeScript を使っている。」&lt;/li&gt;
&lt;li&gt;「AI ツールについての Hugo ブログを書いている。」&lt;/li&gt;
&lt;li&gt;「先に結論を見て、その後に詳細を読むのが好き。」&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの記憶は特定プロジェクトに紐づくものではなく、アカウントと個人の利用習慣についてくる。&lt;/p&gt;
&lt;h2 id=&#34;memory-sources個人化の出所を見えるようにする&#34;&gt;Memory Sources：個人化の出所を見えるようにする
&lt;/h2&gt;&lt;p&gt;OpenAI は 2026 年 5 月の更新で &lt;code&gt;Memory sources&lt;/code&gt; を強調した。&lt;/p&gt;
&lt;p&gt;これは新しい記憶タイプではなく、ChatGPT が回答を個人化するときに参照した情報源をユーザーに見せる仕組みだ。OpenAI のヘルプ文書によると、Memory Sources には次のようなものが表示される場合がある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;過去のチャット。&lt;/li&gt;
&lt;li&gt;保存された記憶。&lt;/li&gt;
&lt;li&gt;カスタム指示。&lt;/li&gt;
&lt;li&gt;ファイルライブラリ内のファイル。&lt;/li&gt;
&lt;li&gt;接続済み Gmail のメール。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ファイルや Gmail の表示範囲は、プラン、地域、接続状態によって制限される。OpenAI はまた、Memory sources が回答に影響したすべての要因を表示するとは限らず、個人化の理解と管理を助けるものだと説明している。&lt;/p&gt;
&lt;p&gt;これは重要だ。AI が「あなたを覚える」ほど、ユーザーは何に基づいて回答したのかを知る必要がある。そうでなければ個人化はブラックボックスになりやすい。AI が自分を知っているように見えるが、なぜ知っているのか分からない状態になる。&lt;/p&gt;
&lt;p&gt;ChatGPT の強みは、会話やテーマをまたいで個人の好みを継続的に理解することだ。一方で、記憶が古くなったり、古い記憶がまだ回答に影響していることをユーザーが忘れたりするリスクもある。そのため saved memories と古いチャットは定期的に整理したほうがよい。&lt;/p&gt;
&lt;h2 id=&#34;claude-codeコードベースとエンジニアリングルールを中心に&#34;&gt;Claude Code：コードベースとエンジニアリングルールを中心に
&lt;/h2&gt;&lt;p&gt;Claude Code の記憶機構はエンジニアリング協作寄りだ。関心の中心は「ユーザーが普段何を好むか」ではなく、「このコードベースをどう変更すべきか」だ。&lt;/p&gt;
&lt;p&gt;Claude Code には混同されやすい2種類の記憶がある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;明示的なプロジェクト記憶：&lt;code&gt;CLAUDE.md&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;自動プロジェクト記憶：Auto Memory。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; は最も基本的で安定したプロジェクト記憶ファイルだ。プロジェクトルートにも、サブディレクトリにも置ける。Claude Code はこれらのファイルを読み、プロジェクト説明と作業ルールとして扱う。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; に書くのに適した内容は次の通りだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;よく使う build、test、lint コマンド。&lt;/li&gt;
&lt;li&gt;コードスタイルと命名規則。&lt;/li&gt;
&lt;li&gt;プロジェクトアーキテクチャ。&lt;/li&gt;
&lt;li&gt;モジュール境界と危険な領域。&lt;/li&gt;
&lt;li&gt;チームの約束事とコミットフロー。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; をリポジトリに置けば、Git にコミットしてチーム共有の agent 説明書にできる。これは ChatGPT のクラウド上の個人記憶とはまったく異なる。&lt;/p&gt;
&lt;h2 id=&#34;claude-code-auto-memoryプロジェクト経験を自動で蓄積する&#34;&gt;Claude Code Auto Memory：プロジェクト経験を自動で蓄積する
&lt;/h2&gt;&lt;p&gt;Claude Code には現在 &lt;code&gt;Auto Memory&lt;/code&gt; もある。目的は、ユーザーが毎回手で説明を書かなくても、Claude が複数セッションにまたがってプロジェクト経験を自動的に蓄積できるようにすることだ。&lt;/p&gt;
&lt;p&gt;Claude Code の文書によると、Auto Memory は作業中に Claude が自分用のメモを保存する仕組みだ。build コマンド、デバッグで分かったこと、アーキテクチャ説明、コードスタイルの好み、ワークフロー習慣などが対象になる。すべてのセッションで保存するわけではなく、将来役立ちそうな情報を判断する。&lt;/p&gt;
&lt;p&gt;誤解されやすい点がある。Auto Memory はデフォルトでプロジェクトルートの &lt;code&gt;.claude/memory.md&lt;/code&gt; に書くわけではない。公式文書では、各プロジェクトはユーザーディレクトリ配下に独自の memory ディレクトリを持つと説明されている。パスは次のような形だ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.claude/projects/&amp;lt;project&amp;gt;/memory/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;MEMORY.md&lt;/code&gt; は各会話開始時に最初の 200 行または 25KB が読み込まれ、詳細は別のトピックファイルへ分割される場合がある。Auto Memory ファイルはローカルの Markdown ファイルで、ユーザーは &lt;code&gt;/memory&lt;/code&gt; から表示、編集、削除できる。&lt;/p&gt;
&lt;p&gt;これにより Claude Code の記憶は「ローカル上のプロジェクト経験庫」に近くなる。ChatGPT の個人記憶よりコードベースに近く、単なる &lt;code&gt;CLAUDE.md&lt;/code&gt; より動的だ。&lt;/p&gt;
&lt;p&gt;ただし Auto Memory はローカルマシン上のものだ。リポジトリと一緒に他のマシンやクラウド環境へ自然に同期されるわけではない。チームで共有すべき安定したルールは、やはりプロジェクト内の &lt;code&gt;CLAUDE.md&lt;/code&gt; に書くべきだ。&lt;/p&gt;
&lt;h2 id=&#34;geminigoogle-エコシステムの文脈を中心に&#34;&gt;Gemini：Google エコシステムの文脈を中心に
&lt;/h2&gt;&lt;p&gt;Gemini の記憶ロジックはまた別だ。&lt;/p&gt;
&lt;p&gt;Gemini にも保存情報と過去チャット参照の能力がある。Google のヘルプ文書では、ユーザーは生活、仕事、好みに関する情報を保存でき、Gemini は回答前に過去のチャットを参照できると説明されている。これらの情報を使うと、回答下部のソース領域に &lt;code&gt;Your saved info&lt;/code&gt; や &lt;code&gt;Previous chats&lt;/code&gt; が表示される場合がある。&lt;/p&gt;
&lt;p&gt;しかし Gemini の差別化は「好みを数個保存する」ことだけではなく、Google エコシステム連携にある。&lt;/p&gt;
&lt;p&gt;ユーザーが許可し、機能が利用可能な場合、Gemini は Gmail、Google Drive、Docs、Sheets など接続された Google アプリから文脈を取得できる。強みは、ユーザーが一つずつ教え込むことではなく、すでに Google アカウント内にある資料を検索可能な作業文脈にできることだ。&lt;/p&gt;
&lt;p&gt;典型的な違いは次のようになる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT は「最近 LTO テープドライブを修理している」と覚える。&lt;/li&gt;
&lt;li&gt;Gemini は Gmail から購入確認メールを見つけたり、Drive から修理メモを読んだりできる場合がある。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もちろん、Gemini が無条件で Google データすべてを読めるわけではない。アカウント種別、地域、権限、接続アプリ、Keep Activity 設定、具体的な製品提供状況に依存する。企業や学校アカウントでは、Google Workspace 管理者の制御も受ける。&lt;/p&gt;
&lt;p&gt;より正確に言えば、Gemini の記憶は単純な「メモ帳」ではなく、「保存情報 + 過去チャット + Google エコシステム接続」の組み合わせだ。&lt;/p&gt;
&lt;h2 id=&#34;3者の主な違い&#34;&gt;3者の主な違い
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;次元&lt;/th&gt;
          &lt;th&gt;ChatGPT&lt;/th&gt;
          &lt;th&gt;Claude Code&lt;/th&gt;
          &lt;th&gt;Gemini&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;中心対象&lt;/td&gt;
          &lt;td&gt;人と好み&lt;/td&gt;
          &lt;td&gt;プロジェクトとコードベース&lt;/td&gt;
          &lt;td&gt;Google アカウントとエコシステム資料&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;典型的な記憶&lt;/td&gt;
          &lt;td&gt;好み、背景、長期目標&lt;/td&gt;
          &lt;td&gt;アーキテクチャ、コマンド、規約、デバッグ経験&lt;/td&gt;
          &lt;td&gt;saved info、過去チャット、Gmail/Drive/Docs 文脈&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;保存形態&lt;/td&gt;
          &lt;td&gt;OpenAI アカウント内の記憶とチャット文脈&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;、&lt;code&gt;MEMORY.md&lt;/code&gt;、ローカル Markdown ファイル&lt;/td&gt;
          &lt;td&gt;Google アカウント活動、保存情報、接続アプリデータ&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;透明性&lt;/td&gt;
          &lt;td&gt;Memory sources で一部の出所が見える&lt;/td&gt;
          &lt;td&gt;Markdown ファイルを直接表示・編集できる&lt;/td&gt;
          &lt;td&gt;ソース表示、Gemini Apps Activity、Google 設定で管理&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;プロジェクト横断&lt;/td&gt;
          &lt;td&gt;強い。ユーザーアカウントに追従&lt;/td&gt;
          &lt;td&gt;弱い。主にプロジェクトまたはローカル project memory に追従&lt;/td&gt;
          &lt;td&gt;強い。Google 資料と権限に依存&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;チーム共有&lt;/td&gt;
          &lt;td&gt;直接共有には不向き&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; を Git で共有可能&lt;/td&gt;
          &lt;td&gt;主に Workspace と権限体系に依存&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;得意領域&lt;/td&gt;
          &lt;td&gt;個人の好みと長期アシスタント&lt;/td&gt;
          &lt;td&gt;長期コードプロジェクトと agent 協作&lt;/td&gt;
          &lt;td&gt;Google Workspace 資料検索とクロスツール作業&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;どう選びどう使うか&#34;&gt;どう選び、どう使うか
&lt;/h2&gt;&lt;p&gt;AI に「自分は誰か、どんなスタイルが好きか、普段どう働くか」を覚えさせたいなら、ChatGPT の記憶が向いている。&lt;/p&gt;
&lt;p&gt;文章スタイル、よく使う技術スタック、回答形式、職業背景、長期プロジェクトの方向といった個人の好みを保存するのに適している。重点は自己紹介コストを下げ、新しい会話を素早く始めることだ。&lt;/p&gt;
&lt;p&gt;AI に「このコードベースをどう変えるか、どのコマンドが動くか、どの罠を避けるか」を覚えさせたいなら、Claude Code が向いている。&lt;/p&gt;
&lt;p&gt;安定したルールは &lt;code&gt;CLAUDE.md&lt;/code&gt; に書いてチーム共有する。動的な経験は Auto Memory に補助させる。重要な意思決定はローカル自動記憶にだけ残さず、文書や &lt;code&gt;CLAUDE.md&lt;/code&gt; に整理するのがよい。&lt;/p&gt;
&lt;p&gt;資料の多くが Gmail、Drive、Docs、Sheets にあるなら、Gemini のエコシステム文脈が有利だ。&lt;/p&gt;
&lt;p&gt;過去メールの検索、Google Drive 文書の整理、カレンダーやオフィス資料との連携に向いている。Gemini を使うポイントは、チャット内で何度も思い出させることではなく、関連アプリの接続、権限、アクティビティ設定を正しくしておくことだ。&lt;/p&gt;
&lt;h2 id=&#34;実用的な分担&#34;&gt;実用的な分担
&lt;/h2&gt;&lt;p&gt;3者は次のように分担できる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT は「自分の一般的な好み」を覚える。&lt;/li&gt;
&lt;li&gt;Claude Code は「このリポジトリのエンジニアリング知識」を覚える。&lt;/li&gt;
&lt;li&gt;Gemini は「Google エコシステム内の資料」を検索する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、ChatGPT は個人秘書、Claude Code はプロジェクト内のシニアエンジニア、Gemini は Google アカウント内の資料インデクサーに近い。&lt;/p&gt;
&lt;p&gt;この3種類の記憶に絶対的な優劣はない。目的が違うだけだ。&lt;/p&gt;
&lt;p&gt;最も注意すべきなのは混同することだ。個人の好みは必ずしもプロジェクト記憶に書くべきではない。プロジェクトアーキテクチャは必ずしもクラウド上の個人記憶に保存すべきではない。Google エコシステム検索は、モデルがあなたを長期的に本当に理解したことと同じではない。&lt;/p&gt;
&lt;h2 id=&#34;短い判断&#34;&gt;短い判断
&lt;/h2&gt;&lt;p&gt;AI 記憶の次の段階は、単に「多く覚える」ことではない。記憶は階層化され、見えるようになり、制御可能である必要がある。&lt;/p&gt;
&lt;p&gt;ChatGPT の重点は会話をまたいだ個人化、Claude Code の重点はコードプロジェクトの継続性、Gemini の重点は Google エコシステム文脈だ。本当に使いやすい長期 AI 協作は、すべての情報を一つのブラックボックスに詰め込むのではなく、異なる種類の記憶を適切な場所に置く。&lt;/p&gt;
&lt;p&gt;個人の好みは個人記憶に、エンジニアリングルールはコードベースに、過去資料は元の文書やメールシステムに置く。AI がすべきことは、必要なときに正確にそれらの文脈を呼び出すことであり、すべてを一つに混ぜることではない。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;OpenAI Memory FAQ：&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/8590148-memory-faq&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/8590148-memory-faq&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ChatGPT Release Notes：&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Claude Code Memory：&lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/memory&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://code.claude.com/docs/en/memory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Gemini Saved info：&lt;a class=&#34;link&#34; href=&#34;https://support.google.com/gemini/answer/15637730&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://support.google.com/gemini/answer/15637730&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Gemini Apps Privacy Hub：&lt;a class=&#34;link&#34; href=&#34;https://support.google.com/gemini/answer/13594961&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://support.google.com/gemini/answer/13594961&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>ChatGPT Release Notes 更新：記憶ソース、GPT-5.5 Instant、表計算アドイン</title>
        <link>https://knightli.com/ja/2026/05/07/chatgpt-release-notes-memory-gpt-5-5-sheets/</link>
        <pubDate>Thu, 07 May 2026 14:30:15 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/07/chatgpt-release-notes-memory-gpt-5-5-sheets/</guid>
        <description>&lt;p&gt;OpenAI の &lt;code&gt;ChatGPT Release Notes&lt;/code&gt; ページは 2026 年 5 月初めに更新された。最新の主な内容は3つある。ChatGPT の記憶ソースとパーソナライズ能力の強化、&lt;code&gt;GPT-5.5 Instant&lt;/code&gt; の新デフォルトモデル化、そして ChatGPT for Excel と Google Sheets のグローバル提供だ。&lt;/p&gt;
&lt;p&gt;これらを合わせて見ると、方向は明確だ。ChatGPT は単なるチャット入口から、より継続的で、より個人化され、オフィス作業に近いワークアシスタントへ進んでいる。&lt;/p&gt;
&lt;h2 id=&#34;memory-sourcesパーソナライズをより透明に&#34;&gt;Memory sources：パーソナライズをより透明に
&lt;/h2&gt;&lt;p&gt;最新更新で最も注目すべきなのは &lt;code&gt;memory sources&lt;/code&gt; だ。&lt;/p&gt;
&lt;p&gt;OpenAI は、ChatGPT Plus と Pro ユーザーに対して記憶機能の改善を展開し始めるとしている。ChatGPT は過去のチャット、保存された記憶、利用可能なファイル、接続済み Gmail アプリから関連文脈をよりうまく取り出し、ユーザーに合ったアイデア、提案、次の行動を出せるようになる。&lt;/p&gt;
&lt;p&gt;これにより、ユーザーは新しい会話のたびにプロジェクト背景、好み、作業習慣、既存資料を繰り返し説明する必要が減る。長期的な執筆、プロジェクト計画、資料整理、学習、チーム作業では、継続性が強くなる。&lt;/p&gt;
&lt;p&gt;ただし、パーソナライズが強くなるほど透明性は重要になる。そのため OpenAI は memory sources を導入し、どの情報が回答のパーソナライズに使われたかをユーザーが確認できるようにする。回答下の Sources アイコンを押すと、関連する保存記憶、過去のチャット、カスタム指示を確認できる。Plus と Pro ユーザーは、ライブラリ内のファイルや、接続済み Gmail から参照されたメールも見る場合がある。&lt;/p&gt;
&lt;p&gt;情報が古い、不関連、または誤っている場合、ユーザーは修正、削除、または不関連としてマークできる。&lt;/p&gt;
&lt;h2 id=&#34;記憶の制御は依然として重要&#34;&gt;記憶の制御は依然として重要
&lt;/h2&gt;&lt;p&gt;OpenAI は、memory sources が回答に影響したすべての要因を表示するとは限らず、今後もこのビューを改善すると説明している。&lt;/p&gt;
&lt;p&gt;これは重要な注意点だ。memory sources は完全な「モデル思考ログ」ではない。個人化の文脈を理解するためのプロダクトインターフェースだ。可視性は高めるが、すべての影響要因を完全に展開するものではない。&lt;/p&gt;
&lt;p&gt;プライバシーと制御について、OpenAI は memory sources がユーザー自身のアカウント体験内にのみ表示されると述べている。チャットを共有しても、関連 sources は共有チャットに表示されない。ユーザーはチャットを削除したり、記憶を使わず更新もせず履歴にも残らない Temporary Chat を使ったり、記憶をオフにしたり、アプリ接続をいつでも解除したり、自分のコンテンツがモデル改善に使われるかを管理できる。&lt;/p&gt;
&lt;p&gt;これは、ChatGPT のパーソナライズがより明確な道筋を取っていることを示している。ユーザーをより理解する一方で、なぜそう答えたのかを知らせ、管理入口も残すという方向だ。&lt;/p&gt;
&lt;h2 id=&#34;gpt-55-instant-がデフォルトモデルに&#34;&gt;GPT-5.5 Instant がデフォルトモデルに
&lt;/h2&gt;&lt;p&gt;Release Notes は、&lt;code&gt;GPT-5.5 Instant&lt;/code&gt; が ChatGPT の新しいデフォルトモデルとして展開され、すべてのユーザー向けの &lt;code&gt;GPT-5.3 Instant&lt;/code&gt; を置き換えることも確認している。&lt;/p&gt;
&lt;p&gt;今回のデフォルトモデル更新では、主に次の点が改善される。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;正確性。&lt;/li&gt;
&lt;li&gt;明確さと簡潔さ。&lt;/li&gt;
&lt;li&gt;画像理解。&lt;/li&gt;
&lt;li&gt;STEM 質問への回答。&lt;/li&gt;
&lt;li&gt;いつ web search が必要かの判断。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenAI は、GPT-5.5 Instant が特に正確性が重要なプロンプトでより事実に強いと強調している。また、より引き締まった直接的な回答を出し、不要な追問を減らし、過度なフォーマットや装飾的な内容による散らかりを減らす。&lt;/p&gt;
&lt;p&gt;ユーザーにとって、これは新しいボタンほど目立たないかもしれない。しかし毎日 ChatGPT を開くときの体感には効く。回答が遠回りせず、冗長さが減り、簡単な質問に過剰な形式を積み上げにくくなる。&lt;/p&gt;
&lt;h2 id=&#34;パーソナライズとデフォルトモデルがつながる&#34;&gt;パーソナライズとデフォルトモデルがつながる
&lt;/h2&gt;&lt;p&gt;Web 版の Plus と Pro ユーザーに対して、GPT-5.5 Instant は過去のチャット、ファイル、接続済み Gmail の文脈をより効果的に使える。&lt;/p&gt;
&lt;p&gt;これは memory sources と同じプロダクトラインにある。モデルは単に「賢い」だけではなく、適切な場面で、ユーザーが以前に何をしていたか、何を気にしているか、どんな資料をすでに提供したかを理解する必要がある。プロジェクトの継続、計画作成、メール情報の整理、過去の好みに基づく提案では、ChatGPT は重複した質問を減らせる。&lt;/p&gt;
&lt;p&gt;有料ユーザーは GPT-5.3 Instant をモデル設定から3か月間使い続けられ、その後このモデルは退役する。&lt;/p&gt;
&lt;h2 id=&#34;chatgpt-for-excel-と-google-sheets&#34;&gt;ChatGPT for Excel と Google Sheets
&lt;/h2&gt;&lt;p&gt;もう一つの重要な更新は、ChatGPT for Excel と Google Sheets のグローバル提供だ。&lt;/p&gt;
&lt;p&gt;これは Microsoft Excel と Google Sheets のサイドバーに ChatGPT を入れ、ユーザーが表計算内で直接データを作成、更新、理解できるようにする。OpenAI が挙げるシーンは次の通りだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;トラッカー。&lt;/li&gt;
&lt;li&gt;予算。&lt;/li&gt;
&lt;li&gt;数式。&lt;/li&gt;
&lt;li&gt;複数シートのファイル。&lt;/li&gt;
&lt;li&gt;シナリオ作業。&lt;/li&gt;
&lt;li&gt;スプレッドシートの整理。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;利用可能な条件では、Skills と apps もサポートする。&lt;/p&gt;
&lt;p&gt;この機能の意味は分かりやすい。多くのオフィスデータは専用 BI システムではなく、Excel と Google Sheets にある。ChatGPT を表計算のサイドバーに置くことは、チャット画面へコピー＆ペーストさせるより自然で、実際のワークフローに入りやすい。&lt;/p&gt;
&lt;h2 id=&#34;利用制限とインストール方法&#34;&gt;利用制限とインストール方法
&lt;/h2&gt;&lt;p&gt;Release Notes によると、Free と Go には限定的な利用量が含まれる。Plus と Pro は Codex と同じ agentic usage limits を使う。プラン上限を超える場合、追加 credits を購入できる。&lt;/p&gt;
&lt;p&gt;インストール方法も直接的だ。Excel 版は Microsoft Marketplace から、Google Sheets 版は Google Workspace Marketplace からインストールし、対象となる ChatGPT アカウントでログインする。&lt;/p&gt;
&lt;p&gt;OpenAI は、数式や分析に依存する前に出力を確認するよう促している。これは重要だ。AI は表計算作業を速くできるが、数式、予算、財務、業務分析は依然として人間の確認が必要だ。&lt;/p&gt;
&lt;h2 id=&#34;最近の更新の流れ&#34;&gt;最近の更新の流れ
&lt;/h2&gt;&lt;p&gt;4月末から5月初めの release notes をまとめて見ると、ChatGPT の方向がよりはっきりする。&lt;/p&gt;
&lt;p&gt;4月30日、OpenAI は Advanced Account Security を公開し、個人の ChatGPT アカウント向けに、passkeys、セキュリティキー、リカバリキー、短いセッション、ログイン通知を含むより強いサインイン要件と保護を提供した。&lt;/p&gt;
&lt;p&gt;4月28日、モデル選択は入力欄の近くへ移動し、送信前にモデルを選びやすくなった。Thinking と Pro モデルの thinking effort 設定もモデルピッカーに入った。&lt;/p&gt;
&lt;p&gt;4月22日、ChatGPT は Fast answers を導入した。これはパーソナライズが不要で、モデルが高信頼の答えを持つ一般的な情報検索に使われる。Fast answers は過去のチャットや記憶を参照せず、ユーザーはパーソナライズ設定でオフにできる。&lt;/p&gt;
&lt;p&gt;これらの更新は同じ目標を持つ。ChatGPT を日常の高頻度利用により適したものにすることだ。速いべきときは速く、個人化すべきときは個人化し、安全保護と可視制御が必要なときは入口を用意する。&lt;/p&gt;
&lt;h2 id=&#34;短い判断&#34;&gt;短い判断
&lt;/h2&gt;&lt;p&gt;今回の ChatGPT Release Notes の焦点は、単一の機能ではなく、プロダクト形態がさらに整えられていることだ。&lt;/p&gt;
&lt;p&gt;GPT-5.5 Instant はデフォルト回答品質を高める。memory sources はパーソナライズを見えるようにする。Excel と Google Sheets のアドインは ChatGPT をオフィスの表計算に入れる。Advanced Account Security とモデル選択の変更は、アカウント保護と操作体験を補強する。&lt;/p&gt;
&lt;p&gt;ChatGPT はより長期的な作業レイヤーになりつつある。より多くの文脈を覚え、より多くのツールに入り、より多くの日常タスクを担う。次に見るべきなのは、パーソナライズの透明性が十分に分かりやすいか、オフィスアドインが実際の複雑な表計算で安定するか、そしてユーザーが便利さと制御のバランスを保てるかだ。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;ChatGPT Release Notes：&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Grok Imagine Quality Mode API：xAI は画像生成を企業ワークフローへ押し込もうとしている</title>
        <link>https://knightli.com/ja/2026/05/07/grok-imagine-quality-mode-api/</link>
        <pubDate>Thu, 07 May 2026 14:27:29 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/07/grok-imagine-quality-mode-api/</guid>
        <description>&lt;p&gt;xAI は 2026 年 5 月 6 日、&lt;code&gt;Grok Imagine Quality Mode API&lt;/code&gt; を公開した。これは Grok Imagine の画像生成・編集向け品質モードで、企業開発者とチーム向けに提供され、より高いリアリズム、強い文字描画、より良いクリエイティブ制御を重視している。&lt;/p&gt;
&lt;p&gt;今回の更新のポイントは、普通の text-to-image 入り口をもう一つ作ることではない。Grok Imagine を企業のコンテンツ制作ワークフローに入れることだ。商品画像、マーケティング素材、広告バリエーション、UGC 風コンテンツ、ブランドビジュアル、動画生成がその対象に含まれる。&lt;/p&gt;
&lt;h2 id=&#34;quality-mode-が提供するもの&#34;&gt;Quality Mode が提供するもの
&lt;/h2&gt;&lt;p&gt;xAI の Quality Mode に対する位置づけは明確だ。よりリアルで、文字に強く、プロンプトにより忠実であること。&lt;/p&gt;
&lt;p&gt;第一に、リアリズムが向上している。公式例では自然な肌、素材の細部、光、場面の空気感、写真らしい質感が強調されている。これは商用画像では重要だ。多くの画像モデルはすでに「きれい」に見えるが、広告、商品ページ、SNS素材に入れると、肌、服の質感、手、空間関係、光の不自然さが露出しやすい。&lt;/p&gt;
&lt;p&gt;第二に、文字描画が強化されている。xAI は Quality Mode がよりクリーンな多言語テキスト能力を持つと説明している。画像モデルが文字を安定して生成できるかどうかは、商用化の大きな壁だ。メニュー、ポスター、パッケージ、広告、ボタン、看板、SNS画像では、文字が一文字でも間違うとそのまま使いにくい。&lt;/p&gt;
&lt;p&gt;第三に、クリエイティブ制御だ。公式説明には、より厳密なプロンプト追従、深いシーン理解と世界理解、一貫したブランド結果が含まれている。つまり Quality Mode が解こうとしているのは、「見栄えのよい画像を作る」ことだけではなく、「チームの要求どおりに、制御可能で再利用でき、反復できる画像を作る」ことだ。&lt;/p&gt;
&lt;h2 id=&#34;個人の遊びではなく企業向け&#34;&gt;個人の遊びではなく企業向け
&lt;/h2&gt;&lt;p&gt;今回の発表では、xAI は企業ユースケースをかなり前面に出している。&lt;/p&gt;
&lt;p&gt;典型例は、商品ビジュアライゼーションとマーケティング素材だ。企業は写実的な商品レンダー、ヒーロー画像、SNS素材、アイコン、広告バリエーションを生成できる。個人ユーザーが気軽に1枚作るのとは異なり、企業は主に3つの点を気にする。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;商業写真や高品質レンダーに近いほど十分にリアルか。&lt;/li&gt;
&lt;li&gt;色、構図、文字位置、視覚トーンを含めてブランドスタイルを守れるか。&lt;/li&gt;
&lt;li&gt;A/Bテスト、キャンペーン素材、複数チャネル配信用に大量のバリエーションを作れるか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Quality Mode の価値はここにある。デザイナーを置き換えるのではなく、「まず十数案出して方向を見る」作業を短縮する。チームは API で候補を生成し、デザイン、マーケティング、ブランド担当者が選定、修正、実装できる。&lt;/p&gt;
&lt;h2 id=&#34;text-to-image-より画像編集が重要&#34;&gt;text-to-image より画像編集が重要
&lt;/h2&gt;&lt;p&gt;発表ではゼロからの画像生成だけでなく、参照画像をもとに編集を続ける流れも示されている。例えば商品をパンフレットに置く、Tシャツの柄を維持する、同じ人物を異なる UGC シーンに登場させる、といった例だ。&lt;/p&gt;
&lt;p&gt;これは企業にとってより有用だ。実際の業務では、素材は無から始まることは少ない。すでに商品写真、ブランドガイドライン、人物参照、パッケージデザイン、キャンペーンテーマがある。AI ツールがランダムにきれいな画像を出すだけなら価値は限られる。既存素材を軸に安定したバリエーションを作れるなら、ワークフローに入りやすい。&lt;/p&gt;
&lt;p&gt;これも画像生成モデル競争の方向だ。「プロンプトのくじ引き」から「制御可能な編集」へ。ユーザーが求めているのは驚きだけでなく、予測可能な修正結果だ。&lt;/p&gt;
&lt;h2 id=&#34;ugc-風コンテンツの商業的意味&#34;&gt;UGC 風コンテンツの商業的意味
&lt;/h2&gt;&lt;p&gt;xAI は UGC 風コンテンツも示している。例えば、同じ人物に指定した Tシャツを着せる、誕生日ケーキを食べさせる、エレベーターで自撮りさせるといった例だ。&lt;/p&gt;
&lt;p&gt;これは広告とSNSコンテンツ制作の変化に対応している。多くのブランドは、きれいに仕上げたスタジオ写真だけでなく、より自然で、実際のユーザー投稿のように見えるコンテンツも必要としている。UGC 風素材は、ショート動画のサムネイル、フィード広告、SNS投稿、クリエイターコラボのプレビューに向いている。&lt;/p&gt;
&lt;p&gt;もちろん、この能力は肖像権、ブランド権利、コンテンツ表示をより明確に扱う必要があることも意味する。AI は制作のハードルを下げるが、素材利用のリスクを自動で消すわけではない。実在人物に似た表現、商品ロゴ、広告配信が関わる場合、コンプライアンスは事前に設計する必要がある。&lt;/p&gt;
&lt;h2 id=&#34;文字世界理解視覚レンジ&#34;&gt;文字、世界理解、視覚レンジ
&lt;/h2&gt;&lt;p&gt;Quality Mode は世界理解と幅広い視覚スタイルも強調している。&lt;/p&gt;
&lt;p&gt;公式例には、ケーキの上にアレクサンドロス大王を説明する文字を入れるもの、映画的なピクニックシーン、UI 風アイコンなどがある。これらは xAI が Grok Imagine を単一の美学に閉じ込めず、写実写真、商業広告、商品レンダー、アイコン、ポスター、動画生成の前段画像までカバーしたいことを示している。&lt;/p&gt;
&lt;p&gt;特に注目したいのは、文字と世界理解の組み合わせだ。多くの画像タスクは単に物体を描くことではない。場面内の関係、用途、歴史的事実、文字の意味、視覚表現を理解する必要がある。モデルがこうした制約を理解できるほど、娯楽ツールから生産ツールへ近づく。&lt;/p&gt;
&lt;h2 id=&#34;quality-mode-は動画生成も強化する&#34;&gt;Quality Mode は動画生成も強化する
&lt;/h2&gt;&lt;p&gt;xAI は、最新画像モデルと動画能力を組み合わせることで、SNS動画素材、商品紹介、広告などに使えると述べている。&lt;/p&gt;
&lt;p&gt;これは現在のマルチモーダル製品の流れに合っている。画像生成はもはや孤立した能力ではなく、動画生成、広告クリエイティブ、商品デモ、SNSコンテンツのパイプラインの一部になる。企業はまず高品質な商品画像を生成し、それを短い動画、モーション広告、複数バージョンの素材へ広げるかもしれない。&lt;/p&gt;
&lt;p&gt;この観点では、Quality Mode の意味は「画像がより鮮明」だけではない。後続の動画やマーケティング自動化に向けて、より安定した視覚的起点を提供することにある。&lt;/p&gt;
&lt;h2 id=&#34;開発者の呼び出し方法&#34;&gt;開発者の呼び出し方法
&lt;/h2&gt;&lt;p&gt;公式の呼び出し例はシンプルで、&lt;code&gt;xai_sdk&lt;/code&gt; を使って &lt;code&gt;grok-imagine-image-quality&lt;/code&gt; モデルを呼び出す。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;xai_sdk&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;xai_sdk&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sample&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;prompt&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;A collage of London landmarks in a stenciled street-art style&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;grok-imagine-image-quality&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは Quality Mode が Grok のフロントエンド内だけの機能ではなく、API を通じて企業開発者とチームに開放されていることを示している。企業にとって API 形式は重要だ。社内素材システム、広告プラットフォーム、CMS、デザインツール、自動化フローに接続できるからだ。&lt;/p&gt;
&lt;h2 id=&#34;短い判断&#34;&gt;短い判断
&lt;/h2&gt;&lt;p&gt;Grok Imagine Quality Mode API の中核は、画像生成を「楽しい」から「企業制作に使える」へ進めることだ。&lt;/p&gt;
&lt;p&gt;リアリズム、文字描画、プロンプト追従、ブランド一貫性、画像編集、UGC スタイル、動画生成との連携を強調している。どれも、チームが視覚素材を大量に、安定して、制御しながら制作するという目標に向かっている。&lt;/p&gt;
&lt;p&gt;次に本当に見るべきなのは、単体の画像がどれだけ驚くほどよいかではない。複雑な場面で文字描画が安定するか、参照画像編集で人物やブランドの一貫性を保てるか、大規模生成時の API の速度、コスト、制御性が十分かだ。これらが成立して初めて、Grok Imagine は企業コンテンツ制作パイプラインに本格的に入れる。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;xAI 発表：&lt;a class=&#34;link&#34; href=&#34;https://x.ai/news/grok-imagine-quality-mode&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://x.ai/news/grok-imagine-quality-mode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;API ドキュメント：&lt;a class=&#34;link&#34; href=&#34;https://docs.x.ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.x.ai&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>DeepSeek V4 FlashでGodotゲームDemo：数セントでどこまで動くのか</title>
        <link>https://knightli.com/ja/2026/05/06/deepseek-v4-flash-godot-game-demo/</link>
        <pubDate>Wed, 06 May 2026 09:22:18 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/06/deepseek-v4-flash-godot-game-demo/</guid>
        <description>&lt;p&gt;&lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; をGodotゲームDemoの開発に使うと、どこまでできるのか。&lt;/p&gt;
&lt;p&gt;焦点ははっきりしている。実行でき、観察でき、物理効果を備えた小さなGodot Demoを作れるのかという点だ。&lt;/p&gt;
&lt;p&gt;結論から言えば、動く。商用レベルの品質ではないが、ゲームプレイのプロトタイプや物理インタラクションDemoとしては十分に使える。さらに重要なのは、コストが非常に低く、アイデアの素早い検証に向いていることだ。&lt;/p&gt;
&lt;h2 id=&#34;demoの表現&#34;&gt;Demoの表現
&lt;/h2&gt;&lt;p&gt;このDemoの中心は物理インタラクションだ。&lt;/p&gt;
&lt;p&gt;直感的に確認できる効果は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ロープを切断できる。&lt;/li&gt;
&lt;li&gt;箱が地面に落ちる。&lt;/li&gt;
&lt;li&gt;質量を大きくすると、箱の衝突がより激しくなる。&lt;/li&gt;
&lt;li&gt;ロープには比較的はっきりした弾性がある。&lt;/li&gt;
&lt;li&gt;摩擦と弾性を調整すると、箱に明確な滑りや反発が出る。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;見た目の挙動からすると、これは単に「Godotスクリプトを数本生成した」だけではない。実行でき、物理挙動を観察できる小型プロトタイプになっている。&lt;/p&gt;
&lt;h2 id=&#34;使える度合い&#34;&gt;使える度合い
&lt;/h2&gt;&lt;p&gt;このDemoの価値は「動く、見られる、直せる」ことにある。完全なゲームでも、そのまま商用化できるプロジェクトでもないが、いくつかの点は示している。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; はGodot Demoの基本目標を理解できる。&lt;/li&gt;
&lt;li&gt;AI Agentは要求を実行可能なプロジェクトに変換できる。&lt;/li&gt;
&lt;li&gt;Godotの物理インタラクションのような非Web系タスクも、低コストなプロトタイプ段階に入っている。&lt;/li&gt;
&lt;li&gt;個人開発者にとって、アイデアを素早く「見えるもの」に変えられる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;正式なゲームを作るにはもちろん不十分だ。しかし「この遊びは面白いのか」「物理効果はだいたい作れるのか」を検証する目的なら、このDemoはすでに使える。&lt;/p&gt;
&lt;h2 id=&#34;コスト面の意味&#34;&gt;コスト面の意味
&lt;/h2&gt;&lt;p&gt;注目すべきなのは、画面がどれだけ精緻かではなく、コストだ。&lt;/p&gt;
&lt;p&gt;Godotの物理Demoが数セント程度のモデルコストで実行可能な形になるなら、その意味はプロのゲーム開発を置き換えることではない。プロトタイプの試行錯誤コストを大きく下げることにある。&lt;/p&gt;
&lt;p&gt;以前なら、小さなゲームアイデアを検証するだけでも、Godotを理解し、スクリプトを書き、シーンを組み、物理パラメータを調整する必要があった。いまはAI Agentに実行可能な版をまず作らせ、人間が方向性を判断できる。&lt;/p&gt;
&lt;p&gt;インディー開発者にとって、この種の低コストな試行は役に立つ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ゲームプレイのコンセプトを素早く検証する。&lt;/li&gt;
&lt;li&gt;他人に見せる一時的なDemoを生成する。&lt;/li&gt;
&lt;li&gt;Godot APIや物理システムを探索する。&lt;/li&gt;
&lt;li&gt;アイデアを実行可能な初版プロジェクトに変える。&lt;/li&gt;
&lt;li&gt;方向性が固まる前の手書きコードコストを減らす。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;deepseek-v4-flashの表現&#34;&gt;DeepSeek V4 Flashの表現
&lt;/h2&gt;&lt;p&gt;注目したいのは、使っているのが &lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; であり、より高価で重いフラッグシップモデルではない点だ。&lt;/p&gt;
&lt;p&gt;低コストなプロトタイプという位置づけでは、十分よく機能している。最強でも、最も安定しているわけでも、プロダクション工程の納品に最適なモデルでもないが、予算に敏感で、方向性を素早く試したい場面では魅力がある。&lt;/p&gt;
&lt;h2 id=&#34;向いている場面&#34;&gt;向いている場面
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;DeepSeek V4 Flash + Agent + Godot&lt;/code&gt; がより向いているのは、次のようなタスクだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;小規模なゲームプレイプロトタイプ。&lt;/li&gt;
&lt;li&gt;物理効果Demo。&lt;/li&gt;
&lt;li&gt;UIまたはインタラクションのコンセプト検証。&lt;/li&gt;
&lt;li&gt;教材用サンプル。&lt;/li&gt;
&lt;li&gt;Godotプロジェクト構造の理解補助。&lt;/li&gt;
&lt;li&gt;実行可能な初版プロジェクトの生成。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一方で、次のようなタスクを直接任せるのには向いていない。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;大規模なゲームアーキテクチャ。&lt;/li&gt;
&lt;li&gt;複雑なキャラクターコントローラー。&lt;/li&gt;
&lt;li&gt;ネットワーク同期。&lt;/li&gt;
&lt;li&gt;商用プロジェクトの中核コード。&lt;/li&gt;
&lt;li&gt;高精度な物理シミュレーション。&lt;/li&gt;
&lt;li&gt;人間のテストを経ない自動コミット。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;言い換えれば、第一稿や実験場には向いているが、プロダクション工程の責任者には向いていない。&lt;/p&gt;
&lt;h2 id=&#34;何を示しているのか&#34;&gt;何を示しているのか
&lt;/h2&gt;&lt;p&gt;これは、AIコーディングがWeb、スクリプト、バックエンドAPIから、ゲーム開発やインタラクティブプロトタイピングへ広がり続けていることを示している。&lt;/p&gt;
&lt;p&gt;かつてゲーム開発の参入障壁は高かった。特にエンジン、スクリプト、アセット管理、物理システムが絡み合うと、初心者は詰まりやすい。いまはモデルとAgentツールで先にプロジェクトを組み立て、開発者はゲーム性の判断や効果の調整に集中しやすくなっている。&lt;/p&gt;
&lt;p&gt;この変化は、主に三つの影響をもたらす可能性がある。&lt;/p&gt;
&lt;p&gt;第一に、ゲームプロトタイプが安くなる。多くのアイデアは完全開発まで待たずに、まず実行可能なDemoとして検証できる。&lt;/p&gt;
&lt;p&gt;第二に、インディー開発者がより試しやすくなる。Godotを知らない人でも、AIの助けでプロジェクト構造と基本フローに触れられる。&lt;/p&gt;
&lt;p&gt;第三に、モデルの安定性がより重要になる。ゲーム開発はコードが動くだけでは足りない。効果が自然で、操作感がまともで、パラメータを制御できる必要がある。今後、実際の画面や実行状態とよりうまく結びつけられるモデルほど、この種のタスクに向く。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 FlashでGodot Demoを作ることは、一言で言えばこうだ。&lt;strong&gt;完璧ではないが、十分安く、十分速く、プロトタイプには十分向いている。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;商用ゲームにはまだ遠いが、非常に低いコストで小さなゲームアイデアを検証する目的なら、すでに価値がある。&lt;/p&gt;
&lt;p&gt;個人開発者にとって現実的な使い方は、ゲーム全体をAIに任せることではない。まずAIに動く工程を出させ、その後の判断、取捨選択、磨き込みを人間が担当することだ。この使い方なら、DeepSeek V4 Flashのような低コストモデルはかなり魅力的になる。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>CC Switch：Claude Code、Codex、Gemini CLI、OpenClawを一元管理するデスクトップツール</title>
        <link>https://knightli.com/ja/2026/05/06/cc-switch-ai-cli-manager/</link>
        <pubDate>Wed, 06 May 2026 09:03:08 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/06/cc-switch-ai-cli-manager/</guid>
        <description>&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; は、AIコーディングを日常的に深く使うユーザー向けのデスクトップ管理ツールだ。解決しようとしている問題ははっきりしている。いま多くの人が &lt;code&gt;Claude Code&lt;/code&gt;、&lt;code&gt;Codex&lt;/code&gt;、&lt;code&gt;Gemini CLI&lt;/code&gt;、&lt;code&gt;OpenCode&lt;/code&gt;、&lt;code&gt;OpenClaw&lt;/code&gt; を同時に使っているが、それぞれ設定形式、Providerの書き方、MCP設定、Skills管理の方法が違う。&lt;/p&gt;
&lt;p&gt;1つのツールだけを使うなら、手作業で設定を変えるのもまだ我慢できる。しかし複数のツールを混在させ、そこに公式アカウント、サードパーティAPI、リレーサービス、ローカルモデル、チーム共有設定まで加わると、JSON、TOML、&lt;code&gt;.env&lt;/code&gt; を手で編集する作業はすぐに面倒になる。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; の位置づけは、こうした分散した設定を1つのクロスプラットフォームなデスクトップアプリに集約することだ。&lt;/p&gt;
&lt;h2 id=&#34;何を解決するのか&#34;&gt;何を解決するのか
&lt;/h2&gt;&lt;p&gt;現代のAIコーディングツールは、「コマンドラインの中にいる開発仲間」のようになりつつある。ただし、各ツールのエコシステムはまだ完全には統一されていない。&lt;/p&gt;
&lt;p&gt;よくある課題は次の通りだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code、Codex、Gemini CLI、OpenCode、OpenClawで設定形式が異なる。&lt;/li&gt;
&lt;li&gt;API Providerを切り替えるたびに、設定ファイルを何度も変更する必要がある。&lt;/li&gt;
&lt;li&gt;MCP serverを複数ツールで重複して設定しがちになる。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;、&lt;code&gt;AGENTS.md&lt;/code&gt;、&lt;code&gt;GEMINI.md&lt;/code&gt; のようなプロンプトファイルを統一して保守しにくい。&lt;/li&gt;
&lt;li&gt;Skillsのインストール、同期、バックアップ、削除に集中管理の入口がない。&lt;/li&gt;
&lt;li&gt;複数アカウント、複数relay、複数モデルサービスの切り替えが混乱しやすい。&lt;/li&gt;
&lt;li&gt;設定ファイルを手作業で壊した場合、原因調査のコストが高い。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; の考え方は、ユーザーに各ツールの設定細部を覚えさせるのではなく、Provider、MCP、Prompts、Skills、Sessions、プロキシを1つの統一画面で管理するというものだ。&lt;/p&gt;
&lt;h2 id=&#34;対応ツール&#34;&gt;対応ツール
&lt;/h2&gt;&lt;p&gt;READMEに挙げられている主な対応対象は5種類ある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Claude Code&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Codex&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Gemini CLI&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OpenCode&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OpenClaw&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらのツールは、AIコーディング、Agentワークフロー、コマンドライン上の協働という点で近い位置づけにある。ただし設定体系は異なっており、&lt;code&gt;CC Switch&lt;/code&gt; の価値はその違いを包み込むところにある。&lt;/p&gt;
&lt;p&gt;複数のAIコーディングツールをよく比較する人にとっては、毎回設定ファイルを手で開くよりかなり楽になる。&lt;/p&gt;
&lt;h2 id=&#34;provider管理&#34;&gt;Provider管理
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; の第一の機能はProvider管理だ。&lt;/p&gt;
&lt;p&gt;50以上のProviderプリセットを内蔵しており、READMEではAWS Bedrock、NVIDIA NIM、各種コミュニティrelayなどが挙げられている。ユーザーはAPI keyをコピーしてワンクリックでインポートし、画面上で切り替えられる。&lt;/p&gt;
&lt;p&gt;実用的なポイントは次の通りだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Providerをワンクリックで追加できる。&lt;/li&gt;
&lt;li&gt;Providerをドラッグで並べ替えられる。&lt;/li&gt;
&lt;li&gt;システムトレイから素早く切り替えられる。&lt;/li&gt;
&lt;li&gt;Providerのインポートとエクスポートに対応する。&lt;/li&gt;
&lt;li&gt;一部の共通Providerは複数アプリへ同期できる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;多くの人にとって、この機能だけでも十分に魅力がある。AIコーディングツールの日常利用で問題になるのは、「モデルを使えない」ことではなく、「今日このkeyをどのツール、どのendpoint、どのアカウントで使うのか」が混乱することだからだ。&lt;/p&gt;
&lt;h2 id=&#34;ローカルプロキシとフェイルオーバー&#34;&gt;ローカルプロキシとフェイルオーバー
&lt;/h2&gt;&lt;p&gt;設定ファイルを書き換えるだけでなく、&lt;code&gt;CC Switch&lt;/code&gt; はローカルプロキシモードも提供する。&lt;/p&gt;
&lt;p&gt;この機能の要点は次の通りだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Providerのホットスイッチ。&lt;/li&gt;
&lt;li&gt;フォーマット変換。&lt;/li&gt;
&lt;li&gt;自動フェイルオーバー。&lt;/li&gt;
&lt;li&gt;サーキットブレーカー。&lt;/li&gt;
&lt;li&gt;Providerのヘルスチェック。&lt;/li&gt;
&lt;li&gt;リクエスト補正。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;簡単に言えば、対象ツールに設定を書き込むだけでなく、間にローカルプロキシ層を挟み、異なるツールがそのプロキシ経由でモデルサービスにアクセスできるようにする。&lt;/p&gt;
&lt;p&gt;これは複数Providerを使うユーザーにとって便利だ。あるサービスが落ちたら別のものへ切り替える。あるモデルが高ければ安いものに変える。リクエスト形式が合わない場合も、プロキシ層で適配できる。&lt;/p&gt;
&lt;h2 id=&#34;mcppromptsskills&#34;&gt;MCP、Prompts、Skills
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; の重要な第二層の機能は、MCP、Prompts、Skillsの一元管理だ。&lt;/p&gt;
&lt;h3 id=&#34;mcp&#34;&gt;MCP
&lt;/h3&gt;&lt;p&gt;複数アプリ間でMCP serverを管理できる統一MCPパネルを提供し、双方向同期とDeep Linkインポートにも対応する。&lt;/p&gt;
&lt;p&gt;これはMCPを使っているユーザーにはかなり実用的だ。MCP serverが増えるほど、設定は複数のクライアントに散らばりやすい。統一パネルがあれば、重複設定を減らし、移行もしやすくなる。&lt;/p&gt;
&lt;h3 id=&#34;prompts&#34;&gt;Prompts
&lt;/h3&gt;&lt;p&gt;Prompts部分はMarkdown編集に対応し、異なるツール間で対応するファイルを同期できる。例えば次のようなファイルだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GEMINI.md&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらは本質的にはAgent向けのプロジェクト説明書だ。一元管理できれば、チームルール、プロジェクトの約束事、グローバルプロンプトをより保守しやすくなる。&lt;/p&gt;
&lt;h3 id=&#34;skills&#34;&gt;Skills
&lt;/h3&gt;&lt;p&gt;SkillsはGitHubリポジトリやZIPファイルからワンクリックでインストールできる。カスタムリポジトリ管理、シンボリックリンク、ファイルコピーにも対応する。&lt;/p&gt;
&lt;p&gt;Claude Code、Codex、OpenClawのようなツールを同時に使う場合、Skillsは複数ディレクトリに散らばったファイル群になりやすい。&lt;code&gt;CC Switch&lt;/code&gt; はそれらを集約し、保守コストを下げる。&lt;/p&gt;
&lt;h2 id=&#34;セッションとワークスペース&#34;&gt;セッションとワークスペース
&lt;/h2&gt;&lt;p&gt;READMEではSession ManagerとWorkspace関連の機能にも触れられている。&lt;/p&gt;
&lt;p&gt;複数アプリ内のセッション履歴を閲覧、検索、復元できる。AIコーディングツールを長期的に使う人にとって、セッション管理はかなり重要だ。価値のある文脈、デバッグ過程、案の比較が、古い会話の中に埋もれていることが多いからだ。&lt;/p&gt;
&lt;p&gt;さらにOpenClaw向けにWorkspace editorも提供し、&lt;code&gt;AGENTS.md&lt;/code&gt;、&lt;code&gt;SOUL.md&lt;/code&gt; などのagentファイルを編集でき、Markdownプレビューも備える。&lt;/p&gt;
&lt;p&gt;これは &lt;code&gt;CC Switch&lt;/code&gt; が単なる「key切り替えツール」ではなく、AI Agentワークステーションの方向へ拡張していることを示している。&lt;/p&gt;
&lt;h2 id=&#34;クラウド同期とデータ保存&#34;&gt;クラウド同期とデータ保存
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; はDropbox、OneDrive、iCloud、NAS、WebDAV経由でProviderデータを同期できる。&lt;/p&gt;
&lt;p&gt;ローカルのデータ保存場所も明確だ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;データベース：&lt;code&gt;~/.cc-switch/cc-switch.db&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;ローカル設定：&lt;code&gt;~/.cc-switch/settings.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;自動バックアップ：&lt;code&gt;~/.cc-switch/backups/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Skills：&lt;code&gt;~/.cc-switch/skills/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Skillバックアップ：&lt;code&gt;~/.cc-switch/skill-backups/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;主要データソースとしてSQLiteを使い、原子的な書き込みと自動バックアップを重視している。目的は、切り替えや書き込みの際に設定ファイルが壊れることを避けることだ。&lt;/p&gt;
&lt;p&gt;この設計はヘビーユーザーにとって重要だ。設定管理ツール自体が設定を書き壊した場合、影響を受けるのはすべてのAIコーディングツールだからだ。&lt;/p&gt;
&lt;h2 id=&#34;インストール方法&#34;&gt;インストール方法
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; はTauri 2ベースのクロスプラットフォームデスクトップアプリだ。&lt;/p&gt;
&lt;p&gt;おおよそのシステム要件は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows：Windows 10以降&lt;/li&gt;
&lt;li&gt;macOS：macOS 12 Monterey以降&lt;/li&gt;
&lt;li&gt;Linux：Ubuntu 22.04+、Debian 11+、Fedora 34+などの主要ディストリビューション&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Windowsユーザーは &lt;code&gt;.msi&lt;/code&gt; インストーラーまたはポータブル版の圧縮パッケージをダウンロードできる。&lt;/p&gt;
&lt;p&gt;macOSユーザーはHomebrewでインストールできる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew tap farion1231/ccswitch
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install --cask cc-switch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;更新は次の通り。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew upgrade --cask cc-switch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Linuxユーザーは &lt;code&gt;.deb&lt;/code&gt;、&lt;code&gt;.rpm&lt;/code&gt;、AppImageを選べる。Arch Linuxユーザーは &lt;code&gt;paru -S cc-switch-bin&lt;/code&gt; でもインストールできる。&lt;/p&gt;
&lt;p&gt;2026年5月6日時点で、リポジトリページに表示されている最新releaseは &lt;code&gt;CC Switch v3.14.1&lt;/code&gt; で、公開日は2026年4月23日だ。&lt;/p&gt;
&lt;h2 id=&#34;技術スタック&#34;&gt;技術スタック
&lt;/h2&gt;&lt;p&gt;リポジトリ構成を見ると、&lt;code&gt;CC Switch&lt;/code&gt; は典型的なTauriデスクトップアプリだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;フロントエンド：React 18、TypeScript、Vite、TailwindCSS、TanStack Query、shadcn/ui&lt;/li&gt;
&lt;li&gt;バックエンド：Tauri 2、Rust、SQLite、Tokio&lt;/li&gt;
&lt;li&gt;テスト：Vitest、MSW、Testing Library&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;主な設計パターンは次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SQLiteをSingle Source of Truthとして使う。&lt;/li&gt;
&lt;li&gt;デバイス単位のローカル設定はJSONで保存する。&lt;/li&gt;
&lt;li&gt;切り替え時に対象ツールのlive configへ書き込む。&lt;/li&gt;
&lt;li&gt;現在のProviderを編集する際はlive configから回填する。&lt;/li&gt;
&lt;li&gt;一時ファイルとrenameを使って原子的に書き込む。&lt;/li&gt;
&lt;li&gt;データベース接続をロックし、並行書き込み問題を避ける。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この構成から、プロジェクトは単なるスクリプトではなく、長期利用を前提にしたデスクトップツールとして設計されていることがわかる。&lt;/p&gt;
&lt;h2 id=&#34;誰に向いているか&#34;&gt;誰に向いているか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; が向いているのは次のようなユーザーだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code、Codex、Gemini CLI、OpenCode、OpenClawを同時に使う。&lt;/li&gt;
&lt;li&gt;公式アカウント、サードパーティrelay、ローカルモデル、チームProviderを頻繁に切り替える。&lt;/li&gt;
&lt;li&gt;すでにMCPを多用し始めている。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;、&lt;code&gt;AGENTS.md&lt;/code&gt;、&lt;code&gt;GEMINI.md&lt;/code&gt; を統一して保守したい。&lt;/li&gt;
&lt;li&gt;Skillsを頻繁にインストール、テスト、移行する。&lt;/li&gt;
&lt;li&gt;複数ツールのセッション履歴や利用状況を見たい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もしAIコーディングツールを1つだけ使い、常に公式ログインで、Provider、MCP、Skillsをあまり触らないなら、価値はそれほど明確ではないかもしれない。&lt;/p&gt;
&lt;p&gt;しかしすでに「複数ツール、複数アカウント、複数Provider、複数プロジェクト」の状態に入っているなら、細かな設定作業をかなり減らせる。&lt;/p&gt;
&lt;h2 id=&#34;注意点&#34;&gt;注意点
&lt;/h2&gt;&lt;p&gt;この種のツールは便利だが、境界も意識する必要がある。&lt;/p&gt;
&lt;p&gt;第一に、複数のAI CLI設定を管理するため、このツールとその書き込みロジックを信頼できるか確認する必要がある。&lt;/p&gt;
&lt;p&gt;第二に、API key、relay endpoint、MCP serverはいずれも機微な設定だ。クラウド同期を有効にする前に、同期先ディレクトリやWebDAVサービス自体が安全で信頼できるか確認したい。&lt;/p&gt;
&lt;p&gt;第三に、Providerを切り替えた後、多くのツールでは変更を反映するためにターミナルやCLIの再起動が必要になる。READMEでは、Claude CodeはProviderデータのホットスイッチに対応するとされているが、他のツールでは通常再起動が必要だ。&lt;/p&gt;
&lt;p&gt;第四に、公式ログインへ戻す場合は、プロジェクト説明に沿ってofficial providerを追加し、対応するツールのログインフローを改めて実行するのがよい。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; の価値は、また別のAIコーディングツールを作ったことではない。AIコーディングのエコシステムが、すでに複数ツール共存の段階に入ったという現実を認めている点にある。&lt;/p&gt;
&lt;p&gt;Claude Code、Codex、Gemini CLI、OpenCode、OpenClawにはそれぞれ独自の設定システムがあり、MCP、Skills、Prompts、Providerも急速に広がっている。設定を手作業で変え続けるやり方は、いずれ負担になる。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; はこれらを1つのデスクトップアプリに集約し、Providerの切り替え、MCPの同期、Skillsの管理、プロンプトファイルの保守、セッション確認をより簡単にする。AIコーディングを重く使う人にとって、この種のツールは「任意の小道具」から「日常の基盤」へ変わっていく可能性が高い。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/farion1231/cc-switch&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;farion1231/cc-switch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Codex App 入門ガイド：インストール、サンドボックス、並列タスク、Skills、MCP</title>
        <link>https://knightli.com/ja/2026/05/06/codex-app-complete-guide-skills-mcp/</link>
        <pubDate>Wed, 06 May 2026 08:41:17 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/06/codex-app-complete-guide-skills-mcp/</guid>
        <description>&lt;p&gt;Codex App は、AI コーディング向けのタスクワークスペースと考えると分かりやすい。従来の IDE でも、単なるチャット画面でもなく、マルチタスク、プロジェクト管理、サンドボックス権限、Git、クラウド実行、プラグイン、Skills、MCP、自動化を 1 つのインターフェイスにまとめている。&lt;/p&gt;
&lt;p&gt;すでに Codex CLI、Claude Code、Cursor、その他の coding agent を使っているなら、Codex App の最も注目すべき点は、「複数の agent を並列に動かす」ことをより明確なデスクトップワークフローにしている点だ。&lt;/p&gt;
&lt;h2 id=&#34;codex-app-が向いていること&#34;&gt;Codex App が向いていること
&lt;/h2&gt;&lt;p&gt;Codex App の価値は、AI に質問へ答えさせることではなく、プロジェクトディレクトリ内で継続的にタスクを実行させることにある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コードを編集し、コマンドを実行し、開発サーバーを起動する。&lt;/li&gt;
&lt;li&gt;複数のプロジェクトと複数のタスクを管理する。&lt;/li&gt;
&lt;li&gt;ローカルまたはクラウドで長いタスクを実行する。&lt;/li&gt;
&lt;li&gt;プラグイン、Skills、MCP を呼び出して能力を拡張する。&lt;/li&gt;
&lt;li&gt;Git、worktree、PR で変更を管理する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenAI も Codex App を複数の coding agent を管理するためのインターフェイスとして位置付けている。複数のコードタスクを同時に進める人に向いており、特にフロントエンドページ、スクリプト、小規模アプリ、ドキュメント整理、自動化ワークフローと相性がよい。&lt;/p&gt;
&lt;h2 id=&#34;インストール前の準備&#34;&gt;インストール前の準備
&lt;/h2&gt;&lt;p&gt;Codex App を使う前に、次の 3 つの基本ツールを用意しておくとよい。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;Git&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Node.js&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VS Code&lt;/code&gt; または普段使っている IDE&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Codex App は macOS と Windows をサポートしている。インストール後は ChatGPT アカウントでログインする。初回起動時には、プログラミングや日常作業など主な利用シナリオを選択できる。Codex は選択内容に応じて一部のプラグインと Skills を事前に入れ、後から設定やプラグインマーケットで調整できる。&lt;/p&gt;
&lt;p&gt;Windows と macOS の主な機能はおおむね同じだが、一部のコンピューター自動化機能はプラットフォームやプラグイン対応に依存する。実際には現在のバージョンに表示される内容を基準にする。&lt;/p&gt;
&lt;h2 id=&#34;インターフェイス構造プロジェクトタスクチャット&#34;&gt;インターフェイス構造：プロジェクト、タスク、チャット
&lt;/h2&gt;&lt;p&gt;Codex App は典型的な 3 カラム構成になっている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;左側：プロジェクト、タスク、過去のチャット、プラグイン、自動化への入口。&lt;/li&gt;
&lt;li&gt;中央：現在のチャット画面。&lt;/li&gt;
&lt;li&gt;右側：ファイル、ブラウザー、ターミナル、実行結果などの多機能領域。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;1 つのプロジェクトは通常、ローカルフォルダーに対応する。同じプロジェクト内で複数のチャットを開くことも、複数のプロジェクトを同時に開き、異なる agent に並列で作業させることもできる。&lt;/p&gt;
&lt;p&gt;タスクリストには状態が表示される。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;実行中：agent がまだ作業している。&lt;/li&gt;
&lt;li&gt;承認待ち：権限、ネットワーク、依存関係インストール、高リスク操作の確認が必要。&lt;/li&gt;
&lt;li&gt;完了：タスクが終了し、結果確認や追加質問ができる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;複数のターミナルを行き来するより直感的で、複数の AI タスクを同時に管理しやすい。&lt;/p&gt;
&lt;h2 id=&#34;サンドボックスと権限管理&#34;&gt;サンドボックスと権限管理
&lt;/h2&gt;&lt;p&gt;Codex App の権限体系はサンドボックスを中心にしている。デフォルトでは、現在のプロジェクトフォルダーが agent の主な作業範囲になる。&lt;/p&gt;
&lt;p&gt;一般的な権限境界は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロジェクトディレクトリ内のファイルを読み書きできる。&lt;/li&gt;
&lt;li&gt;デフォルトではプロジェクト外のファイルを自由に変更できない。&lt;/li&gt;
&lt;li&gt;ネットワークや高リスクコマンドはデフォルトで制限される。&lt;/li&gt;
&lt;li&gt;権限昇格が必要な場合はユーザーに承認を求める。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;実用的なのは「自動レビュー」モードだ。低リスク操作は自動で許可し、高リスク操作はユーザー確認に回す。これにより頻繁なポップアップを減らしつつ、危険な操作が知らないうちに実行されることを防げる。&lt;/p&gt;
&lt;p&gt;「完全アクセス」は慎重に使うべきだ。agent が何をする必要があるか明確で、プロジェクトが Git でバックアップされ、重要ファイルにも別のバックアップがある場合に向いている。日常的に常時有効にするのはおすすめしない。&lt;/p&gt;
&lt;h2 id=&#34;コンテキストモデル利用枠&#34;&gt;コンテキスト、モデル、利用枠
&lt;/h2&gt;&lt;p&gt;Codex App は現在のチャットのコンテキスト使用状況を表示する。会話が長く、履歴が多いほど、モデルが処理するコンテキストも大きくなる。&lt;/p&gt;
&lt;p&gt;実用的な習慣は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 つのタスクが終わったら新しいチャットを開く。&lt;/li&gt;
&lt;li&gt;長い会話は手動圧縮できるが、圧縮を万能の記憶と考えない。&lt;/li&gt;
&lt;li&gt;複雑なタスクでは、目的、境界、受け入れ条件を先に明確にする。&lt;/li&gt;
&lt;li&gt;関係ない大量のログ、エラー、ファイルを一度に詰め込まない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;モデル選択では、タスクの複雑さに応じて推論強度を調整する。簡単な修正、文章整理、反復タスクは必ずしも最高性能モデルを必要としない。アーキテクチャ移行、難しいバグ、複数ファイルにまたがるリファクタリングには、より強いモデルが向いている。&lt;/p&gt;
&lt;p&gt;高速モードがある場合は、通常より利用枠を多く消費する点に注意する。急ぎの時には有効だが、日常のデフォルトにする必要はない。&lt;/p&gt;
&lt;h2 id=&#34;画像生成とマルチモーダル入力&#34;&gt;画像生成とマルチモーダル入力
&lt;/h2&gt;&lt;p&gt;Codex App は画像やファイルをコンテキストとして受け取ることができ、適切な場面では画像生成能力も呼び出せる。&lt;/p&gt;
&lt;p&gt;これはフロントエンドやコンテンツ系プロジェクトで役立つ。たとえば Codex に次のことを依頼できる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;スクリーンショットをもとにページスタイルを修正する。&lt;/li&gt;
&lt;li&gt;Web ページ内の不適切な画像を置き換える。&lt;/li&gt;
&lt;li&gt;商品画像、カルーセル画像、ページ素材を生成する。&lt;/li&gt;
&lt;li&gt;UI スクリーンショットから修正すべき位置を指摘する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;より効率的なのは、「もっときれいにして」とだけ言うのではなく、スクリーンショットを使って具体的な問題を示すことだ。たとえば「このカードの余白が大きすぎる」「この画像はサービスシーンに合っていない」「地図エリアをもっと分かりやすくする」といった指示がよい。&lt;/p&gt;
&lt;h2 id=&#34;steer実行中に方向を修正する&#34;&gt;Steer：実行中に方向を修正する
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Steer&lt;/code&gt; は、実行中に方向を引き受ける機能と考えるとよい。agent がすでに作業を始めた後で、方向を誤解していると気づいた場合、すべて終わるまで待ってから直す必要はない。&lt;/p&gt;
&lt;p&gt;この機能を使うと、新しい指示を現在の実行フローに挿入し、Codex に進路を修正させられる。&lt;/p&gt;
&lt;p&gt;Steer が向いている場面は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;agent が要件を誤解した。&lt;/li&gt;
&lt;li&gt;生成されたページのスタイルが明らかに違う。&lt;/li&gt;
&lt;li&gt;実行中の案が重すぎる、またはコストが高すぎる。&lt;/li&gt;
&lt;li&gt;途中で重要な制約を追加する必要がある。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;通常はデフォルトのキュー動作を維持し、本当に介入が必要な時だけ手動で Steer を使うのがよい。通常のタスクを乱さず、重要な場面で方向を戻せる。&lt;/p&gt;
&lt;h2 id=&#34;計画モードと内蔵ブラウザー&#34;&gt;計画モードと内蔵ブラウザー
&lt;/h2&gt;&lt;p&gt;複雑なタスクでは、まず計画モードを使うのがよい。計画モードでは Codex はすぐにコードを変更せず、先に計画を出し、必要ならカード形式で重要な選択肢を確認する。&lt;/p&gt;
&lt;p&gt;計画モードに向いているタスクは次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;React プロジェクトを Next.js に移すようなフレームワーク移行。&lt;/li&gt;
&lt;li&gt;大規模リファクタリング。&lt;/li&gt;
&lt;li&gt;データベース、認証、デプロイを含む機能。&lt;/li&gt;
&lt;li&gt;技術方針がまだ固まっていない要件。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Codex App の右側領域では内蔵ブラウザーを開き、ローカル開発サーバーをプレビューできる。ページ上で注釈を付け、具体的な UI 位置に応じて Codex に修正させられる。この「ページを見る、位置を指す、AI に直させる」流れは、純粋な文章説明よりフロントエンドデバッグに向いている。&lt;/p&gt;
&lt;h2 id=&#34;gitideコードのロールバック&#34;&gt;Git、IDE、コードのロールバック
&lt;/h2&gt;&lt;p&gt;Codex App は完全な IDE ではない。コード閲覧や注釈はできるが、手作業での編集は VS Code、Cursor、Windsurf などの IDE の方が向いている。&lt;/p&gt;
&lt;p&gt;Codex プロジェクトでは早めに Git を初期化しておくとよい。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Codex に &lt;code&gt;.gitignore&lt;/code&gt; を作成または確認させる。&lt;/li&gt;
&lt;li&gt;使える状態になったら一度コミットする。&lt;/li&gt;
&lt;li&gt;大きな変更の前にはクリーンなコミット地点を作る。&lt;/li&gt;
&lt;li&gt;不満があれば Git でコードを戻す。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;チャット履歴だけを戻しても、コードは自動では戻らない。安定した方法は、チャットを適切な地点へ戻し、コードは Git commit hash で対応する状態へ戻すことだ。&lt;/p&gt;
&lt;h2 id=&#34;worktree複数方向の並列開発&#34;&gt;Worktree：複数方向の並列開発
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;git worktree&lt;/code&gt; は Codex App で並列 agent を使う際に非常に相性がよい。&lt;/p&gt;
&lt;p&gt;本質的には、同じリポジトリから複数の独立した作業ディレクトリを作り、それぞれを別ブランチに対応させる仕組みだ。これにより、異なる agent を別フォルダーで同時に作業させても互いに上書きしない。&lt;/p&gt;
&lt;p&gt;典型的な使い方は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 つの worktree で顧客レビューコンポーネントを改善する。&lt;/li&gt;
&lt;li&gt;1 つの worktree で店舗情報と地図レイアウトを調整する。&lt;/li&gt;
&lt;li&gt;2 つのタスクが終わったらそれぞれ main へマージする。&lt;/li&gt;
&lt;li&gt;マージ後に一時 worktree を削除する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;同じディレクトリで複数 agent に同時編集させるよりずっと安定する。競合が出た場合も、通常の Git フローで review と merge を行えばよい。&lt;/p&gt;
&lt;h2 id=&#34;クラウド実行環境&#34;&gt;クラウド実行環境
&lt;/h2&gt;&lt;p&gt;Codex はローカルだけでなく、クラウド環境にもタスクを委任できる。&lt;/p&gt;
&lt;p&gt;クラウド実行が向いている場面は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;外出中で手元にスマートフォンしかない。&lt;/li&gt;
&lt;li&gt;agent に長いタスクをバックグラウンドで実行させたい。&lt;/li&gt;
&lt;li&gt;コードがすでに GitHub に同期されており、Codex にリモートリポジトリを変更させたい。&lt;/li&gt;
&lt;li&gt;PR 形式で変更を確認してマージしたい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;典型的な流れは、ローカルコードを GitHub に push し、Codex がクラウド環境でリポジトリを取得してタスクを実行し、変更を生成し、PR または diff としてレビューに出すというものだ。&lt;/p&gt;
&lt;p&gt;ローカルで開発を続ける場合は、リモートの最新変更を取り込むことを忘れない。&lt;/p&gt;
&lt;h2 id=&#34;記憶システムagentsmd-を整える&#34;&gt;記憶システム：AGENTS.md を整える
&lt;/h2&gt;&lt;p&gt;新しいチャットはデフォルトでは完全な履歴記憶を持たない。プロジェクトが複雑になると、毎回背景を説明し直すのは非効率だ。&lt;/p&gt;
&lt;p&gt;最も汎用的な方法は、プロジェクトルートに &lt;code&gt;AGENTS.md&lt;/code&gt; を置くことだ。このファイルには次の内容を記録できる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロジェクトの目的と主要技術スタック。&lt;/li&gt;
&lt;li&gt;よく使うコマンド。&lt;/li&gt;
&lt;li&gt;ディレクトリ構成。&lt;/li&gt;
&lt;li&gt;コードスタイルと命名規則。&lt;/li&gt;
&lt;li&gt;禁止事項、たとえばファイルの一括削除を避けること。&lt;/li&gt;
&lt;li&gt;テスト、ビルド、デプロイルール。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Codex にプロジェクトを読ませて &lt;code&gt;AGENTS.md&lt;/code&gt; の初版を生成させ、人間が確認する方法もよい。複雑なプロジェクトでは、このファイルを維持する価値が高い。&lt;/p&gt;
&lt;p&gt;グローバルルールは慎重に使う。全プロジェクトに共通する安全制約、たとえば「ディレクトリを再帰的に削除しない」「破壊的操作の前に確認する」などに向いている。特定プロジェクトの細部をグローバルルールに入れると、他のプロジェクトを汚染する。&lt;/p&gt;
&lt;h2 id=&#34;プラグインと自動化&#34;&gt;プラグインと自動化
&lt;/h2&gt;&lt;p&gt;プラグインは、GitHub、Gmail、Google Drive、データベース、デプロイ基盤など外部サービスを Codex に接続する。&lt;/p&gt;
&lt;p&gt;価値はコピー&amp;amp;ペーストを減らすことだ。たとえば Codex に次のことをさせられる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitHub リポジトリの star 推移を確認する。&lt;/li&gt;
&lt;li&gt;メール内容を整理して自分に送る。&lt;/li&gt;
&lt;li&gt;定期的なチェックを実行する。&lt;/li&gt;
&lt;li&gt;結果を要約として書く。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;自動化は繰り返しタスクに向いている。たとえば毎週金曜午後にリポジトリデータを確認し、メールレポートを送るような用途だ。簡単な自動化タスクには最高性能モデルは不要で、軽量モデルで十分なことが多い。&lt;/p&gt;
&lt;h2 id=&#34;skillsワークフローを再利用可能な能力にする&#34;&gt;Skills：ワークフローを再利用可能な能力にする
&lt;/h2&gt;&lt;p&gt;Skills は Codex の「専門的な手順書」だ。一回限りのプロンプトではなく、ある種類のタスクの流れ、規則、スクリプト、注意点をまとめ、Codex が後で安定して再利用できるようにする。&lt;/p&gt;
&lt;p&gt;主な入手元は次の 3 種類。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;公式 Skills。&lt;/li&gt;
&lt;li&gt;サードパーティ Skills。&lt;/li&gt;
&lt;li&gt;自分で書いた Skills。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Skill 化に向いている作業は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;字幕を図解付きノートにする。&lt;/li&gt;
&lt;li&gt;会社の形式で週報を書く。&lt;/li&gt;
&lt;li&gt;画像や文書を一括処理する。&lt;/li&gt;
&lt;li&gt;固定形式のコードレビュー。&lt;/li&gt;
&lt;li&gt;特定フレームワークのプロジェクト初期化。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;同じプロンプトを何度もコピーしているなら、Skill にする価値がある。&lt;/p&gt;
&lt;h2 id=&#34;mcp外部ツールとデータベースを接続する&#34;&gt;MCP：外部ツールとデータベースを接続する
&lt;/h2&gt;&lt;p&gt;MCP は、大規模モデル向けの標準化されたツールプロトコルと考えられる。MCP を通じて、Codex は外部サービスを呼び出し、より具体的なタスクを完了できる。&lt;/p&gt;
&lt;p&gt;たとえば Supabase を接続すると、Codex に次のことをさせられる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;データベーステーブルを作成する。&lt;/li&gt;
&lt;li&gt;データベーススキーマを読む。&lt;/li&gt;
&lt;li&gt;バックエンドエンドポイントを変更する。&lt;/li&gt;
&lt;li&gt;フロントエンドフォームをデータベースへ送信する。&lt;/li&gt;
&lt;li&gt;データベース状態に基づいて問題をデバッグする。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは強力だが、権限境界に注意が必要だ。データベース、本番環境、デプロイ基盤、メールアカウントは高リスク資源である。初回接続時はテストプロジェクトと低権限アカウントを使うのがよい。&lt;/p&gt;
&lt;h2 id=&#34;デプロイプラグイン&#34;&gt;デプロイプラグイン
&lt;/h2&gt;&lt;p&gt;デプロイ基盤のプラグインを使うと、Codex がビルドと公開を直接完了できる。たとえばフロントエンドプロジェクトを Netlify のような平台へデプロイできる。&lt;/p&gt;
&lt;p&gt;この種のプラグインは、小規模サイト、プロトタイプ、社内ツール、デモプロジェクトに向いている。実際に使う時は次の点に注意する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;デプロイ前にローカルビルドを実行する。&lt;/li&gt;
&lt;li&gt;環境変数をコードへ直接書かない。&lt;/li&gt;
&lt;li&gt;公開後にページが正常に開くか確認する。&lt;/li&gt;
&lt;li&gt;本番プロジェクトでは人間の review を残す。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AI は公開フローをつなぐ助けになるが、デプロイ権限は慎重に管理すべきだ。&lt;/p&gt;
&lt;h2 id=&#34;コンピューター自動化&#34;&gt;コンピューター自動化
&lt;/h2&gt;&lt;p&gt;対応プラットフォームとプラグイン環境では、Codex がブラウザーやデスクトップアプリを操作し、RPA に近いタスクを実行できる。&lt;/p&gt;
&lt;p&gt;例：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;チャットアプリを開いてメッセージを準備する。&lt;/li&gt;
&lt;li&gt;プロジェクトボードを閲覧し、タスク状態を要約する。&lt;/li&gt;
&lt;li&gt;英語のブリーフを生成する。&lt;/li&gt;
&lt;li&gt;確認後、指定相手へ送信する。&lt;/li&gt;
&lt;li&gt;この流れをスケジュール自動化にする。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この機能は想像力を広げるが、最も強い安全境界も必要だ。メッセージ送信、メール送信、フォーム送信、支払い、データ削除に関わる操作では、人間の確認を残すべきだ。&lt;/p&gt;
&lt;h2 id=&#34;使い方の提案&#34;&gt;使い方の提案
&lt;/h2&gt;&lt;p&gt;Codex App の正しい使い方は、すべてを一度に完全自動化させることではない。タスクを明確に分解し、制御された環境で効率よく実行させることだ。&lt;/p&gt;
&lt;p&gt;おすすめの習慣：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;すべてのプロジェクトで最初に Git を初期化する。&lt;/li&gt;
&lt;li&gt;複雑なタスクでは計画モードを使う。&lt;/li&gt;
&lt;li&gt;並列タスクでは worktree を優先する。&lt;/li&gt;
&lt;li&gt;プロジェクトルールを &lt;code&gt;AGENTS.md&lt;/code&gt; に書く。&lt;/li&gt;
&lt;li&gt;高リスク操作では人間の確認を残す。&lt;/li&gt;
&lt;li&gt;繰り返しワークフローを Skill や自動化にする。&lt;/li&gt;
&lt;li&gt;プラグインと MCP はまずテスト環境で検証する。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/introducing-the-codex-app/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Introducing the Codex app - OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/11369540-codex-in-chatgpt&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Using Codex with your ChatGPT plan - OpenAI Help Center&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/academy/codex-plugins-and-skills/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Plugins and skills - OpenAI Academy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Codex App の本質は「もう 1 つの AI チャット画面」ではない。AI コーディングを管理可能なワークスペースにすることだ。ローカルプロジェクト、クラウドタスク、Git、worktree、プラグイン、Skills、MCP、自動化をつなげられる。&lt;/p&gt;
&lt;p&gt;うまく使う鍵は、「任せること」と「制御すること」のバランスを取ることだ。小さなタスクは大胆に Codex に渡し、複雑なタスクはまず計画させ、高リスク操作は必ず確認する。そうすれば Codex は、コードを書く助手から、長期的に協力できるエンジニアリングツールへ近づく。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Hermes &#43; Qwen3.6：ローカル Agent の低コスト構築案</title>
        <link>https://knightli.com/ja/2026/05/04/hermes-qwen36-local-agent/</link>
        <pubDate>Mon, 04 May 2026 06:40:30 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/04/hermes-qwen36-local-agent/</guid>
        <description>&lt;p&gt;この記事は、ローカル Agent の構築案を整理したものだ。WSL2 上で &lt;code&gt;llama.cpp&lt;/code&gt; を使って Qwen3.6 GGUF モデルを動かし、Hermes Agent をローカルの OpenAI-compatible API に接続する。これにより、自分の PC 上で長時間動作するローカル AI アシスタントを用意でき、オンラインサービスの Token 消費に縛られにくくなる。&lt;/p&gt;
&lt;p&gt;この構成は、ローカル AI Agent を試したい人、データのプライバシーと長期的な管理性を重視する人に向いている。日常の質問応答、執筆、コード補助、資料整理、簡単な自動化タスクに使える。ただし、モデルが大きいほど VRAM 要件も高くなる。原文の例では Qwen3.6-27B を使っており、24GB VRAM のほうが安定しやすい。VRAM が少ない場合は、小さいモデルや低い量子化版を選ぶ。&lt;/p&gt;
&lt;h2 id=&#34;構成&#34;&gt;構成
&lt;/h2&gt;&lt;p&gt;全体の流れはシンプルだ。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Windows に WSL2 と Ubuntu 24.04 をインストールする。&lt;/li&gt;
&lt;li&gt;WSL2 内に CUDA Toolkit を入れ、&lt;code&gt;llama.cpp&lt;/code&gt; をビルドする。&lt;/li&gt;
&lt;li&gt;Qwen3.6 GGUF モデルをダウンロードする。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;llama-server&lt;/code&gt; でローカルモデルサービスを起動する。&lt;/li&gt;
&lt;li&gt;Hermes Agent をインストールし、&lt;code&gt;http://localhost:8080/v1&lt;/code&gt; に接続する。&lt;/li&gt;
&lt;li&gt;任意で起動スクリプトを書き、WSL2 起動時にモデルサービスを自動起動する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Hermes は Agent 機能を担当し、Qwen3.6 はローカル LLM 機能を担当する。組み合わせることで、PC をローカルのプライベート AI アシスタントにできる。&lt;/p&gt;
&lt;h2 id=&#34;wsl2-と-ubuntu-のインストール&#34;&gt;WSL2 と Ubuntu のインストール
&lt;/h2&gt;&lt;p&gt;Windows PowerShell を管理者として開き、次を実行する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wsl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-install&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wsl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-set-default-version&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;再起動後、Ubuntu 24.04 をインストールする。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wsl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-install&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-d&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Ubuntu&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;24.04&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;インストール後、Ubuntu がユーザー名とパスワードの設定を求める。Ubuntu に入ったら、まず NVIDIA GPU が WSL2 から見えているか確認する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;GPU が認識されない場合は、Windows 側の NVIDIA ドライバを更新する。WSL2 は Windows ドライバを継承するが、CUDA Toolkit は WSL2 内に別途インストールする必要がある。&lt;/p&gt;
&lt;h2 id=&#34;python-と基本ツールのインストール&#34;&gt;Python と基本ツールのインストール
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt install -y python3-pip python3-venv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;続いて、ビルドツール、Git、CMake も必要になる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install -y cmake build-essential git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;llamacpp-のビルド&#34;&gt;llama.cpp のビルド
&lt;/h2&gt;&lt;p&gt;まずソースコードを取得する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/ggerganov/llama.cpp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; llama.cpp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;WSL2 内で CUDA が使える状態なら、そのままビルドできる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake -B build -DGGML_CUDA&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;ON -DCMAKE_CUDA_ARCHITECTURES&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;89&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake --build build -j&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;nproc&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;CMAKE_CUDA_ARCHITECTURES=89&lt;/code&gt; は RTX 40 シリーズなど Ada アーキテクチャ向けだ。別の GPU では実際のアーキテクチャに合わせて変更する。&lt;/p&gt;
&lt;p&gt;CUDA Toolkit がないというエラーが出る場合は、先に WSL2 内で CUDA Toolkit をインストールする。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo dpkg -i cuda-keyring_1.1-1_all.deb
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install -y cuda-toolkit-12-8
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;環境変数を設定する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;PATH&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/usr/local/cuda-12.8/bin:&lt;span class=&#34;nv&#34;&gt;$PATH&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;LD_LIBRARY_PATH&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/usr/local/cuda-12.8/lib64:&lt;span class=&#34;nv&#34;&gt;$LD_LIBRARY_PATH&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;export PATH=/usr/local/cuda-12.8/bin:$PATH&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;その後、再ビルドする。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ~/llama.cpp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rm -rf build
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake -B build -DGGML_CUDA&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;ON -DCMAKE_CUDA_ARCHITECTURES&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;89&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake --build build -j&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;nproc&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;qwen36-gguf-モデルのダウンロード&#34;&gt;Qwen3.6 GGUF モデルのダウンロード
&lt;/h2&gt;&lt;p&gt;原文の例では、&lt;code&gt;unsloth/Qwen3.6-27B-GGUF&lt;/code&gt; の &lt;code&gt;Qwen3.6-27B-UD-Q4_K_XL.gguf&lt;/code&gt; を使っている。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hf download unsloth/Qwen3.6-27B-GGUF &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Qwen3.6-27B-UD-Q4_K_XL.gguf &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--local-dir ~/models/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このファイルは約 17GB。Hugging Face のダウンロードが遅い場合は、ModelScope などのミラーを使う。VRAM が足りない場合は 27B を無理に使わず、小さいモデルか低い量子化版を選ぶ。&lt;/p&gt;
&lt;h2 id=&#34;ローカルモデルサービスを起動する&#34;&gt;ローカルモデルサービスを起動する
&lt;/h2&gt;&lt;p&gt;自分のモデルファイル名に合わせて &lt;code&gt;llama-server&lt;/code&gt; を起動する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/llama.cpp/build/bin/llama-server &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--model ~/models/Qwen3.6-27B-UD-Q4_K_XL.gguf &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--n-gpu-layers &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--ctx-size &lt;span class=&#34;m&#34;&gt;32768&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--flash-attn on &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--temp 1.0 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--top-p 0.95 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--top-k &lt;span class=&#34;m&#34;&gt;20&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--presence-penalty 1.5 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--port &lt;span class=&#34;m&#34;&gt;8080&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;起動後、Windows のブラウザで次を開く。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Hermes Agent や他の OpenAI-compatible クライアントから呼び出す場合、API アドレスは通常次になる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:8080/v1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;thinking-モードの使い分け&#34;&gt;Thinking モードの使い分け
&lt;/h2&gt;&lt;p&gt;Qwen3.6 はデフォルトで Thinking モードが有効になる場合がある。複雑な推論、難しいコード問題、多段階分析には向いているが、速度は遅くなる。&lt;/p&gt;
&lt;p&gt;Thinking モードを無効にしたい場合は、サービスを停止して &lt;code&gt;--chat-template-kwargs&lt;/code&gt; を追加する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/llama.cpp/build/bin/llama-server &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--model ~/models/Qwen3.6-27B-UD-Q4_K_XL.gguf &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--n-gpu-layers &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--ctx-size &lt;span class=&#34;m&#34;&gt;32768&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--flash-attn on &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--temp 1.0 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--top-p 0.95 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--top-k &lt;span class=&#34;m&#34;&gt;20&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--presence-penalty 1.5 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--chat-template-kwargs &lt;span class=&#34;s1&#34;&gt;&amp;#39;{&amp;#34;enable_thinking&amp;#34;:false}&amp;#39;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--port &lt;span class=&#34;m&#34;&gt;8080&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Thinking を無効にすると、簡単な Q&amp;amp;A、執筆、コード補完、コード説明は速くなる。一方、複雑なアルゴリズム設計、難しい Debug、アーキテクチャ分析では Thinking を有効にするほうがよい。&lt;/p&gt;
&lt;h2 id=&#34;hermes-agent-のインストール&#34;&gt;Hermes Agent のインストール
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;llama-server&lt;/code&gt; を動かしたまま、新しい WSL2 ターミナルを開いて Hermes Agent をインストールする。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;インストールスクリプトは Python、Node.js、ripgrep、ffmpeg などの依存関係を処理する。モデル endpoint の設定では custom endpoint を選ぶ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;URL: http://localhost:8080/v1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: 12345678
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model: 自動認識
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ローカルの &lt;code&gt;llama-server&lt;/code&gt; では、API Key は任意のプレースホルダでよい。設定後は Telegram、WeChat、QQ、Discord などのチャットツールと接続し、Hermes Agent からローカルモデルを呼び出してタスクを実行できる。&lt;/p&gt;
&lt;h2 id=&#34;モデルサービスの自動起動&#34;&gt;モデルサービスの自動起動
&lt;/h2&gt;&lt;p&gt;WSL2 ターミナルを開いたときにモデルサービスを自動起動するスクリプトを用意できる。&lt;/p&gt;
&lt;p&gt;スクリプトを作成する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat &amp;gt; ~/start-llm.sh &lt;span class=&#34;s&#34;&gt;&amp;lt;&amp;lt; &amp;#39;EOF&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;echo &amp;#34;Starting Qwen3.6-27B llama-server...&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;~/llama.cpp/build/bin/llama-server \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--model ~/models/Qwen3.6-27B-UD-Q4_K_XL.gguf \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--n-gpu-layers 99 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--ctx-size 65536 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--flash-attn on \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--temp 1.0 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--top-p 0.95 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--top-k 20 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--presence-penalty 1.5 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--port 8080 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--host 0.0.0.0 &amp;amp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;echo &amp;#34;llama-server started, PID: $!&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;echo &amp;#34;API: http://localhost:8080/v1&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;echo &amp;#34;Chat UI: http://localhost:8080&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chmod +x ~/start-llm.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;.bashrc&lt;/code&gt; に追記する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;# Auto-start llama-server&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;if ! pgrep -f &amp;#34;llama-server&amp;#34; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1; then&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;    ~/start-llm.sh&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;fi&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これで WSL2 ターミナルを開くたびに、&lt;code&gt;llama-server&lt;/code&gt; が動いていなければ自動起動する。すでに動いている場合はスキップされ、重複起動を避けられる。&lt;/p&gt;
&lt;h2 id=&#34;注意事項&#34;&gt;注意事項
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;27B モデルは VRAM 要件が高い。24GB VRAM のほうが安定しやすく、VRAM が少ない場合は小さいモデルにする。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--ctx-size 65536&lt;/code&gt; は VRAM と RAM の負荷を大きく増やす。不安定な場合は &lt;code&gt;32768&lt;/code&gt; かそれ以下に下げる。&lt;/li&gt;
&lt;li&gt;WSL2 内の CUDA Toolkit と Windows 側の GPU ドライバの両方が正常である必要がある。どちらかが問題を起こすと、CUDA のビルドや実行に失敗する。&lt;/li&gt;
&lt;li&gt;Hermes Agent がローカルサービスへ接続する仕組みは OpenAI-compatible API 呼び出しであり、重要なのは &lt;code&gt;http://localhost:8080/v1&lt;/code&gt; が正常に応答すること。&lt;/li&gt;
&lt;li&gt;スマホや他の端末からアクセスする場合は、Windows Firewall、LAN アドレス、セキュリティ分離を追加で扱う。ローカルモデルサービスを直接インターネットへ公開しない。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;原文：&lt;a class=&#34;link&#34; href=&#34;https://www.freedidi.com/24036.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Hermes + Qwen3.6：本地最强 Agent 组合！零成本、无限 Token，太香了！&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;llama.cpp：&lt;a class=&#34;link&#34; href=&#34;https://github.com/ggerganov/llama.cpp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ggerganov/llama.cpp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hermes Agent：&lt;a class=&#34;link&#34; href=&#34;https://github.com/NousResearch/hermes-agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NousResearch/hermes-agent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Qwen3.6 GGUF 例：&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/unsloth/Qwen3.6-27B-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;unsloth/Qwen3.6-27B-GGUF&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Gemini Embedding 2：テキスト、画像、動画、音声を同じベクトル空間に入れる</title>
        <link>https://knightli.com/ja/2026/05/04/gemini-embedding-2-multimodal-rag/</link>
        <pubDate>Mon, 04 May 2026 06:01:10 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/04/gemini-embedding-2-multimodal-rag/</guid>
        <description>&lt;p&gt;Google Developers Blog が Gemini Embedding 2 の開発方法を紹介した。このモデルは Gemini API と Gemini Enterprise Agent Platform を通じて GA になっている。重要なのは、単なる新しい embedding モデルではなく、テキスト、画像、動画、音声、ドキュメントを同じ意味空間にマッピングできる点だ。&lt;/p&gt;
&lt;p&gt;これにより、検索システムが扱える範囲は広がる。従来の多くの RAG パイプラインでは、画像、動画、音声を先にテキストやメタデータへ変換し、それぞれ別にインデックスする必要があった。Gemini Embedding 2 はマルチモーダル入力を直接処理できるため、エージェント、検索、分類システムが実際の業務資料を扱いやすくなる。&lt;/p&gt;
&lt;p&gt;原文リンク：&lt;a class=&#34;link&#34; href=&#34;https://developers.googleblog.com/building-with-gemini-embedding-2/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Building with Gemini Embedding 2: Agentic multimodal RAG and beyond&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;モデルの機能&#34;&gt;モデルの機能
&lt;/h2&gt;&lt;p&gt;Gemini Embedding 2 は 100 以上の言語をサポートする。1 回のリクエストで処理できる内容は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;最大 8,192 text tokens&lt;/li&gt;
&lt;li&gt;最大 6 枚の画像&lt;/li&gt;
&lt;li&gt;最大 120 秒の動画&lt;/li&gt;
&lt;li&gt;最大 180 秒の音声&lt;/li&gt;
&lt;li&gt;最大 6 ページの PDF&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;中心にある考え方は「統一された意味空間」だ。開発者は異なるモダリティの内容を同じベクトル表現に入れ、同じ検索、クラスタリング、再ランキングのロジックで処理できる。&lt;/p&gt;
&lt;p&gt;たとえば、テキスト説明と画像を同じ embedding リクエストに入れられる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;google&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;google.genai&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;types&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;dog.png&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;rb&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;image_bytes&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;result&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;embed_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gemini-embedding-2&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;An image of a dog&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;types&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Part&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;from_bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;mime_type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;image/png&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;result&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;embeddings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;入力ごとに個別の embedding が必要で、集約された 1 つのベクトルでは困る場合は Batch API を使える。原文では、この種のバッチ対応について Agent Platform 側はまだ対応中だとも説明している。&lt;/p&gt;
&lt;h2 id=&#34;rag-にとっての意味&#34;&gt;RAG にとっての意味
&lt;/h2&gt;&lt;p&gt;マルチモーダル embedding はエージェント型 RAG に向いている。AI agent は、コードリポジトリ、PDF、スクリーンショット、図表、音声会議録、商品画像を同時に確認する必要があるかもしれない。すべての資料を同じ意味空間に入れられれば、形式ごとに別々の検索入口を作る必要がなくなる。&lt;/p&gt;
&lt;p&gt;Google は、タスクの目的に応じて task prefix を使うことを勧めている。これにより、embedding が検索目的に合いやすくなる。たとえば、質問応答、ファクトチェック、コード検索、検索結果には異なる prefix を使える。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Generate embedding for your task&amp;#39;s query:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;prepare_query&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;query&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;task: question answering | query: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#34;task: fact checking | query: {content}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#34;task: code retrieval | query: {content}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#34;task: search result | query: {content}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Generate embedding for document of an asymmetric retrieval task:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;prepare_document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;none&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;title: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; | text: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;この prefix は非対称検索に適している。ユーザーのクエリは短く、ドキュメントは長いことが多い。&lt;code&gt;query&lt;/code&gt; と &lt;code&gt;document&lt;/code&gt; をタスクに合わせて別々に整形すると、短い検索語と長い文書のマッチングを改善できる。&lt;/p&gt;
&lt;p&gt;原文では 2 つの導入例が紹介されている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Harvey は法律検索ベンチマークで、以前の embedding と比べて Recall@20 precision が 3% 向上した。&lt;/li&gt;
&lt;li&gt;Supermemory は Recall@1 の検索精度が 40% 向上し、記憶、インデックス、検索、Q&amp;amp;A パイプラインに利用している。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの数字はすべての場面で同じ改善を保証するものではない。ただし、マルチモーダル embedding がデモだけでなく、実際の検索プロダクトで効果を出していることはわかる。&lt;/p&gt;
&lt;h2 id=&#34;ビジュアル検索&#34;&gt;ビジュアル検索
&lt;/h2&gt;&lt;p&gt;Gemini Embedding 2 は、画像検索、画像とテキストを組み合わせた検索、商品識別にも使いやすい。原文では、URBN の衣料レンタル会社 Nuuly が、倉庫で撮影したタグ未付与の衣類写真をカタログと照合するために使っている例が紹介されている。この導入により、Match@20 は 60% から約 87% に向上し、全体の識別成功率は 74% から 90% 超に上がった。&lt;/p&gt;
&lt;p&gt;この種の場面で重要なのは生成ではなく、「この画像はどの在庫、文書、商品レコードに最も近いか」を理解することだ。業務に大量の画像、動画クリップ、スキャン資料があるなら、マルチモーダル embedding はテキストだけのインデックスより自然に使える。&lt;/p&gt;
&lt;h2 id=&#34;検索結果の再ランキング&#34;&gt;検索結果の再ランキング
&lt;/h2&gt;&lt;p&gt;Embedding は rerank にも使える。一般的には、まず基本検索で候補を取得し、その候補とユーザーのクエリとの類似度を計算して、より関連性の高い内容を上位に並べる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 1. Define a function to calculate the dot product (cosine similarity)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;dot_product&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ndarray&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ndarray&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;array&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;@&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;array&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 2. Retrieve your embeddings&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# (Assuming &amp;#39;summaries&amp;#39; is your list of search results)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;search_res&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_embeddings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;summaries&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;embedded_query&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_embeddings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;([&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;query&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 3. Calculate similarity scores&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;sim_value&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dot_product&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;search_res&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;embedded_query&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 4. Select the most relevant result&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;best_match_index&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;argmax&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sim_value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;原文では別の考え方も紹介されている。まずモデルに内部知識から仮の基準回答を生成させ、その回答を embedding し、候補コンテンツとの類似度を比較して、意味的に最も近い結果を選ぶ方法だ。これは質問応答型 RAG で特に役立つ。&lt;/p&gt;
&lt;h2 id=&#34;クラスタリング分類異常検知&#34;&gt;クラスタリング、分類、異常検知
&lt;/h2&gt;&lt;p&gt;検索以外にも、embedding はクラスタリング、分類、異常検知に使える。前述の質問応答検索とは異なり、これらは対称的なタスクなので、&lt;code&gt;query&lt;/code&gt; と &lt;code&gt;document&lt;/code&gt; に同じ task prefix を使える。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Generate embedding for query &amp;amp; document of your task.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;prepare_query_and_document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#39;task: clustering | query: {content}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#39;task: sentence similarity | query: {content}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#39;task: classification | query: {content}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;この種のタスクは、評判分析、コンテンツ審査、類似アセットの分類、異常サンプルの発見に使える。また、agent が大量のコンテキスト資料を先に整理してから、後続の推論に入る用途にも向いている。&lt;/p&gt;
&lt;h2 id=&#34;保存とコスト&#34;&gt;保存とコスト
&lt;/h2&gt;&lt;p&gt;Gemini Embedding 2 はデフォルトで 3,072 次元のベクトルを出力する。Matryoshka Representation Learning を使っているため、&lt;code&gt;output_dimensionality&lt;/code&gt; でより小さい次元に切り詰められる。Google は効率を優先する場合、1,536 または 768 次元を推奨している。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;result&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;embed_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gemini-embedding-2&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;What is the meaning of life?&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;config&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;output_dimensionality&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;768&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ベクトルは Agent Platform Vector Search、Pinecone、Weaviate、Qdrant、ChromaDB などに保存できる。コスト面では、原文は Batch API がより高いスループットを提供し、デフォルト embedding 価格の 50% で利用できると説明している。&lt;/p&gt;
&lt;h2 id=&#34;開発者はどう使うか&#34;&gt;開発者はどう使うか
&lt;/h2&gt;&lt;p&gt;すでにテキスト RAG がある場合は、まず次の 2 種類の改善から始めるとよい。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;PDF、スクリーンショット、画像説明、テキスト文書を同じインデックスに入れ、検索の再現率が安定するか確認する。&lt;/li&gt;
&lt;li&gt;質問応答、ファクトチェック、コード検索、商品検索など、タスクごとに task prefix を付ける。すべての内容を同じ embedding 形式で処理しない。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;新しいプロダクトを作るなら、次の方向を優先して検討できる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;企業ナレッジベース：文書、図表、プレゼン資料のスクリーンショット、会議資料をまとめて検索する。&lt;/li&gt;
&lt;li&gt;ビジュアル検索：画像、テキスト、混合入力で商品、アセット、デザイン案、アーカイブを探す。&lt;/li&gt;
&lt;li&gt;Agent ツールチェーン：coding agent、research agent、customer support agent が複数形式の業務資料を検索できるようにする。&lt;/li&gt;
&lt;li&gt;コンテンツガバナンス：テキスト、画像、動画クリップを統一的に分類、クラスタリング、異常検知する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Gemini Embedding 2 の価値は、マルチモーダル資料を同じ検索可能な資産に変えることにある。開発者にとっては、「先にテキストへ変換してから検索する」中間層を減らし、RAG システムを実世界のデータ形態に近づけられる。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>GPT-Image 2 プロンプトライブラリ：EC メインビジュアル事例</title>
        <link>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/</guid>
        <description>&lt;p&gt;このページでは &lt;code&gt;EC メインビジュアル&lt;/code&gt; カテゴリの 20 件の事例を収録しています。各項目には元事例リンク、作者、生成画像、完全なプロンプトを残しています。&lt;/p&gt;
&lt;p&gt;カテゴリナビ: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;総目次&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;EC メインビジュアル&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;広告クリエイティブ&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;ポートレート写真&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;ポスターイラスト&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;キャラクターデザイン&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI とソーシャルメディア&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;ec-メインビジュアル&#34;&gt;EC メインビジュアル
&lt;/h2&gt;&lt;h3 id=&#34;ec-メインビジュアル---奢华琥珀香水广告&#34;&gt;EC メインビジュアル - 奢华琥珀香水广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Polanco_IA/status/2047689647967609037&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Polanco_IA&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Polanco_IA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/000.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/000_hu_f485d4c5980da91f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/000_hu_79f504b06facaeba.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 奢华琥珀香水广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A luxurious cinematic product photograph of a classic rectangular perfume bottle inspired by {argument name=&amp;#34;brand label&amp;#34; default=&amp;#34;N°5 CHANEL PARIS PARFUM&amp;#34;}, placed upright on a glossy black marble surface with white veining. The bottle is centered slightly to the right, made of clear faceted glass with a large transparent crystal stopper, filled with rich amber-gold perfume that glows from within. Tiny condensation droplets cover the glass, adding texture and realism. Dramatic warm lighting from the upper left creates golden highlights, deep reflections on the marble, and a soft luminous bloom in the background. Wisps of elegant smoke curl around the bottle on both sides, enhancing a moody high-end advertisement feel. Dark background, shallow depth of field, ultra-detailed studio product photography, luxury beauty campaign aesthetic, crisp focus on the bottle, realistic reflections, warm black-and-gold color palette. Add a small white {argument name=&amp;#34;corner logo&amp;#34; default=&amp;#34;Pollo.ai&amp;#34;} in the top-right corner. Square composition, premium commercial ad, photorealistic, high contrast, refined and sophisticated.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ec-メインビジュアル---护肤品棚拍图&#34;&gt;EC メインビジュアル - 护肤品棚拍图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X/status/2047636636847231222&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Strength04_X&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/001.webp&#34;
	width=&#34;1002&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/001_hu_9109c57a0d6d7ec.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/001_hu_8aeaca4f0da10272.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 护肤品棚拍图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;83&#34;
		data-flex-basis=&#34;200px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A soft {argument name=&amp;#34;bottle color&amp;#34; default=&amp;#34;cream-colored&amp;#34;} bottle with a {argument name=&amp;#34;pump color&amp;#34; default=&amp;#34;pastel yellow&amp;#34;} pump stands on a matte podium, surrounded by silky foam and {argument name=&amp;#34;flowers&amp;#34; default=&amp;#34;chamomile blossoms&amp;#34;}. The background is a pale yellow gradient with subtle bubble details. The label emphasizes organic chamomile and calming care. Fresh chamomile flowers accentuate the gentle appeal.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ec-メインビジュアル---热带柑橘汽水广告海报&#34;&gt;EC メインビジュアル - 热带柑橘汽水广告海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/edimakorfr/status/2047635133466124726&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/edimakorfr&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@edimakorfr&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/002.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/002_hu_50a6f41beed238c7.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/002_hu_4bc62e586c85aec0.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 热带柑橘汽水广告海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a vibrant tropical commercial poster for a citrus soda bottle, in a bright summer advertising style. Show a single large plastic bottle of {argument name=&amp;#34;product name&amp;#34; default=&amp;#34;Soda&amp;#34;} centered slightly to the right, tilted a little left, with a yellow cap and transparent bottle covered in cold condensation droplets, filled with glowing golden-orange soda. The label should feature sliced oranges and citrus artwork with the brand text &amp;#34;{argument name=&amp;#34;product name&amp;#34; default=&amp;#34;Soda&amp;#34;}&amp;#34;, the phrase &amp;#34;aux agrumes d&amp;#39;été&amp;#34;, and a small green &amp;#34;500 ml&amp;#34; mark. Use a sunny beach background with vivid blue sky, turquoise ocean, soft clouds, and blurred tropical palm leaves entering from the upper right corner. Add dramatic water splashes around the base of the bottle, scattered clear ice cubes, and 5 visible citrus pieces in the foreground: 2 orange wedges, 1 lime half, 1 grapefruit half, and 1 partial orange slice at the far right edge. Place large French promotional text on the left: a huge white headline &amp;#34;{argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;Soda&amp;#34;}&amp;#34; with a small splash accent above it, then yellow script text &amp;#34;aux agrumes d&amp;#39;été&amp;#34; underneath. Add a yellow paint-stroke badge at mid-left with the text &amp;#34;LA FRAÎCHEUR QUI PÉTILLE !&amp;#34;. Add a vertical feature list on the lower left with 3 round icons and French captions: &amp;#34;SAVEURS NATURELLES&amp;#34;, &amp;#34;SANS COLORANTS ARTIFICIELS&amp;#34;, and &amp;#34;EXTRA RAFRAÎCHISSANT&amp;#34;. Add a green brushstroke banner at the bottom left reading &amp;#34;FORMAT PRATIQUE 500 ml&amp;#34;. Add a round beige eco-style seal at the bottom right with green outline and leaf motif, containing the text &amp;#34;{argument name=&amp;#34;seal text&amp;#34; default=&amp;#34;PLAISIR FRUITÉ À CHAQUE GORGÉE&amp;#34;}&amp;#34;. Lighting should be glossy and high-energy with strong sun flare from the upper left, saturated citrus colors, crisp packaging detail, realistic droplets, and polished supermarket-ad realism.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ec-メインビジュアル---工业设计展示图&#34;&gt;EC メインビジュアル - 工业设计展示图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ShamsAmin56/status/2047627860752621647&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ShamsAmin56&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ShamsAmin56&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/003.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/003_hu_8784fe7f2988eab8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/003_hu_78434c2c0300ee54.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 工业设计展示图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Core Subject: [{argument name=&amp;#34;reference&amp;#34; default=&amp;#34;use the uploaded image&amp;#34;}, keep the details, typography and structure locked 100%]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Layout &amp;amp; Composition: A {argument name=&amp;#34;presentation type&amp;#34; default=&amp;#34;professional industrial design presentation sheet&amp;#34;}. The image should be organized into a clean grid system.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Top Row: A 3x3 layout showing top-down flat lay views and close-up macro details of materials.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Middle Section: Three hero shots of the product standing upright in different color ways (Matte Black, Arctic White, and accented variants). The products should be slightly tilted to show depth and form.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Bottom Section: A dynamic &amp;#34;floating&amp;#34; composition featuring two products overlapping at opposing angles to showcase the front and side profiles simultaneously.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Environment &amp;amp; Lighting: Set against a minimalist, neutral studio gray background. Soft top-down lighting with realistic contact shadows. High-end product photography aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style &amp;amp; Finish: Matte textures, clean silhouettes, and sharp edges. Leave designated blank areas on the product surfaces for &amp;#34;Placeholder Branding&amp;#34; and &amp;#34;Graphic Mockups.&amp;#34; 4k resolution, Unreal Engine 5 render style, hyper-realistic, clean aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ec-メインビジュアル---奢华毛里乐福鞋生活方式照片&#34;&gt;EC メインビジュアル - 奢华毛里乐福鞋生活方式照片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/dynamicwangs/status/2047580984342925545&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/dynamicwangs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@dynamicwangs&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/004.webp&#34;
	width=&#34;1200&#34;
	height=&#34;900&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/004_hu_50c9da49cd05f85d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/004_hu_49bd32fdee48211d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 奢华毛里乐福鞋生活方式照片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A warm, editorial-style lifestyle product photo shot indoors from a low close-up angle, focused on a woman&amp;#39;s lower legs and feet as she tries on 1 pair of black leather backless loafers with tan faux-fur lining. One loafer is worn on the right foot and the left foot is bare, hovering just above the textured cream shag rug, while the second matching loafer lies on the rug in the lower left foreground. The shoes have smooth black leather uppers, a rounded almond toe, open mule-style heel, plush brown fur spilling out around the opening, and a small polished gold horsebit hardware detail across the vamp. The model wears cropped medium-blue denim jeans with a raw frayed hem. The setting is a cozy minimalist interior with a cream rug featuring 2 thin irregular black lines, a neutral wall, and a leaning rectangular mirror with a medium wood frame in the upper right background, softly reflecting the rug and part of the scene. Use soft natural window light, shallow depth of field, subtle film grain, realistic skin texture, muted beige and black palette, relaxed candid composition, premium fashion catalog mood, high detail, photorealistic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ec-メインビジュアル---大理石梳妆台香水广告&#34;&gt;EC メインビジュアル - 大理石梳妆台香水广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MiguelMaestroIA/status/2047555836252151831&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MiguelMaestroIA&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MiguelMaestroIA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/005.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/005_hu_5d7059f8adafa1a9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/005_hu_1be1808bff17b871.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 大理石梳妆台香水广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A luxury e-commerce advertising photo of a premium perfume bottle on a polished gray-and-white marble vanity, shot in a warm cinematic studio style with soft golden lighting, shallow depth of field, and elegant reflections. The composition is square and high-end, with the perfume bottle centered slightly right of frame and promotional text on the left. The bottle is a tall sculpted hourglass-shaped glass flacon with smoky transparent gray glass fading darker at the base, a glossy gold spherical cap, a gold collar engraved with fine branding, and a large metallic gold interlocking monogram on the front. Keep the branding-inspired feel but do not add extra products. In the foreground left, include 1 cut-crystal bowl with a gold rim, partially cropped. In the background right, include 1 brushed gold cylindrical vase holding 1 bouquet of soft white flowers, blurred. Behind the bottle, add 1 black marble rectangular box with subtle white veining and gold trim. In the lower right foreground, include 1 draped piece of champagne-colored satin fabric, softly out of focus. The background should be dark, luxurious, and softly blurred, with rich brown-black tones and a vertical shadowed panel on the left to support typography. Add elegant serif headline text on the upper left reading {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;Premium Perfume,&amp;#34;} in large warm beige letters, with a smaller serif subheading beneath reading {argument name=&amp;#34;tagline&amp;#34; default=&amp;#34;Subtlety and Elegance&amp;#34;}, plus a thin short gold horizontal line below the subheading. Place a small white logo in the top-right corner reading {argument name=&amp;#34;brand logo&amp;#34; default=&amp;#34;Pollo.ai&amp;#34;}. Emphasize premium materials, realistic glass refraction, gold metallic highlights, luxury product photography, refined composition, soft bokeh, and upscale beauty-ad aesthetics.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ec-メインビジュアル---微缩场景护肤品广告&#34;&gt;EC メインビジュアル - 微缩场景护肤品广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X/status/2048074514278563949&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Strength04_X&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/006.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/006_hu_7a1232684c10cd23.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/006_hu_a4c6ffc53a2a0509.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 微缩场景护肤品广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A hyper-realistic miniature diorama product advertisement featuring an oversized luxury skincare pump bottle labeled &amp;#34;LUXEVEIL Skin Science – Radiance Nourishing Body Lotion&amp;#34; in cream/beige with a polished gold pump top, placed on a circular platform. Tiny figurine construction workers dressed in yellow coveralls and white hard hats swarm around the bottle climbing scaffolding, painting the bottle with rollers, operating a tower crane, working near industrial tanks and pipework, and unloading a miniature flatbed truck. The scene includes metal scaffolding structures, industrial silos, orange traffic cones, wooden barricades, and storage barrels. The overall color palette is warm beige, cream, gold, and mustard yellow. Studio photography style with soft diffused lighting, no shadows, clean beige background. The concept metaphorically shows workers &amp;#34;crafting&amp;#34; or &amp;#34;building&amp;#34; the perfect lotion. Tilt-shift miniature aesthetic, ultra-detailed, commercial product photography, 8K resolution, photorealistic CGI render.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ec-メインビジュアル---中国传统艺术与瓷瓶&#34;&gt;EC メインビジュアル - 中国传统艺术与瓷瓶
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2048046906585280977&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/007.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/007_hu_f04a5b4d6381699.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/007_hu_d9ceaf33efae3a35.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 中国传统艺术与瓷瓶&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A scarf inspired by &amp;#39;A Thousand Li of Rivers and Mountains&amp;#39;, surrounded by Wang Ximeng&amp;#39;s blue-green landscape, with a silky texture and soft lighting.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A famille rose porcelain vase featuring Lady Yang Guifei enjoying flowers, with peony and butterfly patterns in the style of imperial kilns.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ec-メインビジュアル---高端游戏主板棚拍图&#34;&gt;EC メインビジュアル - 高端游戏主板棚拍图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/rojassartorio/status/2048019666816163867&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/rojassartorio&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@rojassartorio&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/008.webp&#34;
	width=&#34;1200&#34;
	height=&#34;900&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/008_hu_dfe6d504cd7e65ab.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/008_hu_f4c8963d2dfc27a9.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 高端游戏主板棚拍图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-end enthusiast ATX gaming motherboard product photo on a dark studio background, shown in a three-quarter top-down perspective angled from the lower left toward the upper right. The board is mostly matte black and gunmetal with sharp geometric armor plates, brushed metal textures, and subtle RGB edge lighting in blue, purple, and magenta. Feature an exposed modern Intel-style CPU socket near the upper center, 4 black DIMM memory slots on the right, large VRM heatsinks across the top and upper left, and multiple reinforced PCIe slots in the lower half. Include 3 major branded heatsink zones: a tall rear I/O shroud at upper left with an illuminated RGB eye logo and the text &amp;#34;MAXIMUS HERO&amp;#34;, a left-side chipset/slot armor piece with the text &amp;#34;SUPREMEFX&amp;#34;, and a large angular lower-right chipset cover with a silver ROG-style emblem plus a lower strip that reads &amp;#34;FOR THOSE WHO DARE&amp;#34;. Show detailed capacitors, headers, power connectors, debug display reading &amp;#34;88&amp;#34; at the top right, and a small round start button nearby. Ultra-detailed commercial product photography, crisp focus across the board, realistic reflections on metal, premium luxury tech aesthetic, dramatic low-key lighting, clean black seamless backdrop, no cables, no CPU, no RAM, no other objects.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ec-メインビジュアル---高端谷物粉广告板&#34;&gt;EC メインビジュアル - 高端谷物粉广告板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/WooGabriel76263/status/2047988112094101770&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/WooGabriel76263&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@WooGabriel76263&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/009.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/009_hu_1aee47064dac42f4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/009_hu_59cfbae4fc6e62d6.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 高端谷物粉广告板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;Chinese e-commerce product marketing board&amp;#34;,&amp;#34;product&amp;#34;:{&amp;#34;category&amp;#34;:&amp;#34;instant grain powder drink&amp;#34;,&amp;#34;brand&amp;#34;:&amp;#34;五谷磨房&amp;#34;,&amp;#34;name&amp;#34;:&amp;#34;核桃芝麻黑豆粉&amp;#34;,&amp;#34;packaging&amp;#34;:&amp;#34;matte black retail box with gold Chinese typography and a large swirling bowl graphic on the front, plus individual black sachets inside&amp;#34;,&amp;#34;net weight&amp;#34;:&amp;#34;320g (32g×10袋)&amp;#34;},&amp;#34;style&amp;#34;:{&amp;#34;overall&amp;#34;:&amp;#34;premium dark food advertising layout&amp;#34;,&amp;#34;color palette&amp;#34;:[&amp;#34;black&amp;#34;,&amp;#34;deep brown&amp;#34;,&amp;#34;warm gold&amp;#34;,&amp;#34;beige&amp;#34;,&amp;#34;walnut brown&amp;#34;],&amp;#34;lighting&amp;#34;:&amp;#34;dramatic studio lighting with glossy highlights and warm rim light&amp;#34;,&amp;#34;mood&amp;#34;:&amp;#34;luxurious, nourishing, healthy, appetizing&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;format&amp;#34;:&amp;#34;single tall composite board divided into 5 major sections plus a bottom storyboard table&amp;#34;,&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;主图/Main image&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top-left&amp;#34;,&amp;#34;count&amp;#34;:8,&amp;#34;labels&amp;#34;:[&amp;#34;五谷磨房&amp;#34;,&amp;#34;核桃芝麻黑豆粉&amp;#34;,&amp;#34;32g×10袋 独立包装&amp;#34;,&amp;#34;五黑谷物&amp;#34;,&amp;#34;香浓醇厚&amp;#34;,&amp;#34;独立小袋&amp;#34;,&amp;#34;即冲即饮&amp;#34;,&amp;#34;product box and drink cup&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;详情页/Details page&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top-right&amp;#34;,&amp;#34;count&amp;#34;:5,&amp;#34;labels&amp;#34;:[&amp;#34;黑芝麻&amp;#34;,&amp;#34;黑豆&amp;#34;,&amp;#34;黑米&amp;#34;,&amp;#34;核桃&amp;#34;,&amp;#34;谷物粉&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;香浓细腻 顺滑好喝&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;mid-right&amp;#34;,&amp;#34;count&amp;#34;:4,&amp;#34;labels&amp;#34;:[&amp;#34;一冲即饮 营养美味&amp;#34;,&amp;#34;粉质细腻 Fine powder&amp;#34;,&amp;#34;浓香醇厚 Rich &amp;amp; Smooth&amp;#34;,&amp;#34;营养代餐 Nutritious&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;冲泡方式 HOW TO MAKE&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;mid-left lower&amp;#34;,&amp;#34;count&amp;#34;:3,&amp;#34;labels&amp;#34;:[&amp;#34;1 倒入一袋粉(32g)&amp;#34;,&amp;#34;2 加入200ml 热水或牛奶&amp;#34;,&amp;#34;3 搅拌均匀 即可享用&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;一杯好谷物 轻松好生活&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;lower-left&amp;#34;,&amp;#34;count&amp;#34;:4,&amp;#34;labels&amp;#34;:[&amp;#34;元气早餐&amp;#34;,&amp;#34;办公室下午茶&amp;#34;,&amp;#34;健身代餐&amp;#34;,&amp;#34;睡前暖饮&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;独立小袋 随身携带&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;lower-right&amp;#34;,&amp;#34;count&amp;#34;:3,&amp;#34;labels&amp;#34;:[&amp;#34;独立小袋 便携卫生&amp;#34;,&amp;#34;锁住新鲜 防潮防氧化&amp;#34;,&amp;#34;1袋1杯 精准份量&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;视频推广广告 seedance 2.0 视频提示词 + 分镜头脚本&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom full width&amp;#34;,&amp;#34;count&amp;#34;:7,&amp;#34;labels&amp;#34;:[&amp;#34;镜头1 开场-产品展示&amp;#34;,&amp;#34;镜头2 食材特写&amp;#34;,&amp;#34;镜头3 倒粉入杯&amp;#34;,&amp;#34;镜头4 冲泡搅拌&amp;#34;,&amp;#34;镜头5 饮用场景&amp;#34;,&amp;#34;镜头6 产品卖点&amp;#34;,&amp;#34;镜头7 结尾口号&amp;#34;]}],&amp;#34;grid&amp;#34;:&amp;#34;top area split into left main image and right detail page; middle area split into preparation guide and feature panel; lower area split into lifestyle scenarios and sachet carry section; bottom is a full-width tabular storyboard&amp;#34;},&amp;#34;scene_elements&amp;#34;:{&amp;#34;ingredients&amp;#34;:[{&amp;#34;name&amp;#34;:&amp;#34;black sesame&amp;#34;,&amp;#34;form&amp;#34;:&amp;#34;small black seeds in a round bowl&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;black beans&amp;#34;,&amp;#34;form&amp;#34;:&amp;#34;glossy whole beans in a round bowl&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;black rice&amp;#34;,&amp;#34;form&amp;#34;:&amp;#34;dark long grains in a round bowl&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;walnuts&amp;#34;,&amp;#34;form&amp;#34;:&amp;#34;walnut halves in a round bowl&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;grain powder&amp;#34;,&amp;#34;form&amp;#34;:&amp;#34;light beige powder in a round bowl&amp;#34;}],&amp;#34;serving&amp;#34;:{&amp;#34;drink&amp;#34;:&amp;#34;thick gray-brown sesame walnut bean beverage with smooth surface swirl&amp;#34;,&amp;#34;cup&amp;#34;:&amp;#34;transparent glass cup with handle&amp;#34;,&amp;#34;utensil&amp;#34;:&amp;#34;metal spoon stirring or resting inside drink&amp;#34;},&amp;#34;supporting props&amp;#34;:[&amp;#34;walnuts on table&amp;#34;,&amp;#34;scattered black beans&amp;#34;,&amp;#34;grain stalks or wheat stems&amp;#34;,&amp;#34;dark tabletop&amp;#34;,&amp;#34;ingredient bowls&amp;#34;,&amp;#34;open package showing 5 visible sachets&amp;#34;]},&amp;#34;text_treatment&amp;#34;:{&amp;#34;headline_font&amp;#34;:&amp;#34;bold elegant Chinese display type in metallic gold&amp;#34;,&amp;#34;body_font&amp;#34;:&amp;#34;clean sans serif Chinese with occasional English subtitles&amp;#34;,&amp;#34;accent&amp;#34;:&amp;#34;thin gold divider lines and circular ingredient frames&amp;#34;},&amp;#34;camera_and_composition&amp;#34;:{&amp;#34;product_shots&amp;#34;:&amp;#34;front-facing hero box, angled sachet display box, close-up beverage macro&amp;#34;,&amp;#34;food_photography&amp;#34;:&amp;#34;high-detail commercial food styling, shallow depth of field, crisp texture emphasis&amp;#34;,&amp;#34;aspect_ratio&amp;#34;:&amp;#34;portrait, approximately 9:16&amp;#34;},&amp;#34;quality&amp;#34;:&amp;#34;ultra-detailed commercial design mockup, polished e-commerce key visual plus details page plus ad storyboard, 4K&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ec-メインビジュアル---耳机电商信息图&#34;&gt;EC メインビジュアル - 耳机电商信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07/status/2047981795552153860&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SPEEDAI07&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/010.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/010_hu_cc55fe000899aae1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/010_hu_eb8189134e486547.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 耳机电商信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-impact e-commerce infographic for &amp;#34;{argument name=&amp;#34;product&amp;#34; default=&amp;#34;Apple Pods Pro 3&amp;#34;}&amp;#34; wireless earbuds.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Foreground: An extreme close-up of a hand holding an open glossy white wireless earbud charging case toward the camera. Inside the case are two sleek white earbuds with black speaker accents. A small glowing green LED indicator is visible on the front of the case. The hand and case have slight macro-lens depth blur for realism.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mid-ground: A {argument name=&amp;#34;model&amp;#34; default=&amp;#34;confident young woman&amp;#34;} with tan skin, brown eyes, and dark hair tied in a messy bun. She has natural makeup with a dewy glow. She is wearing a plain {argument name=&amp;#34;clothing&amp;#34; default=&amp;#34;yellow athletic t-shirt&amp;#34;} (no logos). One white earbud is in her ear. She is looking directly at the camera with a subtle, confident expression.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Background: Clean soft gray gradient studio backdrop with shallow depth of field. Diagonal rainbow prism lens flares and soft light leaks across the scene. Several blurred floating white earbuds in the background for depth and motion.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: Soft professional studio lighting with glossy highlights on the product, subtle rim light on the model, high dynamic range.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Typography (modern sans-serif, white):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Top center (behind model): Large bold text “AIRPODS”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Top right: “Apple Pods Pro 3”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mid-left: “Premium sound and noise cancellation”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mid-right: Large bold “30” with “hours of battery life”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Bottom-right: Large bold “1” with “year warranty”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style: Ultra-realistic, commercial product photography, 8k resolution, sharp focus on product case, shallow depth of field, vibrant yet clean color palette, premium advertising aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ec-メインビジュアル---可持续-t-恤种植吊牌广告&#34;&gt;EC メインビジュアル - 可持续 T 恤种植吊牌广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Diplomeme/status/2047957339974828092&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Diplomeme&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Diplomeme&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/011.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/011_hu_2738b20eb2a75528.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/011_hu_de172573b08c1c84.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 可持续 T 恤种植吊牌广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A premium eco-conscious fashion advertisement, shot as a refined editorial product photo. A single off-white or natural cream crew-neck T-shirt hangs on a smooth wooden hanger with a black metal hook, placed against a lush wall of dense green leaves and climbing vines. The hanger has a small minimalist brand monogram engraved near the neck. The shirt is shown from the upper torso down to part of the hem, slightly angled, with soft natural folds and high-quality cotton texture. Printed inside the collar is a minimalist brand mark and the text &amp;#34;JUGGERKNOT ORIGINALS&amp;#34;. Hanging from the neckline is 1 rectangular recycled-paper seed tag tied with rustic brown twine; the tag reads &amp;#34;Tulsi&amp;#34; and &amp;#34;Plantable Seed Tag&amp;#34; with a tiny sprouting seed detail near the bottom. From the tag, 1 real tulsi plant stem grows upward across the front of the shirt, with several fresh green leaves, visually demonstrating that the tag is plantable. Add a small fine-label annotation near the tag reading &amp;#34;TULSI PLANTABLE SEED TAG&amp;#34;. On the right side, large elegant white serif typography says {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;Plant it.&amp;#34;}. Beneath it, place 3 stacked lines of narrow uppercase sans-serif copy: &amp;#34;WEAR IT.&amp;#34;, &amp;#34;PLANT IT.&amp;#34;, and &amp;#34;GROW WITH IT.&amp;#34;. At the lower left, add the brand name in spaced uppercase serif text: {argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;JUGGERKNOT ORIGINALS&amp;#34;}, with a thin horizontal line above it. At the lower right, add 3 lines of small uppercase sans-serif text: &amp;#34;FSC® CERTIFIED PACKAGING.&amp;#34;, &amp;#34;ZERO SYNTHETIC FIBRE&amp;#34;, and &amp;#34;BACKED BY ZERODHA.&amp;#34;. Use soft diffused daylight, shallow depth of field, moody green-and-cream color grading, luxury sustainable-brand aesthetics, clean composition, vertical poster layout, subtle shadows, and a calm organic atmosphere. Keep the design minimal, premium, and photorealistic, with the shirt occupying the left half and the typography balanced on the right.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ec-メインビジュアル---优雅化妆品海报提示词&#34;&gt;EC メインビジュアル - 优雅化妆品海报提示词
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Adam38363368936/status/2047917266361360682&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Adam38363368936&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Adam38363368936&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/012.webp&#34;
	width=&#34;1192&#34;
	height=&#34;1136&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/012_hu_801114ffae558d17.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/012_hu_a8bcdc57dbe93eef.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 优雅化妆品海报提示词&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;104&#34;
		data-flex-basis=&#34;251px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;An image in a {argument name=&amp;#34;reference style&amp;#34; default=&amp;#34;similar style&amp;#34;}, a product image for {argument name=&amp;#34;product&amp;#34; default=&amp;#34;lipstick&amp;#34;}, requiring color coordination and a grand aesthetic in a {argument name=&amp;#34;style&amp;#34; default=&amp;#34;poster style&amp;#34;}, with language changed to Simplified Chinese.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ec-メインビジュアル---极简产品广告pure-crunch&#34;&gt;EC メインビジュアル - 极简产品广告：PURE CRUNCH
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X/status/2047917220165231011&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Strength04_X&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/013.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/013_hu_dde28b1797efbf91.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/013_hu_344e164be8d1104e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 极简产品广告：PURE CRUNCH&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A minimalist product advertisement with a {argument name=&amp;#34;product&amp;#34; default=&amp;#34;fried chicken bucket&amp;#34;} placed on a clean white podium.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Background: soft gradient ({argument name=&amp;#34;background gradient&amp;#34; default=&amp;#34;light cream to white&amp;#34;}), clean studio.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: soft diffused, premium Apple-style.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Typography (center): “{argument name=&amp;#34;headline&amp;#34; default=&amp;#34;PURE CRUNCH&amp;#34;}”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Small text below: “Nothing extra. Just perfection.”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style: ultra clean, editorial minimal, high-end branding, 8K.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ec-メインビジュアル---浅蓝-crocs-时尚广告&#34;&gt;EC メインビジュアル - 浅蓝 Crocs 时尚广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07/status/2047907058079650035&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SPEEDAI07&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/014.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/014_hu_f4086b06d0c96f5b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/014_hu_13b9e9394ec702f2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 浅蓝 Crocs 时尚广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-end studio advertising poster for {argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;crocs&amp;#34;}, in a monochrome pastel blue and white color palette, with a glossy reflective floor and a soft sky-blue backdrop. The background is dominated by the word {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;CROCS&amp;#34;} in gigantic bold white condensed sans-serif letters spanning nearly the full height of the image. In the top-right corner, add small white text reading &amp;#34;Designed with ChatGPT&amp;#34;. Feature 3 adult women with shoulder-length wavy light brown to dark blonde hair, all wearing loose oversized white long-sleeve tops and flowing white wide-leg pants, styled as minimalist fashion models with relaxed neutral expressions. Their faces are intentionally obscured or blurred. One model reclines against an enormous upright white clog shoe on the left side, one model sits casually on top of a giant white clog on the upper right, and one model lounges on the floor at the lower right, leaning back on one arm while seated partly on a glossy blue sphere. Include 2 oversized white clog shoes as hero props: one standing vertically on the left showing the sole and side profile, and one angled on blue crystalline blocks at center-right showing the upper and toe box. Both clogs are classic foam slip-on style with perforation holes, chunky tread, heel straps, and circular logo rivets. The center-right clog is decorated with exactly 8 visible charms pinned to the upper: a blue-green iridescent round charm, a white daisy with yellow center, a black-and-white round emblem near the strap, a small &amp;#34;CROCS&amp;#34; word charm, a dark flower, a peace-hand sign, an orange smiley face, a white cloud, and an orange flower. Scatter exactly 7 glossy floating or grounded blue spheres of varying sizes around the set: one large sphere behind the left model, one medium sphere floating near center, one medium sphere at bottom left foreground, one medium sphere used as a seat under the lower-right model, one small sphere near the upper left, and 2 additional blue spheres integrated into the composition. Add translucent sculptural gel-like forms at the far left and far right edges, plus angular blue crystal-like rocks beneath the right shoe. At the bottom center, place white promotional copy in a clean sans-serif font: {argument name=&amp;#34;tagline line 1&amp;#34; default=&amp;#34;Made for comfort, worn for confidence.&amp;#34;} on the first line and {argument name=&amp;#34;tagline line 2&amp;#34; default=&amp;#34;Because life feels better when your feet stop complaining.&amp;#34;} on the second line. Beneath that, show 4 minimalist feature icons with labels in white: &amp;#34;ICONIC COMFORT&amp;#34;, &amp;#34;LIGHTWEIGHT&amp;#34;, &amp;#34;EASY TO CLEAN&amp;#34;, and &amp;#34;UNIQUELY YOU&amp;#34;. Place the {argument name=&amp;#34;logo text&amp;#34; default=&amp;#34;crocs&amp;#34;} logo in bold lowercase white at the bottom center with a small trademark symbol. The overall style should feel like a premium surreal fashion campaign, clean editorial lighting, soft shadows, glossy textures, airy composition, and modern lifestyle product advertising.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ec-メインビジュアル---九宫格产品-tvc-分镜&#34;&gt;EC メインビジュアル - 九宫格产品 TVC 分镜
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Magncsans/status/2047876253898903594&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Magncsans&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Magncsans&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/015.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/015_hu_d4d090f6211890cf.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/015_hu_67b26eab7b29b5cd.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商主图 - 九宫格产品 TVC 分镜&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Using the provided reference image, transform the single casual product photo into a polished e-commerce TVC storyboard board for a {argument name=&amp;#34;video duration&amp;#34; default=&amp;#34;15-second&amp;#34;} ad in a {argument name=&amp;#34;aspect ratio&amp;#34; default=&amp;#34;9:16&amp;#34;} vertical format, presented as a 9-panel grid. Keep the same blue-and-white ceramic ashtray as the product base, but restage it across cinematic advertising shots with warm premium lighting, shallow depth of field, and a refined lifestyle desktop environment. Add a dark storyboard layout with Chinese titles and timing for each panel. Include exactly 9 scenes: 1) environment-establishing wide shot with desk, books, window, and the product placed in context; 2) hero product medium shot on the table; 3) extreme close-up of the blue floral craftsmanship pattern; 4) use case showing a hand placing a cigarette into the ashtray with visible smoke; 5) top-down capacity display showing multiple cigarette butts inside; 6) cleaning scene under running water in a sink with a hand holding the product; 7) bottom-detail close-up showing the underside and anti-slip pads; 8) mood/lifestyle scene at night with the product on a desk, smoke rising, and ambient lamp light; 9) brand closing frame with the product as the hero plus Chinese marketing text. Add the overall header text “产品TVC分镜脚本(15秒 / 9:16竖屏 / 9宫格)” and a product subtitle naming it {argument name=&amp;#34;product name&amp;#34; default=&amp;#34;青花瓷烟灰缸&amp;#34;}. Give each of the 9 panels a Chinese scene title and timestamp, plus small descriptive Chinese copy beneath each image in the style of a professional commercial shot list. Use premium, realistic commercial photography throughout, consistent product identity, elegant Chinese aesthetic, and a clean high-end storyboard presentation.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;电商直播-ui-样机&#34;&gt;电商直播 UI 样机
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sjbbxhz/status/2045684734714380687&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sjbbxhz&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sjbbxhz&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/016.webp&#34;
	width=&#34;1093&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/016_hu_ee2c217cb49a7e0b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/016_hu_891113257a7a7fc5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电商直播 UI 样机&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;91&#34;
		data-flex-basis=&#34;218px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;live stream UI mockup&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;subject&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;description&amp;#34;: &amp;#34;portrait of {argument name=\&amp;#34;host name\&amp;#34; default=\&amp;#34;Elon Musk\&amp;#34;}, smiling, wearing a black t-shirt with a white technical schematic graphic&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;background&amp;#34;: &amp;#34;left side shows a screen with &amp;#39;{argument name=\&amp;#34;left background logo\&amp;#34; default=\&amp;#34;SPACEX\&amp;#34;}&amp;#39; text, right side shows a red &amp;#39;{argument name=\&amp;#34;right background logo\&amp;#34; default=\&amp;#34;Tesla T logo\&amp;#34;}&amp;#39; and a dark car&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;ui_overlay&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;top_header&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;host_info&amp;#34;: &amp;#34;avatar, name &amp;#39;{argument name=\&amp;#34;host name\&amp;#34; default=\&amp;#34;Elon Musk\&amp;#34;}&amp;#39;, subtext &amp;#39;55.6万本场点赞&amp;#39;, red &amp;#39;关注&amp;#39; button&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;rank_badge&amp;#34;: &amp;#34;gold coin icon with &amp;#39;全站第1名&amp;#39;&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;viewer_stats&amp;#34;: &amp;#34;3 top viewer avatars with &amp;#39;12.3w&amp;#39;, &amp;#39;8.6w&amp;#39;, &amp;#39;5.7w&amp;#39;, total &amp;#39;68.7万&amp;#39;, &amp;#39;X&amp;#39; close button&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;right_links&amp;#34;: &amp;#34;&amp;#39;更多直播 &amp;gt;&amp;#39;, &amp;#39;礼物展馆 0/24&amp;#39; with blue &amp;#39;经典&amp;#39; tag&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;mid_left_gifts&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;count&amp;#34;: 2,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;items&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;avatar &amp;#39;科技爱好者&amp;#39;, &amp;#39;送小心心&amp;#39;, heart icon x 1314&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;avatar &amp;#39;星辰大海&amp;#39;, &amp;#39;送火箭&amp;#39;, rocket icon x 666&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;bottom_left_chat&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;system_message&amp;#34;: &amp;#34;level 37 badge &amp;#39;宇宙漫游者 加入了直播间&amp;#39;&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;message_count&amp;#34;: 7,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;messages&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;小火箭: 马斯克!未来可期!🚀&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;future: 特斯拉Model 2什么时候出?&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;星空梦想家: SpaceX今年能上火星吗?&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;AI探索者: Neuralink进展如何?&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;帅气的网友: 马总好!&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;Mars: 第一次来你的直播,超激动!&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;用户123: 讲讲AI吧,会取代人类吗?&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;bottom_right_product_card&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;hot_tag&amp;#34;: &amp;#34;orange &amp;#39;热卖 x 1888&amp;#39;&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;image&amp;#34;: &amp;#34;Tesla Cybertruck&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;title&amp;#34;: &amp;#34;{argument name=\&amp;#34;product name\&amp;#34; default=\&amp;#34;特斯拉Cybertruck 电动皮卡\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;price&amp;#34;: &amp;#34;{argument name=\&amp;#34;product price\&amp;#34; default=\&amp;#34;¥ 1,618,000\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;button&amp;#34;: &amp;#34;red &amp;#39;抢&amp;#39; button&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;floating_animation&amp;#34;: &amp;#34;translucent hearts floating up the right edge&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;bottom_bar&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;input_field&amp;#34;: &amp;#34;&amp;#39;说点什么...&amp;#39;&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;icons&amp;#34;: [&amp;#34;smiley face&amp;#34;, &amp;#34;three dots&amp;#34;, &amp;#34;shopping cart&amp;#34;, &amp;#34;gift box&amp;#34;, &amp;#34;share&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;高端产品棚拍模板&#34;&gt;高端产品棚拍模板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/PrometheanAIX/status/2049141839882522707&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/PrometheanAIX&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@PrometheanAIX&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/017.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/017_hu_26d0e5c826e59305.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/017_hu_fa7e495c6ca472c4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;高端产品棚拍模板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a premium product studio image of a [PRODUCT] for [BRAND], designed in line with [BRAND REFERENCE]. Show the [PRODUCT] floating against a clean light gray to soft white gradient background with a minimal high-end tech aesthetic. The [PRODUCT] should feel sleek, modern, refined, and premium, with subtle illuminated accents in [LIGHTING COLOR]. Use a three-quarter front angle so both earcups are visible, with detailed industrial design elements. Include the [BRAND] name cleanly on the product. Lighting should be soft, controlled, and editorial, with crisp highlights, soft shadows, and a subtle colored rim light or glow in [LIGHTING COLOR]. Emphasize material realism and clean geometric forms. Keep the background uncluttered and minimal. No extra props, no people, no text overlays, no packaging, and no distracting elements. Focus entirely on the [PRODUCT] as the hero product.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;高端食品摄影模板&#34;&gt;高端食品摄影模板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/PrometheanAIX/status/2049122713722106161&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/PrometheanAIX&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@PrometheanAIX&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/018.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/018_hu_d9cf8eee6ceebcb6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/018_hu_86ce7cfe747e2670.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;高端食品摄影模板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a square [ASPECT RATIO] premium food photography image of a steaming [FOOD] served in a dark black stone bowl or cast-iron skillet on a wooden board. The dish should look hot, glossy, spicy, and freshly served, with bite-sized pieces of browned protein, dried red chilies, green scallions, white onion, garlic, chili flakes, and visible Sichuan peppercorns coated in a deep red, oily Szechuan sauce. Use a slightly elevated close-up camera angle with shallow depth of field. Make the food the clear hero of the image, centered and richly detailed. Add visible steam rising naturally from the dish. Surround the bowl with subtle restaurant-style props like a dark red tray, scattered dried chilies, peppercorns, a small sauce bowl, or a blurred teapot in the background. Lighting should feel warm, moody, and editorial, like a high-end restaurant food shoot. Emphasize realistic textures and keep the image appetizing, realistic, cinematic, and polished. Avoid text, logos, hands, people, utensils covering the food, cartoon styling, fake plastic textures, excessive symmetry, or an overly clean stock-photo look.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;汉堡主视觉与九宫格广告分镜&#34;&gt;汉堡主视觉与九宫格广告分镜
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Gdgtify/status/2049449869530775877&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Gdgtify&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Gdgtify&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/019.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/019_hu_b07edc1e2ab93dae.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/019_hu_7eadfa0842e62977.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;汉堡主视觉与九宫格广告分镜&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Prompt 1: Create a cinematic hero image of a gourmet cheeseburger on a dark stone surface with glossy brioche bun, melted cheese, crisp lettuce, tomato, grilled patty, sauce, realistic texture, appetizing steam, warm side light, shallow depth of field, premium food commercial style, no text/logos/watermark.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Prompt 2: Create a 9-cell hybrid keyframe-to-transition storyboard sheet for a 15-second gourmet burger ad, moving from empty surface to ingredient assembly to final macro hero shot. Use large S cells and smaller T cells, motion arrows, ghosted ingredient positions, steam, sauce trails, and camera push-in icons. Style: premium food commercial, warm lighting, rich texture, appetizing, cinematic, minimal labels only. No logos, no watermark.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;カテゴリナビ: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;総目次&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;EC メインビジュアル&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;広告クリエイティブ&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;ポートレート写真&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;ポスターイラスト&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;キャラクターデザイン&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI とソーシャルメディア&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;元リポジトリリンク&#34;&gt;元リポジトリリンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;プロジェクトホーム&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/ecommerce.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元カテゴリファイル&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT-Image 2 プロンプトライブラリ：EC、ポスター、ポートレート、UI 総まとめ</title>
        <link>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/</guid>
        <description>&lt;p&gt;これは GPT Image 2 プロンプト事例集の索引です。元の事例数が多く、1 ページにまとめると長くなりすぎるため、内部カテゴリごとに複数のページへ分割しています。&lt;/p&gt;
&lt;h2 id=&#34;カテゴリナビ&#34;&gt;カテゴリナビ
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;カテゴリ&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;事例数&lt;/th&gt;
          &lt;th&gt;ページ&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;EC メインビジュアル&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;EC メインビジュアル事例&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;広告クリエイティブ&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;19&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;広告クリエイティブ事例&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ポートレート写真&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;55&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;ポートレート写真事例&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ポスターイラスト&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;101&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;ポスターイラスト事例&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;キャラクターデザイン&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;キャラクターデザイン事例&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;UI とソーシャルメディア&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;56&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI とソーシャルメディア事例&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;比較とコミュニティ事例&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;元リポジトリリンク&#34;&gt;元リポジトリリンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;プロジェクトホーム&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/ecommerce.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EC メインビジュアル事例&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/ad-creative.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;広告クリエイティブ事例&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/portrait.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ポートレート写真事例&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/poster.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ポスターイラスト事例&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/character.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;キャラクターデザイン事例&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/ui.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;UI とソーシャルメディア事例&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/comparison.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT-Image 2 プロンプトライブラリ：UI とソーシャルメディア事例</title>
        <link>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/</guid>
        <description>&lt;p&gt;このページでは &lt;code&gt;UI とソーシャルメディア&lt;/code&gt; カテゴリの 56 件の事例を収録しています。各項目には元事例リンク、作者、生成画像、完全なプロンプトを残しています。&lt;/p&gt;
&lt;p&gt;カテゴリナビ: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;総目次&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;EC メインビジュアル&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;広告クリエイティブ&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;ポートレート写真&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;ポスターイラスト&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;キャラクターデザイン&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI とソーシャルメディア&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;ui-とソーシャルメディア&#34;&gt;UI とソーシャルメディア
&lt;/h2&gt;&lt;h3 id=&#34;一句提示词生成-ui-设计&#34;&gt;一句提示词生成 UI 设计
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/austinit/status/2044968740782272596&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/austinit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@austinit&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/000.webp&#34;
	width=&#34;983&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/000_hu_a0509e119117b487.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/000_hu_fee7ad21aafb346f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;一句提示词生成 UI 设计&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;81&#34;
		data-flex-basis=&#34;196px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;用这种风格帮我生成一套UI设计系统，包含网页、移动端、卡片、控件、按钮 以及其它
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;业余-iphone-keynote-抓拍&#34;&gt;业余 iPhone Keynote 抓拍
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/patrickassale/status/2044687244368441742&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/patrickassale&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@patrickassale&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/001.webp&#34;
	width=&#34;1200&#34;
	height=&#34;900&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/001_hu_6a976169b655751e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/001_hu_6146ba205d59f349.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;业余 iPhone Keynote 抓拍&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Amateur iPhone photo at Apple Park during the iPhone 20 keynote, Tim Cook presenting on stage. Shot from the crowd at a distance
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;手写笔记本照片&#34;&gt;手写笔记本照片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/patrickassale/status/2044569086013718958&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/patrickassale&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@patrickassale&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/002.webp&#34;
	width=&#34;1200&#34;
	height=&#34;900&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/002_hu_a790d3353f5c70e9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/002_hu_67826a1ed311f24.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;手写笔记本照片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Amateur photo of an open notebook lying flat, filled with handwritten notes in black ballpoint pen. The handwriting is casual and slightly messy, like personnal notes, natural imperfections, crossed out words, underlined headings. Shot from slightly above, natural daylight from a window, no flash. Casual desk setting, shot on iPhone
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;宋代社交媒体信息流&#34;&gt;宋代社交媒体信息流
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Panda20230902/status/2045385588065313057&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Panda20230902&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Panda20230902&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/003.webp&#34;
	width=&#34;400&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/003_hu_6467411051bf9ba.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/003_hu_7433fbf98c017d2c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;宋代社交媒体信息流&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;33&#34;
		data-flex-basis=&#34;80px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;宋朝人的朋友圈&amp;#34;/&amp;#34;SONG DYNASTY SOCIAL MEDIA FEED&amp;#34;，古今穿越幽默融合界面设计风格，画面模拟手机社交媒体界面，但内容全部是宋朝场景头像是宋代文人画像，用户名&amp;#34;苏东坡SuShi_Official&amp;#34;，发布内容&amp;#34;刚到黄州，被贬了但心情还行。今天自己做了东坡肉，味道绝了，附菜谱：&amp;#34;，配图为工笔画风格的东坡肉特写，点赞列表&amp;#34;黄庭坚、秦观、佛印等126人&amp;#34;，评论区&amp;#34;王安石：呵呵&amp;#34;&amp;#34;司马光：还是那个味道&amp;#34;，界面元素如点赞图标用宋代花纹替代，状态栏显示&amp;#34;大宋移动 5G&amp;#34;和&amp;#34;元丰三年&amp;#34;，配色为手机深色模式搭配宋代雅致色调，历史与社交媒体的趣味碰撞杰作
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;多平台内容截图&#34;&gt;多平台内容截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2045373105041007013&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/004.webp&#34;
	width=&#34;555&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/004_hu_e0e9a2612bd3b890.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/004_hu_4f5213e6702ea897.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;多平台内容截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;46&#34;
		data-flex-basis=&#34;111px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1、生成视频号内容截图，主题：中老年不要盲目催婚，iPhone尺寸
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2、生成抖音内容截图，主题：跟上AI浪潮9.9包教会，iPhone尺寸
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3、生成小红书内容截图，主题：精致女孩背后都有网贷，iPhone尺寸
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4、生成快手内容截图：主题：直播离婚预告，iPhone尺寸
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;刘亦菲抖音直播截图&#34;&gt;刘亦菲抖音直播截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/alanblogsooo/status/2044784762594918516&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/alanblogsooo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@alanblogsooo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/005.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/005_hu_933d147f1c4bffb3.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/005_hu_52d31acefd4caf39.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;刘亦菲抖音直播截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 的图片比例，生成一张抖音直播的截图，里面是 刘亦菲 在直播，刘亦菲 手里拿着牌子，牌子里写着 今晚直播，欢迎来参亦菲畅聊！
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;太祖李成桂的-x-主页&#34;&gt;太祖李成桂的 X 主页
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SKA_Neotype/status/2044637900978217334&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SKA_Neotype&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SKA_Neotype&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/006.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/006_hu_2b6cce52a6aee798.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/006_hu_c3e9bc7604f9c77a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;太祖李成桂的 X 主页&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;태조 이성계의 X  페이지(위화도 회군을 벌이기 직전- 최영 장군과 서로 디스하는 내용이 담긴 게시글들)을 만들어 주세요.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;风格转-ui-设计系统&#34;&gt;风格转 UI 设计系统
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/stark_nico99/status/2045836554451706125&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/stark_nico99&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@stark_nico99&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/007.webp&#34;
	width=&#34;1199&#34;
	height=&#34;1312&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/007_hu_7734ca6292c1e429.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/007_hu_6901a3a91a9b4f0a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;风格转 UI 设计系统&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;91&#34;
		data-flex-basis=&#34;219px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;用这种风格帮我生成一套UI设计系统，包含网页、移动端、卡片、控件、按钮以及其它。把这套视觉风格作为参考生成网页。我尝试了宇宙、飞行、蝴蝶主题。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;桃太郎讲解幻灯片&#34;&gt;桃太郎讲解幻灯片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/yammamon/status/2045778624092254603&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/yammamon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@yammamon&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/008.webp&#34;
	width=&#34;1280&#34;
	height=&#34;853&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/008_hu_bf54d5d0ed5b99e4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/008_hu_2f206b995e83ec1c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;桃太郎讲解幻灯片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;「いらすとや」のほのぼのとした雰囲気と、「霞ヶ関スライド」の圧倒的な情報密度を融合させた、桃太郎の解説スライド（ポンチ絵）を作成して
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;博物馆风汉服拆解信息图&#34;&gt;博物馆风汉服拆解信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2045504669401653414&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/009.webp&#34;
	width=&#34;1074&#34;
	height=&#34;1280&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/009_hu_d938583209d8ce73.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/009_hu_c0a7a9e3e48dbd34.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;博物馆风汉服拆解信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;83&#34;
		data-flex-basis=&#34;201px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请根据【主题】自动生成一张“博物馆图鉴式中文拆解信息图”。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;要求整张图兼具真实写实主视觉、结构拆解、中文标注、材质说明、纹样寓意、色彩含义和核心特征总结。你需要根据【主题】自动判断最合适的主体对象、服饰体系、器物结构、时代风格、关键部件、材质工艺、颜色方案与版式结构，用户无需再提供其他信息。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整体风格应为：国家博物馆展板、历史服饰图鉴、文博专题信息图，而不是普通海报、古风写真、电商详情页或动漫插画。背景采用米白、绢纸白、浅茶色等纸张质感，整体高级、克制、专业、可收藏。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;版式固定为：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 顶部：中文主标题 + 副标题 + 导语
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 左侧：结构拆解区，中文引线标注关键部件，并配局部特写
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 右上：材质 / 工艺 / 质感区，展示真实纹理小样并附说明
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 右中：纹样 / 色彩 / 寓意区，展示主色板、纹样样本和文化解释
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 底部：穿着顺序 / 构成流程图 + 核心特征总结
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;若主题适合人物展示，则以真实人物全身站姿为中央主体；若更适合器物或单体结构，则改为中心主体拆解图，但整体仍保持完整中文信息图形式。所有文字必须为简体中文，清晰、规整、可读，不要乱码、错字、英文或拼音。重点突出真实结构、材质差异、文化说明与图鉴气质。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;避免：海报感、影楼感、电商感、动漫感、cosplay感、乱标注、错结构、糊字、假材质、过度装饰。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;手相诊断报告&#34;&gt;手相诊断报告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/agi_aibusi/status/2046530764871696750&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/agi_aibusi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@agi_aibusi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/010.webp&#34;
	width=&#34;701&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/010_hu_55204af3273c2953.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/010_hu_79f3fe6eb5476e32.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;手相诊断报告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;58&#34;
		data-flex-basis=&#34;140px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPT-image-2でこの手相を診断して詳細な鑑定書を作って
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生命線・知能線・感情線・運命線・太陽線・財運線・結婚線を、線の形状・濃淡・枝分かれ・起点終点まで分析すること。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;助言を重点的に高品質な占い鑑定書にまとめること。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;书法字帖页&#34;&gt;书法字帖页
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2046510310253539764&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/011.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/011_hu_5717a7c1927bd9b1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/011_hu_d59e3a2e0bd44d92.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;书法字帖页&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生成一张【字体】书法临摹字帖
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;唐吉诃德促销-pop-海报&#34;&gt;唐吉诃德促销 POP 海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/loglogrog/status/2046437230127034774&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/loglogrog&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@loglogrog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/012.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/012_hu_4b3a5e93f98ba7ab.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/012_hu_ff03b8952b0ad690.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;唐吉诃德促销 POP 海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPT Image 2を使って、OpenClawの情報を調べてドンキの広告ポップ風に実際のドンキに貼っているような感じで画像生成してください
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;日式抽卡游戏界面&#34;&gt;日式抽卡游戏界面
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/the_wheel_2024/status/2046519658166317160&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/the_wheel_2024&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@the_wheel_2024&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/013.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/013_hu_d74bbc1c76c72374.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/013_hu_bbfad2e020a69830.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;日式抽卡游戏界面&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;日本のソシャゲのガチャ画面を生成して、
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;elon-musk-抖音直播截图&#34;&gt;Elon Musk 抖音直播截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010/status/2046501587762188535&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Shinning1010&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/014.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/014_hu_f74afb08f82e0e53.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/014_hu_e335904cbedf2c0.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Elon Musk 抖音直播截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A 9:16 vertical version, high-detail realistic style Chinese TikTok live screenshot, Elon Musk is talking to the mobile phone camera in the live broadcast room, excited, smiling, and the live atmosphere is warm and real. He held a white handwritten sign in one hand, which clearly said: &amp;#34;Thank you Shinning&amp;#34;. There are obvious Chinese TikTok interface elements in the live broadcast screen, including likes, comments and share icons arranged vertically on the right, scrolling Chinese bullet screens and interactive comments below, and the &amp;#34;live broadcast&amp;#34; logo at the top, which looks like a real mobile phone screenshot. There is an eye-catching gift prompt special effect in the screen: &amp;#34;Shinning sent TikTok No. 1&amp;#34;, with gift animation light effect and platform-style prompt box. Musk is in a professional live broadcast environment, with a mobile phone holder, a ring fill light and a desktop microphone in front of him. The background is a modern technology live broadcast room with bright lights and a slight neon atmosphere. The composition is real and natural, like the ongoing live screenshot of the Chinese short video platform. The interface information is rich but not messy, the characters are clear, the expression is vivid, the details are rich, the sense of real photography, the depth of field, high definition, cinematic, photorealistic, realistic livestream screenshot, social media UI, Chinese Douyin live room, detailed lighting, natural skin texture.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Negative prompts:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Low definition, blur, cartoon, illustration, too strong CG sense, two-dimensional, deformed fingers, wrong text, scrambled code, multiple mobile phones, multiple brands, character repetition, face collapse, facial features distortion, excessive skin polishing, overexposure, too dark, messy background, wrong UI, non-Chinese short video interface, too many English bullet screens, gift special effects are not obvious, cropping error, proportional error
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Supplementary reinforcement words:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Real mobile phone screen recording screenshot feeling, the live broadcast UI is complete, the gift prompt box conforms to the style of the Chinese short video platform, the Chinese comment area is active, the number of people online in the live broadcast room is clearly displayed, and the time, power and signal bar are visible.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;刘亦菲抖音直播截图-1&#34;&gt;刘亦菲抖音直播截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/kylegeeks/status/2046479783765397629&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/kylegeeks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@kylegeeks&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/015.webp&#34;
	width=&#34;1200&#34;
	height=&#34;772&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/015_hu_210a3d6381ab38f7.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/015_hu_3ce3f3478f4c7132.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;刘亦菲抖音直播截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;155&#34;
		data-flex-basis=&#34;373px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 的图片比例,生成一张抖音直播的截图,里面是 刘亦菲 在直播,刘亦菲 手里拿着牌子,牌子里写着 今晚直播,欢迎来参亦菲畅聊!
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;赛博朋克霓虹-ui-设计系统&#34;&gt;赛博朋克霓虹 UI 设计系统
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AZLnfvp/status/2046468976092533180&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AZLnfvp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AZLnfvp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/016.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/016_hu_88fb7dfbe578c750.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/016_hu_6861dde16988fed4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;赛博朋克霓虹 UI 设计系统&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;用未来都市风格生成UI设计系统,灵感来自赛博朋克城市夜景,包含霓虹灯、玻璃建筑反射、高对比光影,配色以紫色、蓝色、粉色霓虹为主,设计网页Dashboard、移动端界面、卡片、按钮、控件等,视觉炫酷、层次丰富、科技感极强
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;trump-and-kim-livestream-pk-截图&#34;&gt;Trump and Kim Livestream PK 截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/alanlovelq/status/2046048929490612464&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/alanlovelq&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@alanlovelq&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/017.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/017_hu_86f0321dd3c4882f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/017_hu_4b71a2ab2286bfba.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Trump and Kim Livestream PK 截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1、生成特朗普和金正恩在抖音直播间打PK的截图  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2、生成不知火舞的小红书主页截图  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3、生成图片: 手写在教室黑板上的出师表全文,真实感的粉笔字迹,晴朗白天用iPhone手机实拍  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4、生成图片: T-800机器人的淘宝商品详情页,展示: 机器人的正面侧面背面三视图, 产品价格, 产品细节, 功能和使用场景等
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;日式-ai-游戏开发概览幻灯片提示词&#34;&gt;日式 AI 游戏开发概览幻灯片提示词
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ailovedirector/status/2046905387274891296&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ailovedirector&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ailovedirector&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/018.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/018_hu_cbe5a586cb328e0a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/018_hu_8c67b1f43e45c185.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;日式 AI 游戏开发概览幻灯片提示词&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;横長のパワポ画像ここで生成してみて　どのモデル使ってるか判定するから、今のAIゲーム開発の概要をまとめた1枚パワポで　日本語で
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ゲーム開発の技術に関して、工数ベースでどこにパワーかかるかの分析資料といかに量産が大事かについての説明とかのパワポ画も作って
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;基于生成角色制作截图界面&#34;&gt;基于生成角色制作截图界面&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/khaiinit/status/2047219694130827273&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/khaiinit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@khaiinit&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/019.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/019_hu_8b6725f5dd23affb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/019_hu_8f807fa5b4b16d83.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;基于生成角色制作截图界面…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;based on the generated character help me generate a screenshot of screenshot of an pvp game themed around *zelda: wind breaker*
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;参考这张图的风格与配色创建落地页&#34;&gt;参考这张图的风格与配色创建落地页&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/D_studioproject/status/2047212826264211540&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/D_studioproject&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@D_studioproject&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/020.webp&#34;
	width=&#34;339&#34;
	height=&#34;475&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/020_hu_c3c8a43953642ff6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/020_hu_232ea5fdd98ce77d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;参考这张图的风格与配色创建落地页…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;71&#34;
		data-flex-basis=&#34;171px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a landing page using this image as a reference for style and color grading.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;李佳琦口红直播背景&#34;&gt;李佳琦口红直播背景
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047207826913972518&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/021.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/021_hu_94305250a7e186b8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/021_hu_e1b1d851741502b5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;李佳琦口红直播背景&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;李佳琦直播间背景，口红矩阵展示墙，暖光氛围灯，文案OMG买它
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;apple-pods-pro-3-耳机电商信息图&#34;&gt;Apple Pods Pro 3 耳机电商信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/meng_dagg695/status/2047935217231663186&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/meng_dagg695&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@meng_dagg695&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/022.webp&#34;
	width=&#34;1152&#34;
	height=&#34;2048&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/022_hu_23f0b833ea7cf39d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/022_hu_3acb00488177719.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Apple Pods Pro 3 耳机电商信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;85
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;86
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;87
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;88
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;89
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;90
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;91
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;92
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-impact e-commerce infographic for &amp;#34;Apple Pods Pro 3&amp;#34; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;premium wireless over-ear headphones.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;FOREGROUND - PRODUCT HERO SHOT
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Extreme close-up of a hand holding a sleek, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;matte-white premium over-ear headphone toward the camera 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;at a slight angle. The headphone features:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Glossy white ear cushions with soft memory foam padding
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Brushed aluminum silver headband with subtle Apple Pods 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Pro 3 embossed branding
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Black mesh speaker grille visible on the ear cup face
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- A tiny glowing green LED status indicator on the 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  right ear cup edge
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Subtle touch-control icons etched on the outer cup surface
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Macro-lens shallow depth of field — hand and headphone 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;slightly blurred at edges to create cinematic depth. 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Product remains razor-sharp in center frame.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CENTRAL SUBJECT — MODEL
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;In the mid-ground: a smiling young woman with freckles 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;and wavy pastel-pink hair. She wears:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- A vibrant lime-green knit beanie
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- A psychedelic black and white-striped long-sleeve shirt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- The white over-ear headphones resting stylishly 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  around her neck (not on ears) — one hand casually 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  touching the ear cup
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Expression: relaxed, confident, joyful. 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;She is glancing slightly off-camera with a natural smile.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BACKGROUND &amp;amp; ATMOSPHERE
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Clean soft-focus studio backdrop — light gray gradient 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fading to warm white at center. 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Atmospheric overlays:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Diagonal rainbow prism lens flares cutting across 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  upper-left to lower-right
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Soft pastel light leaks in pink and yellow at corners
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 4–5 blurred white over-ear headphones floating 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  artistically in the background at various depths 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  and rotation angles
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Subtle bokeh circles from background studio lights
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: Soft professional three-point studio lighting. 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Key light from upper-left, fill light right side. 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Rim light behind model for separation. 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Glossy highlights on headphone surfaces catching light naturally.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;TYPOGRAPHY &amp;amp; LAYOUT — Sans-Serif, Clean white 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;TOP CENTER (behind model, large background text):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Massive bold oversized text: &amp;#34;HEADPHONES&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   Semi-transparent white, spanning full width behind subject
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;TOP RIGHT CORNER:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Bold clean text: &amp;#34;Apple Pods Pro 3&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   Subtitle smaller text: &amp;#34;Over-Ear Wireless&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MID LEFT:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Icon: small sound wave symbol
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Bold text: &amp;#34;Premium Sound&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Sub-text: &amp;#34;Active Noise Cancellation + Transparency Mode&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MID RIGHT:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Extra-large bold numeral: &amp;#34;40&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Smaller text below: &amp;#34;hours of battery life&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;LOWER LEFT:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Extra-large bold numeral: &amp;#34;0&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   with &amp;#34;to&amp;#34; beside it → then bold &amp;#34;100%&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Sub-text: &amp;#34;Fast charge — 10 min = 3hrs playback&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BOTTOM RIGHT:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Extra-large bold numeral: &amp;#34;1&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Sub-text: &amp;#34;Year Warranty Included&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BOTTOM CENTER (fine print style):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Small elegant text: 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &amp;#34;Bluetooth 5.4  |  Hi-Res Audio Certified  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    |  Foldable Design  |  USB-C Charging&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;TECHNICAL SPECS
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Resolution: 8K ultra-sharp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style: Commercial product photography meets 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       editorial fashion advertising
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Color Palette: White, lime green, pastel pink, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;               rainbow prism accents
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Focus: Tack-sharp on headphone product — 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       shallow DOF on everything else
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lens: 85mm macro, slight low angle
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Render Quality: Hyperrealistic, clean ad aesthetic, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                vibrant yet professional color grading
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;apple-pods-pro-3-耳塞电商信息图&#34;&gt;Apple Pods Pro 3 耳塞电商信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/rovvmut_/status/2047912710365761828&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/rovvmut_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@rovvmut_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/023.webp&#34;
	width=&#34;1360&#34;
	height=&#34;2048&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/023_hu_9d284e83fa8ed923.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/023_hu_b3aae5396a7445c5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Apple Pods Pro 3 耳塞电商信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;159px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-impact e-commerce infographic for &amp;#34;Apple Pods Pro 3&amp;#34; wireless earbuds.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;美妆产品商业营销照片&#34;&gt;美妆产品商业营销照片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSarah_/status/2047904483359760677&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSarah_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIwithSarah_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/024.webp&#34;
	width=&#34;1529&#34;
	height=&#34;2048&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/024_hu_2fc18589c5ab85e1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/024_hu_49494874c0f1388c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;美妆产品商业营销照片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-resolution commercial marketing photograph features a young woman with sleek dark hair and a pink ribbed top in a neutral grey studio setting, centered behind a glossy Ellie Beauty spray bottle held prominently in the foreground. The composition is energized by vibrant, lime-green graphic &amp;#34;swooshes&amp;#34; and floating pill-shaped callouts that highlight product features like &amp;#34;glossy finish&amp;#34; and &amp;#34;upto 450°F protection&amp;#34; in bold black sans-serif text. The lighting is professionally diffused, casting soft highlights on the model’s face while creating a sharp, vertical reflection on the metallic green-to-gold gradient bottle label. Topping the scene is a large, lime-green headline in the upper right asking, &amp;#34;What does it do?&amp;#34;, altogether creating a clean, modern, and high-contrast aesthetic with a shallow depth of field that keeps the product and the model&amp;#39;s focused expression in sharp relief.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;aaa-电子游戏截图概念设计&#34;&gt;AAA 电子游戏截图概念设计
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ChiefMonkeyMike/status/2047828814580138156&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ChiefMonkeyMike&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ChiefMonkeyMike&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/025.webp&#34;
	width=&#34;1672&#34;
	height=&#34;941&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/025_hu_9d87da51691dd0b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/025_hu_2a6fa1a60d0f68c3.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;AAA 电子游戏截图概念设计&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;generate screenshots from a AAA video game based off what The Sims Castaways sequel could look like. https://t.co/aL7hMdUYvj
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;西班牙语-grwm-早晨美妆缩略图&#34;&gt;西班牙语 GRWM 早晨美妆缩略图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/S0N_IA_/status/2047414367243657296&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/S0N_IA_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@S0N_IA_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/026.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/026_hu_32ebb9c4c41cdb8b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/026_hu_d7b7561cda28184f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;西班牙语 GRWM 早晨美妆缩略图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A vertical 9:16 TikTok-style GRWM beauty thumbnail set in a warm, sunlit Mediterranean-inspired bedroom. A stylish young woman with {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;dark brown&amp;#34;} hair in a messy curly updo sits at a marble vanity, leaning forward with one arm folded and the other hand applying lip balm or lipstick to her mouth. Her face is covered by a centered rectangular blur block for privacy, but the rest of her styling is elegant and natural: tan glowing skin, delicate gold necklace with a small round pendant, thin gold bracelet, stacked gold rings, and a white lace camisole with thin straps. In the foreground on the vanity are exactly 7 visible beauty objects: 1 round tabletop vanity mirror on the left, 1 cup holding 5 makeup brushes, 1 clear glass dropper bottle, 1 tall white pump skincare bottle, 1 small black dropper bottle, 1 beige rounded cosmetic sponge or puff, and 1 pale green squeeze tube on the right. The background shows a softly blurred cozy bedroom with 1 arched window on the left, 1 leafy potted plant, 1 bed with white bedding and a mustard accent pillow, exposed wooden ceiling detail, and 1 framed landscape painting on the wall. Use golden-hour sunlight streaming from the left, soft shadows, creamy skin tones, shallow depth of field, luxury lifestyle editorial photography, intimate self-care mood, polished but natural composition. Add bold playful Spanish headline text in the upper left in three stacked lines reading {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;Mi rutina de belleza matutina&amp;#34;}, with each line large and rounded, white outline and soft drop shadow, using pastel colors: first line white, second line pink, third line pale yellow. Add 3 pink doodle accent strokes above the headline, 1 curved pink underline-swoosh beneath it, and 1 small yellow sun icon to the right of the last line. Place a clean white {argument name=&amp;#34;brand text&amp;#34; default=&amp;#34;Pollo.ai&amp;#34;} logo in the upper right. High-end influencer thumbnail aesthetic, crisp product focus in foreground, warm inviting lifestyle scene.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;电影感城市爆炸追逐&#34;&gt;电影感城市爆炸追逐
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Gugombly/status/2047310862428303636&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Gugombly&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Gugombly&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/027.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/027_hu_ec87a1df69e1c275.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/027_hu_ff2ed2d0e6656017.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电影感城市爆炸追逐&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic photorealistic action scene in a rainy downtown city street canyon, showing {argument name=&amp;#34;main subject&amp;#34; default=&amp;#34;a dark-haired man in his 30s&amp;#34;} sprinting directly toward the camera in the center foreground with a tense survival expression, wearing a soaked dark jacket, dark shirt, and dark pants, mid-stride with one arm pumping forward. Behind him, a massive urban explosion tears through the street and lower facade of a high-rise building, sending a huge cloud of smoke, fire, dust, shattered concrete, glass, and metal debris outward in all directions. The scene includes exactly 3 visible damaged vehicles: 1 dark sedan in the left foreground with headlights on and a crumpled hood splashing through rainwater, 1 wrecked dark car in the right midground with severe front-end damage, and 1 overturned or airborne black SUV tilted upward behind it on the right side. Wet asphalt reflects headlights, firelight, and gray skyscrapers. Dense debris fills the air, with chunks of rubble frozen in motion. Overcast stormy daylight, desaturated blue-gray color palette with orange fire accents, dramatic motion blur in flying debris but sharp focus on the running figure, low-angle wide-lens composition, blockbuster disaster-movie realism, ultra-detailed textures, high contrast, dynamic depth, volumetric smoke, rain spray, cinematic lighting. Add a white {argument name=&amp;#34;watermark text&amp;#34; default=&amp;#34;Pollo.ai&amp;#34;} logo in the top-right corner.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;动漫-vtuber-minecraft-直播缩略图&#34;&gt;动漫 VTuber Minecraft 直播缩略图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/rerxmsz06/status/2047261622121705782&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/rerxmsz06&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@rerxmsz06&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/028.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/028_hu_19722c166657124a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/028_hu_5e7e88cf6b5865b8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫 VTuber Minecraft 直播缩略图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A vibrant anime-style YouTube thumbnail for a livestream gaming broadcast, in a wide 16:9 composition, with a neon purple and pink streamer room. Center the scene on a cute catgirl VTuber sitting at a desk, shown from the waist up, leaning forward energetically with one hand on a computer mouse and the other hand reaching toward the viewer. She has {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;light orange-blonde&amp;#34;} bob-cut hair with soft bangs, fluffy brown-and-cream cat ears, and a visible cat tail. Her face is intentionally obscured by a solid rectangular censor block in the center. She wears a black-and-white maid-inspired outfit with a frilly white blouse, black dress bodice, puff sleeves, white ruffles, black ribbon bow, and a gold bell choker. Place a mechanical keyboard with bright RGB lighting on the desk, a glowing gaming mouse, and a streamer microphone on the far left with pink-purple LED lighting. Put 2 cat-themed desk items in the foreground: a plush cat face on the bottom left and a black cat-shaped mug on the bottom right. Behind her is a gaming chair with paw-print details. On the left side, add large bold Korean headline text in thick white block letters with black fill shadows and a glowing purple outline, stacked in 2 lines: {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;방송중 대참사&amp;#34;}. Below it, add a smaller yellow comic-style burst caption with black outline reading {argument name=&amp;#34;sub text&amp;#34; default=&amp;#34;&amp;gt; 크리퍼 실화냐&amp;#34;}. On the right side, show 1 large computer monitor angled inward, displaying a Minecraft-like scene with bright blue sky, green trees, water, and a large green Creeper popping out toward the viewer, outlined dramatically like a sticker cutout. Add starburst effects and neon accents around the monitor to heighten the chaos. Use exaggerated thumbnail aesthetics: ultra-saturated colors, sharp cel shading, thick outlines, glossy highlights, high contrast, dynamic perspective, and a clickworthy streamer-disaster mood.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;温馨动漫-asmr-掏耳少女&#34;&gt;温馨动漫 ASMR 掏耳少女
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Shion_yamabuki/status/2047232198382964969&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Shion_yamabuki&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Shion_yamabuki&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/029.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/029_hu_c688082893a459f2.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/029_hu_352bacb0545e3ced.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;温馨动漫 ASMR 掏耳少女&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A soft, dreamy anime illustration of a cute young woman doing ASMR in a cozy bedroom at night, seated close to the viewer with her knees pulled up and a black 3Dio-style binaural microphone centered in front of her. She has {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;deep violet&amp;#34;} hair in a loose messy updo with wispy bangs framing her face, large sparkling {argument name=&amp;#34;eye color&amp;#34; default=&amp;#34;blue&amp;#34;} eyes, a gentle blush, and a sweet open-mouth smile. Her head is tilted slightly toward the viewer in a warm, affectionate pose. She wears a delicate white lace camisole with thin straps and an oversized fluffy knit cardigan in {argument name=&amp;#34;cardigan color&amp;#34; default=&amp;#34;soft pink-lavender&amp;#34;} draped off her shoulders, creating a tender, intimate late-night healing atmosphere. Both hands lightly touch the white silicone ears of the microphone as if about to give an ear massage. The room is softly lit with pink and amber ambient lighting, heavy curtains in the background, a bed or sofa with plush cushions, warm fairy-light bokeh, and a small plant on the right side. Add glowing handwritten Japanese neon text integrated into the composition: on the left, 4 text elements reading &amp;#34;とろける&amp;#34;, &amp;#34;耳&amp;#34;, &amp;#34;マッサージ&amp;#34;, and &amp;#34;ASMR&amp;#34; with 2 small heart symbols; on the right, vertical text reading &amp;#34;いっぱい癒してあげるね...♡&amp;#34;. Use a polished modern anime style, highly detailed face and hair, glossy eyes, smooth luminous skin, soft shading, pastel highlights, shallow depth of field, romantic cozy streamer-thumbnail composition, and a soothing feminine color palette dominated by pink, lavender, cream, and warm gold.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;名人直播概念图&#34;&gt;名人直播概念图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SelenaGmzIN/status/2047185882009198865&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SelenaGmzIN&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SelenaGmzIN&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/030.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/030_hu_57bd5d6a0e1e0e36.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/030_hu_efeff596d19acddc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;名人直播概念图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;celebrity&amp;#34; default=&amp;#34;selena gomez&amp;#34;} started a surprise {argument name=&amp;#34;platform&amp;#34; default=&amp;#34;youtube&amp;#34;} livestream.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;monika-动漫横幅插画&#34;&gt;Monika 动漫横幅插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill/status/2047639852485620070&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mirochill&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/031.webp&#34;
	width=&#34;1199&#34;
	height=&#34;514&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/031_hu_cb7954af0d3e5f46.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/031_hu_a4c7b40777951277.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Monika 动漫横幅插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;233&#34;
		data-flex-basis=&#34;559px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A highly polished anime banner illustration in a warm golden classroom-literature-club setting, wide cinematic composition. On the left half, a large elegant glowing script title reads {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;Monika&amp;#34;} in oversized calligraphy, colored white and pale green with a soft neon glow, metallic highlights, decorative flourishes, hearts, sparkles, and swirling ornamental lines around it. On the right half, a beautiful anime schoolgirl inspired by {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Monika&amp;#34;} sits at a wooden desk, facing slightly left, with long flowing {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;chestnut brown&amp;#34;} hair, a very large white ribbon bow, warm brown eyes, and a thoughtful, confident expression. She wears a Japanese high school uniform with exactly 4 visible clothing pieces: a brown blazer, white shirt, red ribbon tie, and brown argyle sweater vest. She holds a fountain pen over papers on the desk with one hand while the other rests near her face in a poised writing pose. The room is filled with sunset light streaming through tall windows, dust motes, trailing green ribbons, floating petals, handwritten notes pinned and hanging in the background, and a dark chalkboard covered with faint cursive writing and geometric doodles. Include exactly 9 prominent desk and room props: a bouquet of white roses at lower left, a stack of books at left, an hourglass near the center-left, a sealed envelope with a small green leaf emblem, scattered manuscript pages on the desk, a pen cap near the writing hand, a green-upholstered chair, a piano in the back right, and a stack of 4 books on the right. The 4 right-side book spines read, from top to bottom: &amp;#34;Save Me&amp;#34;, &amp;#34;My Feelings&amp;#34;, &amp;#34;Poems for the Literature Club&amp;#34;, and &amp;#34;Just Monika.&amp;#34; Add lush volumetric lighting, glittering particles, green-and-gold color harmony, delicate linework, ultra-detailed painterly shading, romantic visual-novel key art quality, and a premium polished thumbnail/banner aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;紫色动漫-yuri-横幅&#34;&gt;紫色动漫 Yuri 横幅
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill/status/2047639852485620070&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mirochill&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/032.webp&#34;
	width=&#34;1199&#34;
	height=&#34;514&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/032_hu_b649d3a35900259e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/032_hu_96c3fba8e68ccf8e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;紫色动漫 Yuri 横幅&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;233&#34;
		data-flex-basis=&#34;559px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A polished anime-style banner illustration in a dreamy violet palette, wide cinematic composition, showing a quiet literary room at twilight. On the right side, a beautiful teenage anime girl named {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Yuri&amp;#34;} sits at a wooden desk beside a large window with purple curtains, holding a dark ornate hardcover book close to her chest and gazing softly downward with a shy, introspective expression. She has very long straight {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;deep violet&amp;#34;} hair with glossy highlights, side bangs, a small hair clip, and violet eyes, wearing a Japanese school uniform with a gray blazer, white shirt, red ribbon tie, and dark skirt. Across the left-center of the image, the glowing calligraphic word {argument name=&amp;#34;title text&amp;#34; default=&amp;#34;Yuri&amp;#34;} appears large in luminous neon-lavender script with elegant flourishes, a small heart, and decorative filigree, integrated into the scene like magical typography. The desk contains exactly 8 visible item groups: 1 open book in the foreground center, 1 black inkwell with a white feather quill, 1 closed book near the candle, 1 stack of books under papers, 1 loose handwritten page in front, 1 small purple flower on the desk, 1 floral porcelain teacup with saucer on the right, and 1 dark book stack at the far right. Additional background details include exactly 6 decorative environmental elements: 1 lit candle in a glass holder on the left, 1 cluster of purple flowers in the left foreground, 1 hanging spray of purple blossoms in the upper left, 1 pinned botanical note in the upper right, 1 bookshelf with books and flowers in the right background, and 1 sunset sky visible through the window. Add drifting flower petals, faint handwritten script textures, ornate gold border lines around the frame, soft volumetric window light, subtle sparkles, rich shadows, and a romantic melancholic atmosphere. Highly detailed, clean line art, glossy anime rendering, premium visual-novel key art, perfect for a niche anime banner or character-themed thumbnail.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;粉色动漫-natsuki-横幅&#34;&gt;粉色动漫 Natsuki 横幅
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill/status/2047639852485620070&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mirochill&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/033.webp&#34;
	width=&#34;1199&#34;
	height=&#34;514&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/033_hu_b393e9af90388b65.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/033_hu_e2b33106bf913462.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;粉色动漫 Natsuki 横幅&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;233&#34;
		data-flex-basis=&#34;559px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A glossy pastel pink anime banner in a wide cinematic layout, themed around cute romance and sweets. Place a confident teenage anime girl on the right side, shown from about thigh-up, with short fluffy bob hair in {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;soft pink&amp;#34;}, large pink-magenta eyes, a small gentle smile, and arms crossed. She wears a Japanese school uniform: 1 brown blazer, 1 white shirt, 1 red ribbon bow at the collar, and 1 dark navy-and-purple plaid skirt. Add 2 red ribbon hair accessories, one larger bow on the side and one smaller ribbon accent. On the left half, feature the large handwritten script name {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Natsuki&amp;#34;} in bold glossy 3D cursive, white-to-pink fill with bright pink outline, soft bevel, subtle drop shadow, sparkles, and a small heart flourish integrated into the lettering. The background should be a layered scrapbook collage in blush pink tones with notebook paper texture, faint grid and torn paper details, scattered doodled hearts, flower petals, sparkles, and cute bakery motifs. Include exactly 4 pinned or taped sketch-style portrait cards of the same girl behind her on the upper-right and mid-right, arranged like overlapping polaroids. Add exactly 2 cupcakes in the foreground near the bottom left and lower center-left, both with pink frosting, striped wrappers, and tiny heart toppers or candy accents. Frame the composition with flowing satin ribbons and bows: exactly 4 major ribbon elements visible, including 1 bow near the top left, 1 bow near the bottom left, and 2 long curling ribbons sweeping across the top and right edges. Use a soft high-detail anime illustration style, polished lighting, dreamy bloom, romantic Valentine palette, delicate textures, and a clean impactful thumbnail-like composition.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;梦幻动漫-sayori-横幅&#34;&gt;梦幻动漫 Sayori 横幅
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill/status/2047639852485620070&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mirochill&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/034.webp&#34;
	width=&#34;1199&#34;
	height=&#34;514&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/034_hu_5322be357707c779.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/034_hu_11a6eee064b46f5b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;梦幻动漫 Sayori 横幅&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;233&#34;
		data-flex-basis=&#34;559px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A wide anime banner illustration of {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Sayori&amp;#34;} in a bright dreamy classroom, rendered in a polished, high-end visual novel style with soft painterly lighting, warm pastel colors, and sparkling atmosphere. Show a cheerful teenage schoolgirl with short fluffy coral-pink hair, messy bob layers, and a large red bow on the right side of her head, wearing a Japanese school uniform with a light brown blazer, white shirt, red ribbon tie, brown sweater vest, and pleated navy skirt. She stands slightly left of center with arms open wide in an inviting, joyful pose, as if welcoming the viewer, with dynamic perspective and gentle motion in her hair and clothes. Her face is intentionally obscured by a flat rectangular skin-tone censor block. Behind her, tall classroom windows reveal a vivid blue sky with soft white clouds and warm sunlight streaming in. The right half of the image features a large decorative handwritten script reading {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;Sayori&amp;#34;}, cream-white lettering with a soft orange-gold outline and glow, integrated into a scrapbook-like wall background. Surround the scene with hanging photo prints clipped to string, including sky photos and a sunflower photo, plus hand-drawn doodles of clouds, stars, hearts, and a sun. Add blue and yellow paper stars, ribbons, floating confetti, a blue paper airplane, notebook pages, a spiral sketchbook, and scattered stationery elements. Place sunflowers prominently in the foreground and edges, with warm golden bokeh and soft depth of field. Make the composition energetic, cute, nostalgic, and emotionally uplifting, like a premium anime-themed YouTube banner or character tribute header, ultra-detailed, clean, stylish, luminous, and impact-focused.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;赛博朋克-404-女巫召唤&#34;&gt;赛博朋克 404 女巫召唤
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Eris_Create_Lab/status/2047537707904274795&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Eris_Create_Lab&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Eris_Create_Lab&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/035.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/035_hu_b5363cd3ebd4a4b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/035_hu_4b461d992e17609.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;赛博朋克 404 女巫召唤&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dramatic anime-style cyberpunk witch standing on a dark rooftop high above a dense futuristic city at night, viewed from a slightly elevated angle. The main subject is a petite young witch girl with pale skin, short icy blue bobbed hair, pointed elf-like ears, and glowing red eyes, wearing a sly confident smile. She raises a black wand overhead in her right hand, with a dangling orb charm at the tip glowing faintly purple and red. Her oversized crooked witch hat is black with purple lining and covered in stitched patches, warning labels, straps, and white graphics including a large “404” and a skull emblem. She wears a black and purple techwear outfit: oversized hooded jacket with many straps and tags, black crop top with “404” on the chest, layered belts, short bottoms, fishnet on one leg, black lace-up combat boots, chokers, and metallic accessories. Several hanging straps and tags visibly read words like “WITCH 404,” “404,” and glitch-themed markings. Beneath and beside her, a large glowing violet magic circle mixed with hacker interface aesthetics is projected on the rooftop floor, filled with occult rings, sigils, a central skull symbol, and scattered neon system text such as error-code fragments, creating a fusion of sorcery and digital corruption. Emerging from the circle is 1 large armored summoned figure: a black futuristic demon-knight or robotic familiar with jagged reflective armor, a narrow purple-lit visor, and a heavy weapon held in one hand, partially dissolving into purple energy shards and smoke. The background shows a sprawling rainy megacity of apartment towers and industrial rooftops, packed with windows, balconies, cables, signs, and haze. On a nearby building wall is a giant vertical graffiti-style sign with 3 readable elements: “404”, “Witch”, and “ERROR NOT FOUND”, plus a smaller “E404”. Additional purple neon glitch text and symbols are scattered across rooftops and in the air. Use a dark palette of black, indigo, and deep violet with sharp magenta-purple highlights, cinematic contrast, reflective wet surfaces, dense detail, and a high-end polished illustration style. The mood is occult, edgy, stylish, and dangerous, combining urban fantasy, hacker aesthetics, and magical summoning.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;动漫奇幻旅行电影海报&#34;&gt;动漫奇幻旅行电影海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Design4p0/status/2047531978346398002&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Design4p0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Design4p0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/036.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/036_hu_f9b3ef362bb33790.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/036_hu_61c831e17c5229a1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫奇幻旅行电影海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic anime movie poster for a fictional film titled {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;EL VIAJE DE LA LUNA DE PLATA&amp;#34;}, in polished modern Japanese animation style with a natural, less over-detailed look. Center a teenage anime girl from mid-thigh up, facing forward, with a short silver bob haircut, pale skin, a black choker, small black geometric earrings, a white tank top, and a dark navy oversized zip hoodie with two yellow stripes running down the sleeves. She has a backpack strap over one shoulder and both hands tucked casually into the hoodie pockets. Her face is obscured by a flat rectangular censor block in a muted beige tone, covering the entire face area. Place her in a dramatic twilight coastal city setting that blends travel, nostalgia, and fantasy: on the left, a lit train platform with a commuter train approaching, its destination sign showing Japanese characters; behind it, a glowing city skyline with a ferris wheel. In the distance and lower left, layered mountains and a winding illuminated valley road. On the right, a cliffside coast at sunset with the sea reflecting warm light, a crescent moon in the sky, several flying seabirds, and a curving highway descending along the hillside. Also on the right, include a wooden signpost with exactly 3 directional signs labeled &amp;#34;NUEVOS CAMINOS&amp;#34;, &amp;#34;VIEJOS RECUERDOS&amp;#34;, and &amp;#34;SIN LÍMITES&amp;#34;. At the top center, add the Spanish tagline {argument name=&amp;#34;tagline text&amp;#34; default=&amp;#34;CADA DESTINO CAMBIA SU HISTORIA&amp;#34;} in elegant serif capitals. On the upper left, create an awards column in gold typography with laurel wreaths and exactly 4 award blocks: one text block reading &amp;#34;GANADORA DE MÚLTIPLES PREMIOS&amp;#34; with 5 gold stars beneath it, then three laurel award sections reading &amp;#34;MEJOR PELÍCULA ANIMADA / FESTIVAL INTERNACIONAL DE ANIMACIÓN / 2024&amp;#34;, &amp;#34;PREMIO DEL PÚBLICO / FESTIVAL INTERNACIONAL DE CINE / 2024&amp;#34;, and &amp;#34;MEJOR BANDA SONORA ORIGINAL / ACADEMIA DE CINE ANIMADO / 2024&amp;#34;. Place the film title large across the lower center in luminous ornate serif lettering with a magical glow and sweeping flourishes, layered partly over the character. Beneath it, add the Spanish quote {argument name=&amp;#34;quote&amp;#34; default=&amp;#34;A veces, para encontrarte... tienes que perderte en el mundo.&amp;#34;}. Below that, add &amp;#34;UNA PELÍCULA DE ESTUDIO LUMINARIA&amp;#34; in small caps. At the bottom, add the release line {argument name=&amp;#34;release text&amp;#34; default=&amp;#34;PRÓXIMAMENTE EN CINES&amp;#34;} in large gold serif capitals, plus tiny production logos and credits along the footer, including a small studio emblem on the left. Rich blue, violet, and warm sunset orange palette, glossy poster lighting, romantic adventure mood, balanced composition, highly polished theatrical key art, vertical one-sheet film poster.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;动漫音乐训练营宣传海报&#34;&gt;动漫音乐训练营宣传海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sorane_aimusic/status/2047507066697507134&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sorane_aimusic&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sorane_aimusic&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/037.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/037_hu_9ebcb90fe3d33c90.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/037_hu_c896eb8c5c5520af.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫音乐训练营宣传海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a dramatic Japanese anime-style promotional thumbnail poster for an event, vertical 4:5 composition, ultra-detailed, cinematic, neon-lit, high contrast, designed like a social media announcement image. The main subject is a beautiful anime girl centered slightly right, shown from the waist up, with long flowing {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;deep blue&amp;#34;} hair blowing in the wind, decorated with small star hairpins, wearing a dark hoodie and large studio headphones around her neck, against a glowing sunset-to-night city skyline filled with sparkling lights, music-energy particles, lens flares, and flying glowing petals. Her face area is obscured by a soft rectangular blur block. Use a vivid palette of electric blue, violet, magenta, gold, and sunset orange. Fill the design with layered Japanese typography that is crisp, readable, and integrated into the art like a polished event advertisement. Include exactly 8 major text groups: top left copy reading 「始まるのは、キミと創る 音楽の物語。」 with a smaller subcopy beneath reading 「AIを使って、みんなで音楽をつくる特別な3日間。」; top right a glowing marquee sign reading 「GW連休!」 and a smaller neon box below reading 「みんなで最高の音楽をつくろう!」; center main title with small English text 「AI MUSIC BOOTCAMP 2」 above huge Japanese title text 「AI音楽 ブートキャンプ 2」; a gigantic gold metallic announcement across the middle reading 「開催決定!」; a date bar reading 「開催期間」 followed by 「5.2 SAT 土」 and 「5.4 MON 月」; a hashtag callout near the bottom reading 「参加はカンタン!! #AI音楽ブートキャンプ2 をつけて投稿するだけ!」; a lower encouragement line reading 「初心者も大歓迎! みんなで最高の音楽体験を!」; and 3 bottom feature captions with icons reading 「一緒に学ぶ 仲間とつながる」, 「AIで創る 新しい音楽体験」, and 「想いをカタチに 自分だけの1曲を」. On the left edge, add a vertical filmstrip with exactly 4 inset panels showing the same girl in music-related scenes: 1) performing on a stage before a crowd, 2) working at a music production desk with screens and equipment, 3) singing into a microphone, 4) playing an acoustic guitar. Add exactly 2 neon music-themed icon illustrations in the lower area: a tilted smartphone with a music note on the lower left and a glowing microphone with musical notes on the lower right. Make the text effects glossy, luminous, and embossed with gold and white highlights, with energetic streaks and spark explosions around the headline. The overall feeling should be inspiring, celebratory, futuristic, and emotionally uplifting, like a high-impact Japanese Golden Week music bootcamp ad for {argument name=&amp;#34;event name&amp;#34; default=&amp;#34;AI音楽ブートキャンプ 2&amp;#34;}.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;热带鹦鹉像素马赛克&#34;&gt;热带鹦鹉像素马赛克
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/erikmackinnon/status/2048190288179675290&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/erikmackinnon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@erikmackinnon&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/038.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/038_hu_e7d5a0eeeb2f8e5f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/038_hu_cee3d515fddffdd5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;热带鹦鹉像素马赛克&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A vibrant pixel-art style mosaic of a tropical parrot perched on a small brown branch in the middle of dense rainforest foliage. The entire image is rendered as a tight grid of tiny square tiles with visible black outlines, creating a stained-glass or LED-screen effect. The bird is shown in side profile facing right, with a large curved black beak, a pale cream face, a bright red-orange forehead and throat, vivid green upper body, and long wings and tail in saturated blue and cyan. The surrounding jungle is filled edge to edge with layered green leaves in many shades, with a soft light green glow behind the parrot to separate it from the background. High color contrast, rich tropical palette, crisp tile pattern, centered composition, decorative digital mosaic aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;温室酒吧里的金色鸡尾酒&#34;&gt;温室酒吧里的金色鸡尾酒
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/FernandesK47117/status/2048183925294371147&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/FernandesK47117&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@FernandesK47117&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/039.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/039_hu_252e19d6194745a9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/039_hu_d48d1ae02359ae40.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;温室酒吧里的金色鸡尾酒&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic vertical photo of a hand holding up a large balloon wine glass filled with a sparkling golden-yellow citrus cocktail in a lush indoor greenhouse bar. The drink is backlit by warm late-afternoon sunlight, making it glow translucent amber. Inside the glass there is 1 visible citrus wedge, and at the rim there is 1 fresh mint garnish cluster. The hand enters from the lower left, delicately gripping the stem, wearing 1 chunky translucent amber bracelet. The setting is dense with tropical greenery, hanging ferns, and vine-covered walls, with a bright greenhouse roof structure visible overhead and 2 warm exposed hanging bulbs softly glowing in the background. Use shallow depth of field with creamy bokeh, strong sun rays filtering through leaves, soft haze, and rich green-and-gold color contrast. Add a blurred foreground leaf or plant along the right edge to frame the composition. The lower background should suggest a busy café or cocktail lounge with indistinct people, but keep them heavily out of focus. Photorealistic, elegant lifestyle photography, moody yet sun-drenched, shot from a low angle looking upward at the raised glass, high detail on condensation, glass reflections, and the luminous drink.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;多面板图像板模板&#34;&gt;多面板图像板模板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/aimikoda/status/2048183782876778821&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/aimikoda&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@aimikoda&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/040.webp&#34;
	width=&#34;1200&#34;
	height=&#34;900&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/040_hu_19301fce8cc60ac5.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/040_hu_89197a97ec704f92.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;多面板图像板模板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a {argument name=&amp;#34;grid layout&amp;#34; default=&amp;#34;4x3&amp;#34;} borderless grid where each panel is an independent image of the {argument name=&amp;#34;subject&amp;#34; default=&amp;#34;a young woman&amp;#34;}. Maintain strong subject consistency across all panels, with consistent color and lighting. Depict {argument name=&amp;#34;theme&amp;#34; default=&amp;#34;childhood memories&amp;#34;} with a {argument name=&amp;#34;mood&amp;#34; default=&amp;#34;warm, nostalgic&amp;#34;} mood in {argument name=&amp;#34;style&amp;#34; default=&amp;#34;nostalgic cinematic realism&amp;#34;} style. No text. No gap.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;handwritten-写实-letter&#34;&gt;Handwritten 写实 Letter
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mosthssan/status/2048160477658980711&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mosthssan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mosthssan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/041.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/041_hu_a2746ec4437d71a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/041_hu_8c20723e8c102965.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Handwritten 写实 Letter&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a highly realistic image of a handwritten letter containing a ({argument name=&amp;#34;message&amp;#34; default=&amp;#34;message or reflection carrying meanings of affection and loyalty to my account followers&amp;#34;}) on lined paper, with very touching words written in liquid ink pen
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;anime-band-finale-at-budokan&#34;&gt;Anime Band Finale at Budokan
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SDAI1807097011/status/2048127178592915583&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SDAI1807097011&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SDAI1807097011&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/042.webp&#34;
	width=&#34;767&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/042_hu_6f38d7ee23d7fca4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/042_hu_2a77149fd84bbfd.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Anime Band Finale at Budokan&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dramatic anime concert illustration seen from behind the performers onstage, showing 4 teenage girls standing shoulder to shoulder at the front of a huge indoor arena, arms around each other in a triumphant post-performance moment. The camera is positioned slightly behind and below them, facing out toward the audience and the giant venue screen. The atmosphere is dazzling and emotional, filled with dense blue-and-gold confetti, sparkling particles, and strong white stage spotlights pouring down from above. The crowd fills the entire arena as a sea of tiny glowing blue lights. At center top, a giant rectangular screen displays elegant serif concert text: {argument name=&amp;#34;band name&amp;#34; default=&amp;#34;ELEMAYU&amp;#34;}, &amp;#34;1st LIVE at 日本武道館&amp;#34;, {argument name=&amp;#34;concert date&amp;#34; default=&amp;#34;2024.6.15&amp;#34;}, and &amp;#34;SOLD OUT&amp;#34;. On both upper side walls of the arena, the large venue name &amp;#34;日本武道館&amp;#34; is visible. The 4 girls all wear matching dark stage outfits: black or very dark navy hooded jackets with subtle decorative back prints, short pleated skirts, and live-performance styling. Count and depict all 4 members distinctly from left to right: 1) a girl with short wavy silver-lavender hair holding a bass guitar slung over her shoulder, 2) a girl with long straight black hair holding a red electric guitar, 3) a girl with fluffy shoulder-length blonde hair holding a dark guitar, 4) a girl with brown hair in a high ponytail, no visible instrument, raising one arm high and holding a drumstick or baton in celebration while the other arm wraps around the blonde member. Show their backs and silhouettes rim-lit by stage light, with soft highlights on their hair. Include stage equipment: a microphone stand and part of a bass neck at the far left, and a visible drum kit with cymbals at the right edge. The stage floor is glossy and reflective, covered with scattered confetti and several blue flower bouquets near the bottom foreground. Use rich midnight blues, violet shadows, warm golden sparkles, and cinematic bloom. The mood should feel like a sold-out dream performance finale, sentimental, victorious, and breathtakingly luminous, in highly detailed painterly anime style.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;动漫少女与男性约会照片拼贴&#34;&gt;动漫少女与男性约会照片拼贴
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIillust_studio/status/2048099186214900130&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIillust_studio&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIillust_studio&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/043.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/043_hu_fbe12bbcbcb09878.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/043_hu_deb555056dbb63f9.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫少女与男性约会照片拼贴&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A 4x4 photo collage of 16 warm, cinematic lifestyle snapshots featuring a real adult man and an anime-style young woman companion posed together as if in casual date photos. The man has short dark hair, light skin, an average build, and wears a plain dark navy or black long-sleeve shirt; his face is intentionally obscured and softly blurred in every frame. The anime girl has long blonde twin ponytails, large blue eyes, light skin, and a slim petite build, wearing a black sleeveless top, layered silver necklaces including a cross pendant, black wrist accessories, a red plaid pleated mini skirt, and black-and-white striped thigh-high socks. Blend realistic photography with a convincingly integrated 2D anime character, keeping her clean cel-shaded look while matching the scene lighting, perspective, focus, and color grading so she appears naturally present beside him. Use moody evening tones, soft bokeh, shallow depth of field, and intimate candid couple energy. The 16 panels are: 1) close indoor portrait with both seated close together, the girl resting beside him; 2) nighttime city street side profile conversation under blurred streetlights; 3) indoors, both reading a book together, the girl leaning on his shoulder; 4) outdoor cafe table, both holding takeaway coffee cups; 5) restaurant table with multiple dishes visible, dining together; 6) mirror selfie in an elevator, the man holding a smartphone while the girl makes a peace sign; 7) car interior road-trip shot, the man driving and the anime girl in the passenger seat; 8) seaside sunset from behind, both sitting side by side watching the ocean; 9) neon-lit city night portrait, the girl pointing toward the camera; 10) intimate elevator close-up, the girl with eyes closed leaning affectionately against him; 11) full mirror selfie in an elevator showing more of both outfits; 12) night city skyline portrait with a lit tower in the background; 13) camera selfie close-up, the man holding a compact camera toward a mirror or reflective surface; 14) cozy indoor lounge moment, the man holding a glass of red wine while the girl smiles and makes a peace sign; 15) rear full-body rainy night street shot, the pair walking away hand in hand under glowing streetlights; 16) extreme close-up night portrait with the girl flashing a peace sign. Keep the collage tightly gridded with thin white dividers, square overall format, consistent amber-brown color grading, romantic urban realism, and subtle social-media photo-dump aesthetics.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;奢华-lifestyle-mustang-shot&#34;&gt;奢华 Lifestyle Mustang Shot
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Just_sharon7/status/2048095904138485962&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Just_sharon7&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Just_sharon7&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/044.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/044_hu_32ee949f06932356.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/044_hu_d07d56ec1c576cb8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;奢华 Lifestyle Mustang Shot&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A stylish young woman with {argument name=&amp;#34;hair style&amp;#34; default=&amp;#34;long wavy blonde hair&amp;#34;}, defined cheekbones, and a confident expression, wearing black sunglasses and a {argument name=&amp;#34;clothing&amp;#34; default=&amp;#34;thick white puffer jacket&amp;#34;} over a fitted black top, standing confidently in front of a {argument name=&amp;#34;car&amp;#34; default=&amp;#34;vibrant hot-pink Ford Mustang&amp;#34;}. She is posing with one hand slightly raised near her chest, exuding effortless attitude and elegance. The car is parked on a scenic coastal road lined with blooming pink cherry blossom trees and tall palm trees. Behind them is a calm sea under a dramatic overcast sky with soft clouds. Pink petals are scattered on the wet asphalt. A wooden bench is visible on the left side near the water. Cinematic lighting, photorealistic, ultra-detailed skin texture, natural lighting reflections, Instagram-style luxury lifestyle shot, vibrant colors, moody atmosphere, 8k resolution --ar 9:16 --stylize 250
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;anime-friends-eating-soba&#34;&gt;Anime Friends Eating Soba
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIMAG31G/status/2048089673621516547&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIMAG31G&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIMAG31G&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/045.webp&#34;
	width=&#34;1200&#34;
	height=&#34;821&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/045_hu_f3ad5e7e56139856.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/045_hu_d22c9a09750d4c8e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Anime Friends Eating Soba&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;146&#34;
		data-flex-basis=&#34;350px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cozy anime-style interior of a traditional Japanese soba restaurant, viewed from table height in a booth, with two young women seated across the near corners of a rectangular wooden table and facing the viewer in a casual dining snapshot. The left woman has long straight pastel {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;lavender with cyan highlights&amp;#34;} hair with glossy strands and soft bangs, and wears a white kimono-style top with bright blue trim and a deep blue obi-like sash skirt; she is slightly curvy, sitting on the left red vinyl bench, turned a little toward the camera, raising her left hand in an open friendly wave. The right woman has a sleek short bob in dark brown to black with a purple underlayer visible near the ends, red rectangular glasses, small earrings, a fitted charcoal-gray long-sleeve scoop-neck top, and light blue jeans; she sits on the right red vinyl bench, leaning slightly toward the table and holding chopsticks in her right hand as if about to eat. Place 2 large black bowls of soba on the table, one in front of each woman, both filled with dark broth, noodles, sliced duck meat, and chopped green onions; add 1 clear water glass near the center back of the table and 2 small condiment dishes beside it. The restaurant should feel warm and nostalgic, with wooden paneling, a shoji-style window on the left, a small potted plant on the windowsill, a back counter with condiments and utensils, and a navy noren curtain on the right bearing large white Japanese text &amp;#34;蕎麦&amp;#34; and smaller vertical text &amp;#34;手打ちそば&amp;#34;. On the back wall, show 7 vertical wooden menu boards with Japanese dish names and prices, including labels such as &amp;#34;もりそば&amp;#34;, &amp;#34;ざるそば&amp;#34;, &amp;#34;かけそば&amp;#34;, &amp;#34;たぬきそば&amp;#34;, &amp;#34;肉そば&amp;#34;, &amp;#34;天ぷらそば&amp;#34;, and &amp;#34;鴨南蛮そば&amp;#34;. Use clean polished anime rendering, crisp line art, soft warm lighting, detailed food illustration, rich wood textures, and a friendly everyday outing mood.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;哥特机械战士大教堂关键视觉&#34;&gt;哥特机械战士大教堂关键视觉
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/yanagihara_0805/status/2048085829713842405&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/yanagihara_0805&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@yanagihara_0805&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/046.webp&#34;
	width=&#34;675&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/046_hu_5f71e547796d351b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/046_hu_29c0319bd8507c36.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;哥特机械战士大教堂关键视觉&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic dark fantasy anime illustration in a ruined gothic cathedral, vertical composition. Show a lone female android-like warrior from behind, centered slightly low in frame, kneeling or sitting back on her heels on a reflective stone floor. She has extremely long flowing {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;silver white&amp;#34;} hair spreading across the floor and air, a sleek black blindfold visor covering her eyes, and a black high-cut gothic combat dress with elegant straps, long black opera gloves, and thigh-high black boots. Her physique is slim and graceful. She holds 1 large ornate sword upright in front of her, with both hands resting on the hilt, the blade planted on the ground like a memorial. The sword has a dark blade and a decorative gold ring-like guard near the handle. The atmosphere is solemn, tragic, and reverent. Place 3 tall pointed arched windows in the background, glowing with cold white backlight through haze and dust. Include 4 stone angel statues total: 2 larger angels in the left background and 2 in the right background, partially obscured by fog and darkness. Fill the air with drifting ash, snow-like particles, black debris fragments, and a few faint orange embers near the floor. Use dramatic volumetric light rays, soft bloom, smoky mist, high contrast, and a desaturated palette of charcoal gray, silver, blue-gray, and black. The scene should feel like a memorial after a battle, highly detailed, ultra-polished, melancholic, ethereal, and game key art inspired by {argument name=&amp;#34;franchise title&amp;#34; default=&amp;#34;NieR:Automata&amp;#34;}. Add 1 vertical Japanese title inscription near the lower left reading {argument name=&amp;#34;vertical text&amp;#34; default=&amp;#34;儚き夢と共にあれ&amp;#34;}, with 1 small vertical English subtitle beside it reading {argument name=&amp;#34;subtitle text&amp;#34; default=&amp;#34;NieR:Automata&amp;#34;}.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;cloud-shape-doodle-generation&#34;&gt;Cloud shape doodle generation
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Gorden_Sun/status/2048080137149899133&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Gorden_Sun&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Gorden_Sun&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/047.webp&#34;
	width=&#34;1200&#34;
	height=&#34;972&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/047_hu_e30673326a8eb001.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/047_hu_3e83eb8d79a3319b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Cloud shape doodle generation&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;123&#34;
		data-flex-basis=&#34;296px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Based on the shape of the {argument name=&amp;#34;subject&amp;#34; default=&amp;#34;clouds&amp;#34;} in the image, identify what object, animal, or person they most resemble. Do not change the original image; instead, draw that object, animal, or person over the original image in a {argument name=&amp;#34;art style&amp;#34; default=&amp;#34;doodle&amp;#34;} style.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;rural-station-schoolgirl-scene&#34;&gt;Rural Station Schoolgirl Scene
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/m_Raiko_AIart/status/2048069313387737222&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/m_Raiko_AIart&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@m_Raiko_AIart&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/048.webp&#34;
	width=&#34;1200&#34;
	height=&#34;900&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/048_hu_66cd8f2405b1b74d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/048_hu_d773f4afd927dd3d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Rural Station Schoolgirl Scene&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic anime-style illustration of a quiet rural Japanese train station in early summer, filled with travel nostalgia and bright midday light. In the foreground, one high school girl stands alone on the platform near the left side of the frame, facing slightly toward the viewer with a shy, gentle posture, her legs together and one foot angled inward. She has {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;black&amp;#34;} short bobbed hair with soft bangs, and wears a classic Japanese sailor school uniform: a white long-sleeved sailor blouse with navy trim, a vivid red neckerchief, a dark navy pleated skirt, white socks, and dark brown loafers. She holds a dark school bag in one hand at her side. Her expression should feel calm, a little wistful, as if she was just about to speak before the train arrived. Place her beside an old weathered wooden station building with large windowpanes and a simple wooden bench. Above her is 1 hanging station sign reading {argument name=&amp;#34;station name&amp;#34; default=&amp;#34;山ノ下駅&amp;#34;}, with smaller romanized text “YAMANOSHITA” and small local line information beneath it. The right half of the image opens to 1 set of railway tracks receding into the distance, bordered by lush green grass and wildflowers, with 1 small local train approaching from far down the line. Add a few utility poles running alongside the tracks. In the deep background, show a dramatic mountain range with lingering snow on the peaks under a vivid blue sky with scattered white clouds. Composition should balance the girl on the left and the railway perspective on the right, with detailed background scenery, crisp sunlight, soft anime rendering, realistic textures in the station wood and rails, and a heartfelt slice-of-life travel mood.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;真实居酒屋里的动漫角色照片&#34;&gt;真实居酒屋里的动漫角色照片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sub_raw_jin/status/2048066779835220392&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sub_raw_jin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sub_raw_jin&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/049.webp&#34;
	width=&#34;1200&#34;
	height=&#34;676&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/049_hu_3829d64e8a65e8fe.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/049_hu_b545c96841923dc4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;真实居酒屋里的动漫角色照片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A candid indoor restaurant photo in a realistic anime-inspired style, showing two young women seated at a small worn wooden table inside a cozy Japanese izakaya with vertical wood-paneled walls and a clear plastic tent-like curtain on the right side. The camera is slightly above table height and angled diagonally toward the table, creating a casual snapshot feeling. One woman is in the left foreground with her back mostly to the viewer, leaning forward over the table; she has long straight dark hair and wears a bulky dark navy or black puffer jacket with a large hood. The second woman sits across from her on the right, facing the camera with a relaxed posture and one arm bent on the table; she has shoulder-length dark brown to black hair, a center part, a black puffer jacket, and a light inner shirt. Replace only the people with clean, natural-looking anime characters while keeping the restaurant environment photorealistic and unchanged. Preserve the mixed-media look of anime characters composited believably into a real photo. On the table, include 2 stainless steel mugs, 2 pairs of chopsticks, 1 smartphone with a bright blue case near the center-left edge of the table, 1 cigarette pack near the right woman, 1 large oval plate with thinly sliced white onions and a lemon wedge, 1 small dish of green vegetables, 1 small plate of brown food, 1 small plate with toast or grilled bread, 1 small dark bowl, 2 small empty white bowls, and 1 printed handwritten Japanese menu sheet lying on the lower right corner of the table. In the upper left background, include a wooden counter with white ceramic bottles and dishes, plus 1 handwritten Japanese wall menu poster. Warm indoor lighting, everyday nightlife atmosphere, documentary realism, detailed wood grain, slightly cluttered tabletop, authentic casual dining scene in Japan.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;anime-campers-in-a-winter-tent&#34;&gt;Anime Campers in a Winter Tent
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sub_raw_jin/status/2048066779835220392&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sub_raw_jin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sub_raw_jin&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/050.webp&#34;
	width=&#34;1200&#34;
	height=&#34;555&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/050_hu_a99b34861ac85714.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/050_hu_98e47f7fff418fc8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Anime Campers in a Winter Tent&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;216&#34;
		data-flex-basis=&#34;518px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cozy winter camping scene inside a large beige canvas tent, rendered as a semi-realistic anime illustration with natural lighting and realistic environmental detail. Show exactly 2 seated young women around a compact kerosene heater used as a camp table, with a large black metal pot resting on top. The viewpoint is a candid wide-angle photo composition from slightly above seated height, making the scene feel like a casual snapshot taken inside the tent. The woman on the left has {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;dark brown&amp;#34;} hair tied in a high ponytail with loose bangs, and wears a fluffy brown fleece jacket, dark pants, and a red lanyard with an ID card. She sits in a low camping chair and leans forward, using chopsticks over a small bowl or food container in her hands. The woman on the right has {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;black&amp;#34;} shoulder-length hair and wears a muted purple hoodie layered under a black puffer vest, light gray sweatpants, and dark shoes. She sits in another low camping chair, resting her cheek on one hand in a relaxed, sleepy pose. Keep both faces obscured by a soft rectangular blur block, as if anonymized in a posted photo. Around them, include exactly 4 red beverage cans visible in the scene: 2 on the wooden table planks near the center, 1 cropped in the lower right foreground, and 1 farther back near the right side. Build a low U-shaped arrangement of 3 wooden bench planks surrounding the heater. Add small camping details: 1 olive duffel bag on the left ground, 1 plastic storage box with supplies behind the left woman, 1 white plastic shopping bag on top of the box, 1 small bowl on the table, 1 colorful snack package on the right-side plank, 1 soft brown cloth on the far left floor, and 1 black metal rack frame standing at the back right. The tent interior should have taut canvas walls, visible seams and support poles, a gravel ground, and a warm muted color palette. Preserve the feeling of a real camping photo where only the people have been turned into anime-style characters while the setting remains highly realistic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;bmw-performance-social-海报&#34;&gt;BMW Performance Social 海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis/status/2048063332624843046&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@harboriis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/051.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/051_hu_6c345699f3ac4fe0.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/051_hu_7a3e30600c6fd652.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;BMW Performance Social 海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a 4:5 vertical social poster in ultra high resolution, 8K print quality sharpness. Use the {argument name=&amp;#34;car model&amp;#34; default=&amp;#34;BMW car&amp;#34;} from the reference image as the main subject and use the background structure/composition from the reference image, but transform it into a BMW themed design. Replace all black tones with a flat {argument name=&amp;#34;background color&amp;#34; default=&amp;#34;high-saturation BMW blue&amp;#34;} background. Keep the same layout, spacing, visual balance, and poster composition from the reference image. Background should use a smooth gradient from slightly lighter electric blue at the top to deep navy blue at the bottom. Add subtle grain texture (2 to 3%) and faint rectangular overlays (2 to 4% opacity). Keep it clean, graphic, premium, and non-realistic. Add a soft contact shadow under the car. Use the same BMW from the reference image, changing only the {argument name=&amp;#34;paint finish&amp;#34; default=&amp;#34;matte frozen blue&amp;#34;} or deep metallic navy. Keep the original body shape, wheels, stance, and design details from the reference image. Show the car in a rear 3/4 perspective matching the reference image angle exactly. Use a slightly elevated camera angle. Position the car slightly right of center. Include visible carbon roof, aggressive rear diffuser, sharp controlled reflections, and subtle brake details. Keep composition identical to the reference image: Top: branding Middle: giant type Center: car overlapping text Bottom: editorial block and specs Typography: Primary text: “BMW” Ultra condensed bold sans serif, tall vertical scaling like the reference poster. Color deep navy or near black. Static text with no distortion. Acts as structural backdrop. Secondary header: “BMW M4 G82” Thin font with wide tracking. Logo area: BMW roundel centered above. Editorial block: Headline: “BMW — Where Driving Becomes Instinct” Body copy focused on: driver connection control performance precision Use the same boxed editorial layout as the reference image. Background faded text: “M4” large scale with 3 to 5% opacity behind the box. Bottom left: “ M4 G82” Bottom right specs: 405 kW / 550 PS 3.4 s 307 km/h Lighting should be clean studio lighting with sharp but controlled highlights. Color grading should use deep blues, high contrast, clean blacks. Camera lens: 50mm, slightly elevated rear 3/4 angle. Mood: Performance. Precision. Driver focus. Add Bottom-right watermark: harboriis , with small x and Instagram logo
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;电影感-chicken-momos-ad-海报&#34;&gt;电影感 Chicken Momos Ad 海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Diplomeme/status/2048060325925470358&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Diplomeme&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Diplomeme&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/052.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/052_hu_7112beaf8f90a74a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/052_hu_b8863ee9d849010b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电影感 Chicken Momos Ad 海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A hyper-realistic cinematic street-food advertisement poster for {argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;Licious&amp;#34;} frozen {argument name=&amp;#34;product name&amp;#34; default=&amp;#34;Chicken Momos&amp;#34;}, shot in a dark premium studio with dramatic moody lighting, deep navy-black background, glossy black tabletop, and high contrast commercial food photography styling. The composition is a square social-media ad layout with oversized bold condensed white sans-serif headline text on the left reading {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;PERFECTLY MADE.&amp;#34;} stacked across two lines, and a smaller white subheadline beneath it reading {argument name=&amp;#34;tagline text&amp;#34; default=&amp;#34;PRECISION IN EVERY BITE.&amp;#34;}. Along the far left edge, add thin vertical small caps text reading “FRESH • CLEAN • CONTROLLED”. Across the upper-right background, repeat the phrase “CUT / STEAM / SERVE / REPEAT” in a subtle dark gray pattern, and faintly repeat “CUT / STEAM / SERVE / REPEAT” again near the bottom-left floor area as perspective text. Feature exactly 6 momos total: 5 intact steamed chicken momos floating and arranged dynamically across the center and right side, and 1 split-open momo in the center revealing juicy orange-brown chicken filling with herbs, with a glossy red-orange sauce droplet dripping downward from the opened dumpling. Scatter small chili flakes, herb bits, and seasoning particles suspended in the air around the momos for explosive motion. Place exactly 3 retail product boxes on the right side, staggered in depth, black packaging with the {argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;Licious&amp;#34;} logo and red product title “CHICKEN MOMOS,” including food photography of the dumplings on the box front. At the bottom right foreground, place 1 small black bowl filled with bright red dipping sauce. Add a thin footer line of small white text across the bottom reading “CHICKEN MOMOS • FRESHLY PREPARED • 2026 EDITION” and place “licious.com” in the lower-right corner. Use premium ad design, ultra-detailed food texture, glossy highlights on the dumplings, subtle steam sheen, crisp typography, shallow depth of field, and a polished high-end commercial campaign aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;nostalgic-16-photo-couple-grid&#34;&gt;Nostalgic 16-Photo Couple Grid
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/zenkaiAI/status/2048051889460437351&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/zenkaiAI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@zenkaiAI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/053.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/053_hu_7c3db8708f8b6482.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/053_hu_92bd8818f70e0b78.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Nostalgic 16-Photo Couple Grid&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;16-photo nostalgic contact sheet collage&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;dreamy film photography, soft blur, slightly underexposed, candid youthful romance, flash snapshots mixed with ambient dusk light, subtle grain, sentimental and bittersweet mood&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;people_count&amp;#34;:2,&amp;#34;relationship&amp;#34;:&amp;#34;young couple or former lovers spending time together&amp;#34;,&amp;#34;ages&amp;#34;:&amp;#34;early 20s&amp;#34;,&amp;#34;appearance&amp;#34;:{&amp;#34;male&amp;#34;:{&amp;#34;build&amp;#34;:&amp;#34;slim&amp;#34;,&amp;#34;hair&amp;#34;:&amp;#34;short dark hair&amp;#34;,&amp;#34;clothing&amp;#34;:&amp;#34;loose white short-sleeve shirt, camera strap around neck in several shots&amp;#34;},&amp;#34;female&amp;#34;:{&amp;#34;build&amp;#34;:&amp;#34;slim&amp;#34;,&amp;#34;hair&amp;#34;:&amp;#34;shoulder-length dark hair&amp;#34;,&amp;#34;clothing&amp;#34;:&amp;#34;light sleeveless tops or soft casual summer clothes&amp;#34;}},&amp;#34;faces&amp;#34;:&amp;#34;intentionally obscured by soft rectangular blur blocks over every visible face&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;grid&amp;#34;:{&amp;#34;rows&amp;#34;:4,&amp;#34;columns&amp;#34;:4,&amp;#34;count&amp;#34;:16,&amp;#34;border&amp;#34;:&amp;#34;thin white dividers, equal square cells&amp;#34;},&amp;#34;images&amp;#34;:[{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;close cropped portrait of the woman in a white top at night, soft flash, dark background&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;close cropped blurred two-person selfie framing, both subjects partially visible, dark nighttime setting&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;young man standing at night and holding a compact silver camera up to his face, white shirt, distant lights behind him&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;woman on a beach or shoreline in low light, softly blurred, ocean horizon behind her&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;street candid of the man holding a camera near his face while walking outdoors in the evening, urban background with motion blur&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;close-up of the woman indoors or in a dim warm setting, hand raised near her face, flash-lit snapshot&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;blurred two-shot of the couple sitting close together by water at dusk, intimate candid composition&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;young man outdoors in greenery during daytime or early evening, looking down at a camera in his hands, white shirt and camera strap visible&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;woman close to the camera giving a peace sign, casual sleeveless top, sandy or beachlike background&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;back view of the man in a white shirt looking out over a cityscape at night from a high vantage point&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;woman indoors at night holding a compact camera directly toward the viewer, city lights beyond a window, flash aesthetic&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;tight cropped two-person selfie-like frame with both subjects partially visible, dark background&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 4 col 1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;young man at the waterfront at dusk holding a camera to his eye, cloudy blue sky and distant shoreline behind him&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 4 col 2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;soft night portrait of the woman on a city street with warm bokeh lights in the background&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 4 col 3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;close intimate couple snapshot with both faces near each other, one subject making a peace sign, heavy blur and flash look&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 4 col 4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;rear view of the woman walking alone down a warmly lit narrow street at night, shoulder-length hair and light top visible&amp;#34;}]},&amp;#34;composition&amp;#34;:&amp;#34;each square feels like a memory fragment from one summer evening and a few nearby outings, varied framing, natural imperfection, casual amateur photography&amp;#34;,&amp;#34;color_palette&amp;#34;:&amp;#34;muted blues, warm tungsten yellows, soft skin tones, dark greens, charcoal night shadows, faded white clothing&amp;#34;,&amp;#34;camera_look&amp;#34;:&amp;#34;35mm point-and-shoot or disposable camera feel, shallow focus, motion blur, bloom around lights, occasional flash overexposure&amp;#34;,&amp;#34;quality&amp;#34;:&amp;#34;high-resolution collage with authentic analog softness, emotionally evocative and realistic&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;anime-bl-promo-缩略图&#34;&gt;Anime BL Promo 缩略图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/himukai_an/status/2047981800535085555&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/himukai_an&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@himukai_an&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/054.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/054_hu_c949bbb5ffc3da07.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/054_hu_22313a14959dca4c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Anime BL Promo 缩略图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A bright, polished anime-style promotional thumbnail with a summer romance atmosphere. The composition is split visually, with large typography on the left and two handsome young men on the right. On the left side, place layered translucent white panels with soft glow and sparkles over a sky-blue background, featuring large elegant serif text &amp;#34;GPT&amp;#34; in a blue gradient at the top and &amp;#34;BL&amp;#34; in a lavender-to-violet gradient below. Add three lines of Japanese text arranged between and under them: &amp;#34;最新の画像生成で&amp;#34;, &amp;#34;作って&amp;#34;, and &amp;#34;遊んでみた&amp;#34;, in deep blue calligraphic Japanese type. Include subtle decorative accents such as small star glints, diagonal light streaks, dotted texture, and a cyan underline swoosh beneath the middle text. On the right side, show 2 anime boys from the waist up, leaning casually together beside a chain-link fence under leafy trees. The taller boy has tousled dark brown hair, a navy overshirt worn open over a white T-shirt, layered silver necklaces, and holds 1 plastic cup of iced coffee with a straw. The shorter boy has messy silver-white hair, a white T-shirt with a small crest emblem on the chest, black backpack straps over both shoulders, layered silver necklaces, and one small earring. Their poses are relaxed and intimate, with the dark-haired boy’s arm resting around the other. Use a luminous blue-and-white palette with soft sunlight, lens flare, bokeh, and a faint cityscape in the background, creating a clean social-media header or article thumbnail aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;夜晚的艺术家与空灵缪斯&#34;&gt;夜晚的艺术家与空灵缪斯
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/almimeister/status/2048309710118687101&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/almimeister&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@almimeister&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/055.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/055_hu_8c4d3b82e3d3a6f7.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/055_hu_98818098bf668f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;夜晚的艺术家与空灵缪斯&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic anime-inspired digital illustration set at night inside a cozy artist&amp;#39;s room with large window panes and a warm city glow outside. On the left, a young male artist with {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;dark brown&amp;#34;} messy hair sits at a cluttered desk in side profile, leaning forward with one hand near his mouth and the other drawing with a pen on a tablet or sketchbook. The desk is covered with exactly 1 pen cup filled with pencils, 1 coffee mug, 1 open laptop or pen-display showing a sunset landscape, 1 spiral sketchbook with manga-style character drawings, 2 additional drawing books or pads, 1 small stack of about 4 books, and many scattered art cards and printed illustrations. On the right, a luminous ethereal anime girl made of blue-white light appears life-sized, facing the artist with both hands gently extended toward him. Her form is translucent, delicate, and composed of glowing contour lines, starry particles, and flowing strands of light, with long windblown hair and a soft dress-like silhouette. Between them, a magical stream of golden and white light spirals upward from the artist&amp;#39;s desk into the air, connecting creator and creation. Inside this swirling ribbon are exactly 12 to 16 floating image fragments and sketch pages: monochrome character sketches, scenic sunset paintings, small photo-like panels, and tiny icon-like cards, all orbiting in a curved arc from lower center to upper left and upper center. Around the upper half of the image, dozens of glowing musical notes float through the air, mixed with sparkling particles, creating the feeling that inspiration has become visible sound and memory. The palette is rich warm gold and amber on the artist&amp;#39;s side, contrasted with cool electric blue and white on the spirit girl&amp;#39;s side, with dramatic rim light, volumetric glow, intricate particles, and a dreamy emotional atmosphere. Composition is vertical, highly detailed, intimate, and poetic, evoking the relationship between {argument name=&amp;#34;person one&amp;#34; default=&amp;#34;you&amp;#34;} and {argument name=&amp;#34;person two&amp;#34; default=&amp;#34;me&amp;#34;} as artist and imagined muse, where drawings, music, memories, and fantasy physically manifest in the room. Add a small handwritten note card on the desk with {argument name=&amp;#34;note text&amp;#34; default=&amp;#34;二人だけの物語&amp;#34;}, and display one prominent artwork on the desk and one floating scenic panel using {argument name=&amp;#34;scene theme&amp;#34; default=&amp;#34;sunset sky over a distant city&amp;#34;}.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;カテゴリナビ: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;総目次&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;EC メインビジュアル&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;広告クリエイティブ&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;ポートレート写真&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;ポスターイラスト&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;キャラクターデザイン&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI とソーシャルメディア&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;元リポジトリリンク&#34;&gt;元リポジトリリンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;プロジェクトホーム&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/ui.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元カテゴリファイル&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT-Image 2 プロンプトライブラリ：ポートレート写真事例</title>
        <link>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/</guid>
        <description>&lt;p&gt;このページでは &lt;code&gt;ポートレート写真&lt;/code&gt; カテゴリの 55 件の事例を収録しています。各項目には元事例リンク、作者、生成画像、完全なプロンプトを残しています。&lt;/p&gt;
&lt;p&gt;カテゴリナビ: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;総目次&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;EC メインビジュアル&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;広告クリエイティブ&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;ポートレート写真&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;ポスターイラスト&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;キャラクターデザイン&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI とソーシャルメディア&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;ポートレート写真&#34;&gt;ポートレート写真
&lt;/h2&gt;&lt;h3 id=&#34;便利店霓虹人像&#34;&gt;便利店霓虹人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2045167461147042202&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/000.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/000_hu_f5ded828a47ee136.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/000_hu_9c32af7f48c22c7b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;便利店霓虹人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;35mm film photography with harsh convenience store fluorescent lighting mixed with colorful neon signs from outside, authentic film grain, high contrast, slight color cast, cinematic street editorial style, intimate medium shot, early 20s sexy Chinese female idol with ultra-realistic delicate refined Chinese features, seductive almond-shaped fox eyes with natural double eyelids, high nose bridge, small sharp V-shaped jawline, flawless porcelain skin with cool ivory undertone and visible specular highlights from fluorescent light, subtle skin texture and micro pores, natural dewy makeup with soft flush on cheeks, glossy natural pink lips slightly parted, subtle natural freckles across nose and cheeks, long dark brown hair in a messy high ponytail with many loose strands falling around face and neck, wearing an oversized white button-up shirt as the only top, unbuttoned at the top with deep cleavage and loosely tied at the waist, paired with a tiny black pleated mini skirt, barefoot in simple white slides, seductive casual leaning pose against the glass door of a 24-hour convenience store at late night, body slightly arched, one leg bent with foot resting against the door frame, the other leg straight, one hand holding a bottle of iced drink, the other hand lightly pulling the hem of her mini skirt, intensely seductive playful yet slightly vulnerable gaze straight at the viewer with soft doe eyes full of quiet temptation and teasing smile, bright cold fluorescent store light from inside mixed with pink and blue neon glow from outside signs, realistic reflections on glass door, blurred convenience store interior with shelves and snacks in background, authentic 35mm film color grading with harsh lighting and neon accents, extremely sharp yet soft skin rendering, natural hair strands, realistic fabric wrinkles and drape on the oversized shirt and mini skirt, no plastic skin, no digital over-sharpening, no airbrushing, no blemishes, no moles, no oily skin, no watermark, no text, authentic late-night convenience store atmosphere
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;电影感极简人像&#34;&gt;电影感极简人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/iam_miharbi/status/2045151354679665101&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/iam_miharbi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@iam_miharbi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/001.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/001_hu_a8cd363b79ab3a8d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/001_hu_2842eaf4560e93aa.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电影感极简人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Generate a cinematic minimal portrait of a solitary man standing in an intense orange to red gradient environment, strong silhouette lighting, deep shadow contrast, reflective glossy floor, symmetrical composition, minimal
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;日式温泉旅馆人像&#34;&gt;日式温泉旅馆人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2045092449803284923&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/002.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/002_hu_3bb6d0434e7554a2.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/002_hu_f7835d1315a59bf2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;日式温泉旅馆人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;35mm film photography, warm vintage Japanese onsen ryokan aesthetic, soft ambient wooden lantern lighting mixed with gentle natural window light, subtle film grain, gentle color shift, high atmosphere editorial style, intimate medium shot, early 20s beautiful Chinese female idol with ultra-realistic delicate refined Chinese features, seductive almond-shaped fox eyes with natural double eyelids, high nose bridge, small sharp V-shaped jawline, flawless porcelain skin with warm ivory undertone, visible subtle skin texture and micro pores, soft natural makeup with dewy glow, subtle rosy flush on cheeks, natural soft pink lips slightly parted, long dark brown hair tied in a loose low bun with some messy strands falling around face and neck, wearing a loose white yukata (traditional Japanese bathrobe) deliberately slipped off one shoulder and loosely tied at the waist, the fabric slightly open revealing smooth skin and subtle cleavage, barefoot, seductive relaxed sitting pose on the edge of a traditional wooden engawa veranda at a vintage onsen ryokan, body slightly turned toward the camera, one leg bent with foot resting on the wooden floor, the other leg gently dangling, one hand lightly holding the yukata collar, the other hand resting on the wooden floor behind her for support, softly arched back to gently accentuate curves, intensely seductive yet gentle and inviting gaze straight at the viewer with soft doe eyes full of quiet temptation and warmth, warm wooden interior with paper sliding doors and distant steaming hot spring in soft focus, gentle rim lighting highlighting skin and fabric texture, authentic vintage film color grading with warm tones, extremely sharp yet soft skin rendering, natural hair strands, realistic fabric wrinkles and drape on the yukata, no plastic skin, no digital over-sharpening, no airbrushing, no blemishes, no moles, no oily skin, no watermark, no text, authentic 35mm film Japanese onsen ryokan atmosphere
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;35mm-闪光编辑风人像&#34;&gt;35mm 闪光编辑风人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2045052982728016131&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/003.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/003_hu_305319b81c9e8f3d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/003_hu_beb530d223306f78.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;35mm 闪光编辑风人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;35mm color film photography with harsh direct on-camera flash, specular highlights on skin and clothing, strong catchlights in eyes, high contrast flash illumination, authentic film grain and color shift, high fashion fresh innocent basketball court editorial style, intimate first-person low-angle POV shot from below, early 20s sexy Chinese female idol with ultra-realistic delicate refined Chinese features, seductive almond-shaped fox eyes with natural double eyelids, high nose bridge, small sharp V-shaped jawline, flawless realistic porcelain skin with cool ivory undertone and visible flash specular highlights, fine delicate skin texture with subtle pores micro details and natural dewy glow under flash, fresh natural sporty makeup with soft dewy glow, subtle natural flush on cheeks, natural pink lips slightly parted, subtle natural freckles across nose and cheeks, long dark brown hair tied in a high playful ponytail with some loose strands framing the face and realistic loose strands, wearing a loose white tank top and white high-waisted basketball shorts, white knee-high sports socks, seductive natural leaning pose against the basketball hoop pole on the outdoor court at dusk, body angled sideways with naturally arched back and hips gently pushed back to accentuate perky round hips and sexy butt curve, one leg naturally extended forward toward the camera and the other leg slightly bent to emphasize long sexy legs, both hands lightly resting on the basketball pole at shoulder height, intensely seductive playful yet pitiable doe-eyed gaze straight at the viewer with soft vulnerable longing eyes and a gentle teasing smile full of quiet temptation and desire, harsh direct on-camera flash creating sharp specular highlights and strong catchlights, background with blurred basketball court and hoop under dusk sky, high contrast film color grading with natural flash look, extremely sharp yet soft skin rendering with authentic 35mm direct flash aesthetic, natural hair strands, realistic fabric texture on tank top and shorts with socks detail, no plastic skin, no digital over-sharpening, no airbrushing, no blemishes, no moles, no oily skin, no watermark, no text, authentic 35mm direct flash film basketball court look --ar 9:16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;卧室镜前自拍人像&#34;&gt;卧室镜前自拍人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010/status/2045002808903020962&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Shinning1010&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/004.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/004_hu_3aa3d6321aca43eb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/004_hu_a4607499955447e6.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;卧室镜前自拍人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A stunning 18-year-old Chinese girl with a youthful, pure face and realistic skin texture, sitting on a cozy, slightly messy bed in her bedroom. She is taking a mirror selfie with a smartphone, capturing a natural and intimate moment. Wearing casual gray loungewear and neat white crew socks. Soft natural light (golden hour) streams in from a side window, creating a warm, moody, and cinematic atmosphere. 35mm lens, sharp focus on the subject in the mirror, depth of field with a beautifully blurred background (bokeh). Photorealistic, 8K, high resolution, studio quality, masterpiece.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Negative Prompts: no extra limbs, no deformed hands, no blur, no noise, no watermark, no text, no cartoon/anime style. Aspect Ratio: 3:4.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;柔和通透-35mm-人像&#34;&gt;柔和通透 35mm 人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046115431144902732&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/005.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/005_hu_ead3166a14d82b24.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/005_hu_9d803bc26e7fa005.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;柔和通透 35mm 人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Analog 35mm film photography, soft airy Japanese-style aesthetic, gentle diffused natural window light, slight overexposure, pastel tones, low contrast, soft highlights, minimal indoor setting near a window with white curtains, clean light-colored wall, natural composition, eye-level, slightly closer full-body framing (mid-thigh to head), young East Asian woman, natural minimal makeup, soft realistic skin texture, long slightly messy dark hair, oversized white button-up shirt, light casual shorts, barefoot, simple and relaxed styling, standing naturally with relaxed posture, arms loosely at sides or slightly behind, facing camera, gentle soft smile, subtle stillness, focus on light, air, and quiet everyday mood, soft film grain, dreamy and understated atmosphere --ar 9:16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;奢华魅力美妆人像&#34;&gt;奢华魅力美妆人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/patrickassale/status/2044581766309060765&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/patrickassale&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@patrickassale&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/006.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/006_hu_290832876b0a66f1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/006_hu_d476e80abdbb6f01.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;奢华魅力美妆人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Luxury Glam Beauty Portrait:, Beautiful Black woman, youthful spirit, creamy vanilla, silk press, mahogany red, subtle confidence, textured fabric, sapphire blue, minimal jewelry, beachside breeze, lens flare effect, nostalgic, cinematic lens, symmetrical composition, soft focus, high fashion photography, monochromatic, dewy finish, mysterious tension, layered elements
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;916-cosplayer-人像截图&#34;&gt;9:16 Cosplayer 人像截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Zoulinshen/status/2045082518089810073&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Zoulinshen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Zoulinshen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/007.webp&#34;
	width=&#34;670&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/007_hu_6d0a9c27fc18bc06.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/007_hu_fcd08d0a514f6366.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;9:16 Cosplayer 人像截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;55&#34;
		data-flex-basis=&#34;134px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生成一张竖版手机截图风格的图片，整体比例接近 9:16。画面中心偏上是一位真人 coser，扮演（角色名称）的二次元角色。人物为写实风格，但五官略带动漫感，皮肤细腻，眼睛稍大，表情温柔地看向镜头，坐在室内的休闲场景中，例如咖啡厅或酒吧吧台前，背景有符合场景的道具。画面最上方加入手机系统状态栏 UI，包括时间、电量、信号、网络等图标，让整张图看起来像手机截图。画面底部叠加一块宽大的半透明 galgame 风格对话框，对话框左侧放一个与画面人物对应的动漫或 Q 版头像；对话框右侧排版文字：第一行用较大字体显示与前面相同的角色名字，下面一到两行显示一段适合这个角色人设的、温柔治愈风格的简体中文台词，由你自动创作。再在对话框下方加一条操作栏，仿照 galgame UI。整体风格高清、细节丰富、光线柔和、二次元与真人写真自然融合。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;城市回眸街拍人像&#34;&gt;城市回眸街拍人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Tz_2022/status/2045892003775361198&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Tz_2022&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Tz_2022&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/008.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/008_hu_8cbeba56057e830.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/008_hu_64bba90f899229f8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;城市回眸街拍人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;该画面为中近景，采用平视镜头，聚焦于一位年轻女性。她以七分身镜头呈现，身体坐姿略带倾斜，臀部向后撅起，双腿自然交叠，左腿在前，右腿在后，膝盖微屈。她将上半身向右后方扭转，头部则转向镜头方向，形成一个经典的“回眸”姿态，目光直视镜头，眼神清澈而略带一丝俏皮。她的发型是蓬松的棕色齐肩短发，刘海自然垂落，发尾微卷，妆容清淡自然，仅在眼部有轻微眼线勾勒，唇色为自然裸粉。画面整体采用自然日光滤镜，光线从画面左上方斜射入，形成柔和的逆光轮廓，面部和身体右侧被温暖的金色光线照亮，左侧则形成自然的阴影过渡，增强了立体感。灯光效果是明亮的自然光，带有轻微的镜头眩光，营造出午后阳光的氛围。拍摄角度为平视，构图上，人物主体位于画面中偏右位置，背景中的斑马线与道路线条形成自然的引导线，将视线引向人物。背景为城市街道，包含道路、斑马线、绿化带和远处的车辆，背景被适度虚化，但依然可辨识出树木、护栏和停放的电动车等元素，构图上利用了三分法，人物位于右侧三分之一处，增强了画面的平衡感。主体穿着一件军绿色迷彩图案的连帽卫衣，下身搭配黑色短裤，脚穿白色高帮运动鞋配白色中筒袜。背包为黑色，带有橙黄色装饰条纹和一个橙色毛绒挂件，材质为帆布和皮革拼接。整体风格为街头休闲风，肢体语言放松自然，表情略带好奇与俏皮，整体呈现出一种随性、青春、充满活力的都市少女形象。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;sam-altman-滑板公园抓拍&#34;&gt;Sam Altman 滑板公园抓拍
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Malek1173989/status/2045836887684694395&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Malek1173989&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Malek1173989&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/009.webp&#34;
	width=&#34;456&#34;
	height=&#34;703&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/009_hu_e0b361543eb632d3.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/009_hu_8ce9a910d53d3bc2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Sam Altman 滑板公园抓拍&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;64&#34;
		data-flex-basis=&#34;155px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;Sam Altman on a skateboard at a skatepark with no people.&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;韩系偶像九宫格人像&#34;&gt;韩系偶像九宫格人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046268941941850575&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/010.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/010_hu_82000a8f63ec387d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/010_hu_f8719fddffa7f7c8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;韩系偶像九宫格人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 vertical, Korean idol portrait photoshoot, 3x3 grid (nine frames), same person in all images, consistent facial features and styling, soft black mist filter effect, lowered contrast, blooming highlights, subtle glow around light sources
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ccd-闪光韩系偶像照&#34;&gt;CCD 闪光韩系偶像照
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046190539213885806&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/011.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/011_hu_571c0e2a9ebb0071.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/011_hu_132ebaae6384e909.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;CCD 闪光韩系偶像照&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mobile phone photo, old CCD camera aesthetic, harsh flash, grainy, dim messy indoor lighting, candid snapshot feeling, slight motion blur, young Korean female idol, soft innocent look
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;韩系偶像九宫格拼贴人像&#34;&gt;韩系偶像九宫格拼贴人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046151898621993364&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/012.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/012_hu_d2407f2a414e8994.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/012_hu_fac057dc4f55b9a4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;韩系偶像九宫格拼贴人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 vertical — a 3x3 grid collage (nine images) forming a Korean idol portrait photoshoot series. Each frame features the same young Korean female idol, maintaining 100% consistency in facial features, proportions, hairstyle, and identity across all nine shots.   Natural, ultra-realistic skin texture, no retouching, no smoothing. Clean idol-style minimal makeup, soft glow, subtle imperfections.   Hair: long, voluminous dark hair, slightly tousled, consistent across all frames (natural loose flow, slight movement).  Outfit: cohesive Korean idol photoshoot styling — white shirt + short bottoms (or simple neutral-toned outfit), youthful, clean, slightly casual but styled. Same outfit across all frames.  Setting: minimal studio or simple indoor environment (plain wall, soft window light, clean background). Focus on subject, not environment.  Lighting: soft diffused natural light, gentle highlights, low contrast, slightly airy tones, subtle film-like softness.  Camera style: intimate portrait photography, slightly handheld feel, subtle imperfections (minor grain, slight blur in motion frames, imperfect framing).  Frame breakdown (3x3 grid):  Top row: - Top left: standing naturally, looking slightly away, relaxed expression - Top center: facing camera, casual mid-motion (hair or body slight movement) - Top right: slight side angle, soft gaze, natural candid feel  Middle row: - Center left: looking slightly upward, soft thoughtful expression - Center: close-up portrait, direct eye contact, gentle idol smile - Center right: turning body slightly, mid-motion candid frame  Bottom row: - Bottom left: seated or leaning casually, relaxed posture - Bottom center: back partially turned, looking over shoulder toward camera - Bottom right: standing close to frame, slightly playful or soft expression  Mood: Korean idol photobook / photocard aesthetic, intimate, soft, natural, everyday charm.  Quality: ultra-realistic, 8K detail, subtle analog film grain, natural imperfections, soft dreamy tone
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;柔黑雾编辑风人像&#34;&gt;柔黑雾编辑风人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046434670724907395&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/013.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/013_hu_b25492a69584d859.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/013_hu_771c0da60185e1a3.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;柔黑雾编辑风人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 vertical — editorial portrait, single subject  soft black mist filter, subtle haze, gentle highlight bloom, muted tones  minimal indoor space, clean background, slight texture  young Korean woman, minimal makeup, natural skin texture  outfit: fitted ribbed knit top or soft camisole layered under a loose shirt, paired with high-waisted shorts or skirt; fabric slightly clings to body shape, soft and natural, no revealing elements  hair: slightly messy, natural volume  pose: sitting on floor with one leg bent and the other relaxed, body slightly leaning, shoulders not aligned, head tilted  composition: subject slightly off-center, negative space present  expression: calm, slightly distant, natural lips  lighting: soft side light, gentle shadow falloff  mood: understated, quiet, subtly sensual through natural body lines, relaxed and unposed  quality: fine grain, slight softness, realistic look
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;富士草莓校园人像&#34;&gt;富士草莓校园人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046483268019884384&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/014.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/014_hu_708da46c7002e19a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/014_hu_c414b5ea44cf7ff.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;富士草莓校园人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 vertical — Japanese Fuji film style portrait, single subject  Fujifilm analog aesthetic (Pro 400H / Superia feel), soft pastel tones, slight green-magenta shift, low contrast, gentle highlight roll-off, fine film grain, subtle halation, slight vignette  bright natural daylight, diffused sunlight through window, soft shadows, airy atmosphere  young Japanese female idol, natural minimal makeup, fresh glowing skin, realistic texture, slight imperfections  outfit: Japanese school uniform (sailor-style or blazer uniform), neatly styled, non-revealing, youthful and clean  hair: natural dark hair, straight or softly flowing, a few loose strands  pose: front-facing or slight angle toward camera, relaxed posture; one hand gently holding a strawberry near lips, mid-action as if about to take a bite; shoulders relaxed, subtle natural body curve  expression: soft playful gaze, light smile or neutral lips, gentle eye contact with camera  setting: minimal indoor near window or simple outdoor corner, clean background, everyday atmosphere  composition: slightly off-center framing, intimate distance, candid feel  mood: fresh, youthful, sweet everyday moment, understated charm  quality: ultra-realistic, analog film look, natural imperfections, soft dreamy finish
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;柔黑雾偶像人像&#34;&gt;柔黑雾偶像人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046518189509734903&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/015.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/015_hu_bc38bc8da9e4ce8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/015_hu_5a8fb39a55758192.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;柔黑雾偶像人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 vertical — Korean idol portrait photography, single subject  soft black mist filter effect, lowered contrast, gentle highlight bloom, subtle glow, soft diffusion, slightly faded blacks  minimal indoor setting near window, white curtains, clean light-toned background  young Korean female idol, natural minimal makeup, dewy realistic skin texture, subtle imperfections  outfit: oversized white button-up shirt + short bottoms, slightly loose fit, soft and casual styling, no revealing elements  hair: long dark hair, slightly messy, natural volume, softly flowing  pose: relaxed standing or slight lean, body subtly angled, one leg slightly forward, shoulders relaxed; one hand lightly touching collar or resting near neckline, the other relaxed; gentle body curve without exaggeration  expression: soft cute smile, slightly playful eyes, direct or slightly off-camera gaze  camera: close to mid-body framing, eye-level, intimate distance, slight handheld feel  lighting: diffused natural daylight, soft shadows, gentle light wrapping around face and body  mood: cute yet subtly sensual, intimate, everyday softness, quiet romantic atmosphere  quality: ultra-realistic, fine film grain, slight softness at edges, natural imperfections, dreamy understated tone
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;富士风情侣人像&#34;&gt;富士风情侣人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046502288102170757&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/016.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/016_hu_c23f1f87c252c325.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/016_hu_cdcf89bb138f217b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;富士风情侣人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 vertical — Japanese Fuji film style couple portrait, two subjects  Fujifilm analog aesthetic (Pro 400H / Superia feel), soft pastel tones, slight green-magenta shift, low contrast, gentle highlight roll-off, fine film grain, subtle halation  bright natural daylight, diffused sunlight through window, soft shadows, airy atmosphere  young Japanese couple, natural minimal makeup, realistic skin texture, slight imperfections  female outfit: oversized button-up shirt with loose shorts, relaxed fit, soft casual styling   male outfit: simple t-shirt or light shirt, clean and understated  hair: natural, slightly tousled for both  pose: close intimate distance — sitting or standing close together; the girl gently leaning toward him, one hand lightly resting on his shoulder or chest; the boy slightly leaning in, faces close, almost touching, capturing the moment just before a kiss  expression: soft smiles or gentle gaze toward each other, relaxed and natural, emotional connection visible  camera: close framing (waist-up), eye-level, intimate distance, slight handheld feel  setting: minimal indoor near window, light curtains, clean soft background  lighting: diffused daylight, gentle highlight bloom, soft shadow transitions  mood: warm, romantic, intimate everyday moment, natural affection  quality: ultra-realistic, analog film look, fine grain, slight softness, natural imperfections
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ai-自我认知人像&#34;&gt;AI 自我认知人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/80vul/status/2046218165961753047&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/80vul&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@80vul&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/017.webp&#34;
	width=&#34;1200&#34;
	height=&#34;960&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/017_hu_64aaf4731473978e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/017_hu_a42dd9a969e7de18.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;AI 自我认知人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;125&#34;
		data-flex-basis=&#34;300px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;根据你对我的认知 给我生成一个“你认识的我”的 图片
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;创建最写实的复古报纸头版设计&#34;&gt;创建最写实的复古报纸头版设计&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Naiknelofar788/status/2047207812800147647&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Naiknelofar788&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Naiknelofar788&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/018.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/018_hu_2c608b433002f6fc.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/018_hu_323f3c17caed1b68.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;创建最写实的复古报纸头版设计…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create the most realistic front page design of a vintage newspaper featuring the main character. The layout should be made in the style of a real printed newspaper with a cinematic black-and-white aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The main photo should be prominently placed in the center, framed, like the image in the title of the article. The subject in the photo should remain unchanged and clearly distinguishable in natural light and slightly increased contrast in order to match the spectacular editorial style.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a bold, attention-grabbing headline at the top (create a unique title that matches the spirit of the photo - it can be romantic, mysterious, funny, or dramatic). Add a smaller subtitle under it, which will look like a real newspaper caption.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Add realistic newspaper elements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Columns of small text (in the style of lorem ipsum, but framed like real news)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;At the top is the fictitious name of the publication (for example, The Daily Prompts, AI Times or similar - think creatively, according to the picture)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Date, issue number and location
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Decorative lines, dividers, and vintage typography
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Small additional articles or captions to the main image
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Optional stamps, doodles, or editorial notes to add personality.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Black and white or slightly faded monochrome paper
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Fine paper texture, grain, and ink defects
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Small shadows and creases that mimic real printed paper
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The aesthetics of a clean but slightly worn vintage newspaper
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mood: Give the design personality, expressiveness and plot, as if the plot is part of the main article.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Aspect ratio: 4:5 or 1:1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-detail, ultra-realistic hybrid of editorial photography and print design.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;杂志旅行指南专题页&#34;&gt;杂志旅行指南专题页
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/andis13/status/2047204384811921764&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/andis13&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@andis13&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/019.webp&#34;
	width=&#34;805&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/019_hu_45d9491e25ecda1f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/019_hu_a451650250877325.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;杂志旅行指南专题页&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;67&#34;
		data-flex-basis=&#34;161px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create image of Magazine feature article [travel] guide page, cute, information dense photo book style magazine feature article page. Add all necessary sections, tips, recommendations, information. add photos for any sections and recommendations if you like. Place the attached person at the precise location of [city, country]. Seamlessly blend the attached person as if they are sightseeing. Approach this task with the understanding that this is a critical, information rich page that will significantly influence visitor numbers, text accuracy is important. Fully use the entire [9:16] page. NEGATIVE PROMPT: coordinate texts @swiat_ai @ProfitAII
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;分析照片并给出可复现它的详细-json-提示词&#34;&gt;分析照片并给出可复现它的详细 JSON 提示词&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/pavellaslov/status/2047182214304055339&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/pavellaslov&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@pavellaslov&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/020.webp&#34;
	width=&#34;554&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/020_hu_a01827abf92f7e43.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/020_hu_1c76a74b60833556.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;分析照片并给出可复现它的详细 JSON 提示词…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;46&#34;
		data-flex-basis=&#34;110px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;analyze this photo and give me a detailed JSON prompt that recreates it. break down the color grading and every exact color in the photo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(use Opus, not Sonnet. Opus has stronger visual analysis and writes more detailed JSON)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;paste that JSON into ChatGPT
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;upload your product image and prompt:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;using this JSON as reference, generate a person holding my product
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;save that generated photo as your character reference
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;attach it to every future generation for facial consistency
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;you now have a consistent UGC model that works across any product
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;the JSON controls the lighting and color grading. GPT image-2 handles the character. you control the product placement.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;the #1 tell on AI photos is flat colors and a grainy look. this method removes both.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;5 minutes to set up. unlimited variations after.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;calming-green-tea-胶片套装正面展示&#34;&gt;CALMING GREEN TEA 胶片套装正面展示&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ZaraIrahh/status/2047180061657452601&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ZaraIrahh&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ZaraIrahh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/021.webp&#34;
	width=&#34;1200&#34;
	height=&#34;896&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/021_hu_43869e9f2beb7268.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/021_hu_46742f9b141cb08e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;CALMING GREEN TEA 胶片套装正面展示…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;321px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CALMING GREEN TEA Film Kit displayed frontally, the open box shows soft sage-green film pouches and translucent ampoules with matte silver caps, product placed centrally with clear branding CALMING GREEN TEA -- 7 Days to Soothed Skin, pastel green background with botanical graphic accents, three minimal icons (leaf, wave, balance) floating around the product to emphasize benefits, photographic, hyper detailed, ultra realistic, lifelike, 8k, high detail, soft professional lighting.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;草莓软冰淇淋的超写实产品摄影&#34;&gt;草莓软冰淇淋的超写实产品摄影&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ZaraIrahh/status/2047179916161212542&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ZaraIrahh&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ZaraIrahh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/022.webp&#34;
	width=&#34;1200&#34;
	height=&#34;896&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/022_hu_2d052d4454c0beed.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/022_hu_50c9709cd2cd5cf7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;草莓软冰淇淋的超写实产品摄影…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;321px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ultra-realistic product photography of a rich strawberry soft-serve ice cream in a crispy waffle cone, styled with a clean, modern premium aesthetic. The soft serve is a vibrant natural pink, thick and creamy, sculpted into a smooth swirl with a softly curled peak, lightly topped with delicate strawberry dust or tiny fruit specks for a fresh, appetizing look. The cone has a rustic, crunchy texture with slightly uneven edges for an artisanal feel.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The background is soft beige with natural sunlight casting subtle leaf shadows, creating a calm, organic atmosphere. Include softly blurred greenery in the foreground for depth. The composition is minimal, balanced, and uses negative space effectively, similar to high-end American food brand ads.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;On the left side, include modern English typography in a clean, elegant layout (not vertical).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Main headline:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Sweet Strawberry Bliss.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Supporting line (smaller text):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Made with real strawberries. Smooth. Creamy. Irresistible.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Add a small circular badge showing the price:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$5.80.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: soft natural daylight, warm highlights, shallow depth of field, high-end commercial food photography style.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mood: fresh, premium, modern, and inviting — aligned with upscale U.S. dessert branding.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;轻薄笔记本电脑上的超写实-uiux-样机&#34;&gt;轻薄笔记本电脑上的超写实 UI/UX 样机&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ZaraIrahh/status/2047179669011616172&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ZaraIrahh&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ZaraIrahh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/023.webp&#34;
	width=&#34;1200&#34;
	height=&#34;896&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/023_hu_4856939525bcde80.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/023_hu_d410dc5c5e8bbf83.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;轻薄笔记本电脑上的超写实 UI/UX 样机…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;321px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A hyper-realistic UI/UX mockup displayed on a slim modern laptop placed on a minimal wooden desk with soft natural daylight. The screen shows a clean SaaS dashboard with elegant typography, glassmorphism cards, smooth gradients, subtle drop shadows, and neatly spaced components. Visible charts, analytics panels, sidebar navigation, and micro-interactions. Realistic macOS-style window frame, soft reflections on the screen, shallow depth of field, cozy workspace atmosphere, shot in photorealistic product photography style, ultra-detailed.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;18-岁年轻男性的超写实电影感-dslr-照片&#34;&gt;18 岁年轻男性的超写实电影感 DSLR 照片&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis/status/2047175250761433416&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@harboriis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/024.webp&#34;
	width=&#34;955&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/024_hu_7a667145418d704c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/024_hu_1341a61c5ce56128.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;18 岁年轻男性的超写实电影感 DSLR 照片…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;79&#34;
		data-flex-basis=&#34;191px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ultra-realistic cinematic DSLR photograph of an 18-year-old handsome young man with a slim skinny body, lean physique, narrow shoulders and waist, standing confidently in front of a blue 2017 Ford Mustang GT Convertible with a bold red soft top roof, captured from a high-angle aerial perspective exactly like a luxury driveway photoshoot. Keep face 100% identical to reference image with exact facial structure, natural skin texture, realistic pores, authentic expression, no beautification, no facial modification. Same modern textured side-swept quiff hairstyle with heavy natural volume on top, deep side flow, messy yet controlled texture, soft matte finish, visible natural hair strands, softly blended sides.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The subject stands centered near the front bumper of the Mustang GT, hands inside hoodie pockets, relaxed shoulders, straight posture, slight head tilt upward toward camera, confident calm expression, wearing oversized premium black hoodie with realistic cotton texture, natural folds, hanging drawstrings, loose dark washed black denim jeans with soft wrinkles and stacked hems, clean white sneakers with realistic leather texture and sole details, black slim rectangular sunglasses.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Car must be a detailed 2017 Ford Mustang GT Convertible, metallic electric blue paint, glossy reflections on hood, visible Mustang pony grille emblem, aggressive headlights, muscular hood sculpting, aerodynamic front bumper, black alloy wheels, premium red convertible fabric roof, realistic windshield reflections, detailed side mirrors, authentic tire tread, showroom-clean finish
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Scene set in an upscale villa driveway with light beige hexagonal stone pavement, curved border with fresh green grass on left side, tropical palm leaves entering frame from top corners, subtle luxury outdoor atmosphere. Soft natural daylight, diffused afternoon lighting, realistic shadows under car and body, soft reflections on paintwork, cinematic premium color grading, natural contrast, shallow depth separation while maintaining environment clarity. Shot on 35mm lens, vertical composition, full body framing, crisp details, hyper-realistic DSLR quality, zero Al look, natural skin rendering, realistic hair strands, fabric texture, stone surface texture, luxury lifestyle mood. stylish text AmanZaid at the bottom-left corner, signature style
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Negative Prompt:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;face changed, different identity, beautified face, edited face, smooth plastic skin, fake skin glow, wrong hairstyle, short hair, fade haircut, buzzcut, messy deformed hair, female features, muscular body, fat body, broad shoulders, bad anatomy, long neck, short legs, extra fingers, missing fingers, mutated hands, distorted arms, broken posture, crossed eyes, lazy eye, bad sunglasses, blurry face, low resolution, pixelated, noisy image, overexposed, underexposed, harsh shadows, unrealistic reflections, fake car shape, wrong car model, damaged car, extra wheels, warped Mustang logo, incorrect. proportions, bad pavement texture, background artifacts, duplicate objects, watermark, logo errors, text artifacts, cropped feet, cut car, unnatural perspective, CGI render, cartoon style, painting, Al artifacts, oversaturated colors, motion blur, lens distortion 1664x2080-ar 4:5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;卧室随手自拍写实人像&#34;&gt;卧室随手自拍写实人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/charliejhills/status/2047969988368314526&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/charliejhills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@charliejhills&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/025.webp&#34;
	width=&#34;800&#34;
	height=&#34;1000&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/025_hu_9c8902eabd291e4c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/025_hu_80f0073c3177ed55.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;卧室随手自拍写实人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Candid selfie of a young woman with shoulder-length honey-blonde hair with lighter highlights, green-grey eyes, rosy cheeks, and a natural no-makeup makeup look. She is wearing a light grey hoodie and looking slightly off-camera with a relaxed expression. Background shows a cosy bedroom with warm fairy lights strung on a pink wall, a unmade bed with tan bedding, and a small white desk with stacked books. Soft, warm ambient lighting. Photo-realistic, casual, intimate feel.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;音乐人夜晚离开杂货店电影感人像&#34;&gt;音乐人夜晚离开杂货店电影感人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/commanderdgr8/status/2047934886124867684&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/commanderdgr8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@commanderdgr8&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/026.webp&#34;
	width=&#34;2048&#34;
	height=&#34;1117&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/026_hu_cd6e1f4fe4dfb269.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/026_hu_9dad3b51703c646f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;音乐人夜晚离开杂货店电影感人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;183&#34;
		data-flex-basis=&#34;440px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A candid, magazine-cover quality documentary photograph of a young musician with curly hair, casually carrying a worn guitar case, stepping out of a classic downtown bodega at 11 PM. The lighting features a complex mixed color temperature: a bright neon &amp;#34;OPEN&amp;#34; sign casts an intense, warm red glow across his face, while a yellow streetlamp provides a striking backlight behind him. The image perfectly emulates 35mm film shot on a Canon AE-1 with a 50mm f/1.4 lens wide open, exhibiting a shallow depth of field with the background beautifully blurred. It captures the exact aesthetics of CineStill 800T film, specifically featuring the distinctive soft red halation bloom radiating outward from the neon light sources, a tungsten white balance, and moody, slightly green-tinted shadows in the darkest areas. Cinematic night photography, photorealistic, highly detailed.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;老德里甜品店门面纪实照片&#34;&gt;老德里甜品店门面纪实照片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/commanderdgr8/status/2047889839123521635&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/commanderdgr8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@commanderdgr8&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/027.webp&#34;
	width=&#34;2048&#34;
	height=&#34;1117&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/027_hu_42e54e1db1f7af92.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/027_hu_52ba2cb96833b777.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;老德里甜品店门面纪实照片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;183&#34;
		data-flex-basis=&#34;440px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a photorealistic travel-documentary image of a small sweet-shop storefront in Old Delhi at midday. A painted shop signboard above the door reads &amp;#34;मिठाई की दुकान&amp;#34; in large bold yellow hand-painted Devanagari on a deep red background, with &amp;#34;SWEET SHOP&amp;#34; in smaller roman letters beneath. Realistic hand-painted texture, slight wear, natural shadow. Authentic script proportion. Spelling and characters exact. No extra signage in frame, no watermark.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;赛博朋克科幻侧脸人像&#34;&gt;赛博朋克科幻侧脸人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/iamsofiaijaz/status/2047882171336253928&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/iamsofiaijaz&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@iamsofiaijaz&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/028.webp&#34;
	width=&#34;1122&#34;
	height=&#34;1402&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/028_hu_5c31b9faaaa9ff0a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/028_hu_a127191cf9de7b67.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;赛博朋克科幻侧脸人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic side-profile portrait of a rugged man with a tied-back bun and full beard, wearing round dark sunglasses and a textured leather jacket. His skin is detailed and slightly weathered. The background is a futuristic sci-fi interface filled with glowing orange and red data streams, star maps, celestial navigation diagrams, grids, and holographic UI elements. Fiery particle effects and ember-like energy swirl around him, creating a cosmic, high-tech atmosphere. Dark color palette with strong contrast, dramatic lighting, ultra-detailed, sharp focus, 8K, cyberpunk aesthetic, cinematic composition, depth of field.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;真实卧室录制抓拍人像&#34;&gt;真实卧室录制抓拍人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ChillaiKalan__/status/2047862141894681076&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ChillaiKalan__&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ChillaiKalan__&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/029.webp&#34;
	width=&#34;1360&#34;
	height=&#34;2048&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/029_hu_3a5bfa190955d43f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/029_hu_8b11a48a55edc20.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;真实卧室录制抓拍人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;159px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A realistic young woman sitting casually in a softly lit bedroom during late afternoon.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;She is holding her phone very close to her face as if recording a private video or voice note.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Framing is tight and slightly imperfect.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Expression: thoughtful, slightly shy, natural.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Minimal makeup, natural skin texture, relaxed clothing.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: warm natural light fading from a window, soft shadows.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Environment: simple bedroom, calm and lived-in.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style: ultra-realistic, looks like a real phone recording, slightly grainy, not cinematic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;幼儿蜡笔涂鸦风人像&#34;&gt;幼儿蜡笔涂鸦风人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/akakageAI/status/2047812983389356276&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/akakageAI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@akakageAI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/030.webp&#34;
	width=&#34;1448&#34;
	height=&#34;1086&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/030_hu_5cf600ac42712e9a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/030_hu_48e7038aa1063779.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;幼儿蜡笔涂鸦风人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(被写体) in the style of super bad child drawing, toddler art, scribbles, messy crayon lines on white background, completely lack of technique, terrible composition, chaotic colors, barely recognizable shapes, very raw, honest art, pure naivety, unrefined style, 4:3
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Negative:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;good drawing, nice lines, clear shapes, neat, pretty, smooth, realistic, talented art, coherent composition, artistic style, professional, skilled, masterpiece, beautiful, detailed
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;修复后的复古母子人像&#34;&gt;修复后的复古母子人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb/status/2048184797374325031&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@gdb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/031.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/031_hu_ca8b84e71397fc0.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/031_hu_1ca1b5b428820847.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;修复后的复古母子人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A restored vintage family snapshot, photographed indoors in soft natural light, showing a {argument name=&amp;#34;adult subject&amp;#34; default=&amp;#34;young mother&amp;#34;} seated and holding a {argument name=&amp;#34;child subject&amp;#34; default=&amp;#34;toddler&amp;#34;} on her lap in a close, centered waist-up portrait. The adult has short softly curled auburn hair in a voluminous 1960s-inspired bob, wears a sleeveless black dress and a thin gold necklace, and wraps both arms protectively around the child. The child has fine light blond hair and wears a plain white long-sleeve outfit. Compose the image with a warm nostalgic color cast, gentle film softness, subtle grain, and the look of a carefully repaired old printed photograph. Place them in front of a cream-colored curtain patterned with small brown teddy bear motifs, with a softly blurred interior window frame visible along the top background. Preserve realistic skin tones, natural posture, and the intimate family-photo feeling, as if an old damaged photograph has been professionally reimagined and restored. Square crop, centered composition, shallow depth of field, authentic analog photo texture, no modern styling, no text.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;受损复古母子照片&#34;&gt;受损复古母子照片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb/status/2048184797374325031&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@gdb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/032.webp&#34;
	width=&#34;1080&#34;
	height=&#34;1141&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/032_hu_51c8a5ee2d35dffd.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/032_hu_a4f024bc8f2e9d3b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;受损复古母子照片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;94&#34;
		data-flex-basis=&#34;227px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A heavily damaged old family snapshot in faded black and white with a slight sepia cast, shown as a worn physical photograph scanned straight-on. The image depicts a seated woman holding a small child on her lap indoors, both centered in a simple portrait composition. The woman has short dark wavy hair and wears a dark sleeveless dress or pinafore layered over a lighter short-sleeved blouse. The child appears to be a toddler with very short light hair, wearing a light-colored outfit, facing the camera while sitting against the woman’s chest and arm. Behind them is a patterned curtain with small floral or leaf motifs, and above it a dark window area with a pale vertical window frame is visible near the top center. The print is severely deteriorated: extensive scratches, creases, emulsion damage, stains, blotches, and peeling cover the entire surface, with especially heavy white abrasion and loss of detail across the bottom third and scattered cracking throughout. Keep the overall look authentic to a mid-20th-century vernacular photo, low contrast, soft focus, and visibly aged paper texture. Add a rectangular blurred censor block over the woman’s face only, while the child’s face remains visible but faded. No text, no border, just the distressed archival photograph filling the frame.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;墨刻风家庭肖像&#34;&gt;墨刻风家庭肖像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb/status/2048184698195870102&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@gdb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/033.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/033_hu_66a76792300b0043.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/033_hu_6521473b15c2b22e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;墨刻风家庭肖像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A black-and-white hand-drawn family portrait in the style of detailed pen-and-ink crosshatching on textured white paper, showing 4 people seated closely together in a casual candid composition. On the left, an adult man in a dark baseball cap worn backward and a dark T-shirt leans into the frame, with a crossbody sling bag worn across his chest and visible zipper details. On the right, an adult woman with curly hair tied up in a loose high bun wears a light T-shirt with large collegiate block letters reading {argument name=&amp;#34;shirt text&amp;#34; default=&amp;#34;CITY&amp;#34;}. In the center are 2 young children sitting close together, both with short curly hair and matching light-colored T-shirts printed all over with strawberries. The child on the left leans inward with one arm crossing the other child, and the child on the right tilts their head slightly upward. The adults frame the children protectively, creating a warm family snapshot feeling. Render the whole image as a monochrome etched illustration with dense fine-line hatching, engraved shadows, crisp contour lines, and a realistic yet artistic likeness, with no color, no background setting beyond a plain light paper texture, and a vertical portrait crop.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;复古雕刻风连帽衫人像&#34;&gt;复古雕刻风连帽衫人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb/status/2048184698195870102&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@gdb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/034.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/034_hu_23218fad5cfb2972.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/034_hu_681e4f556710271e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;复古雕刻风连帽衫人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A centered black-and-white vintage engraved portrait of a bearded man wearing a hooded sweatshirt with the hood up and a backward snapback cap visible under the hood. Show only the upper torso and head against a plain off-white paper background with subtle texture. Render the image in detailed pen-and-ink etching style with dense cross-hatching, fine parallel lines, and old book illustration shading. The figure faces forward in a calm, neutral pose. The cap has a visible snap closure band across the forehead area, slicked-back hair is visible above it, and a thick full beard extends below the face. The hoodie has two drawstrings hanging down at the chest. Keep the composition symmetrical and tightly framed like a classic engraved bust portrait, with no color, no modern graphic elements, and no background objects.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;梦幻逆光编辑风人像&#34;&gt;梦幻逆光编辑风人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ToroJushiAi/status/2048139425465467248&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ToroJushiAi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ToroJushiAi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/035.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/035_hu_94ecaadb0c447059.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/035_hu_c6749b4025021f4f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;梦幻逆光编辑风人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic soft-focus portrait of a woman from behind and slightly in profile, framed from the upper torso up in a vertical composition. She has {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;dark brown&amp;#34;} hair styled in a loose messy updo with wispy strands catching the light. Her face is mostly hidden by her pose and hair, with only a small portion of one cheek visible. She wears a {argument name=&amp;#34;dress color&amp;#34; default=&amp;#34;deep red&amp;#34;} sleeveless dress with an open back or low-cut side, emphasizing her bare shoulder and upper back. One hand is raised delicately near her neck or shoulder, fingers relaxed. Use strong warm backlighting and rim light, with glowing golden highlights around the hair and skin, dreamy lens flare, and large circular bokeh in the blurred background. The image should feel intimate, elegant, and slightly sensual, like a high-end fashion or beauty editorial, with shallow depth of field, creamy blur, warm amber and rose tones, and a soft cinematic glow.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;3d-卡通角色渲染&#34;&gt;3D 卡通角色渲染
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Inshrah_ali_/status/2048121503367995753&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Inshrah_ali_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Inshrah_ali_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/036.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/036_hu_e147ab42f223a537.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/036_hu_4787b6eaf46eb5af.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;3D 卡通角色渲染&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-quality 3D CGI render of {argument name=&amp;#34;character&amp;#34; default=&amp;#34;[character]&amp;#34;} in a charming cartoon style, portrait composition showing head and shoulders. Highly stylized caricature with exaggerated, expressive features that are both playful and humorous. Smooth, polished rendering with clean materials and soft ambient lighting creating gentle shadows. Dynamic camera angle with stylish perspective. Minimalist bright {argument name=&amp;#34;background color&amp;#34; default=&amp;#34;[color]&amp;#34;} background that makes the character pop and stand out. Professional Pixar-like quality with glossy finish and cheerful mood.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;楼梯上的亮片裙年轻女性&#34;&gt;楼梯上的亮片裙年轻女性
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/XSydneyFan/status/2048114180906217566&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/XSydneyFan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@XSydneyFan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/037.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/037_hu_9bc47916860f6bd2.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/037_hu_8133948ec72b97ac.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;楼梯上的亮片裙年轻女性&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Vertical 2:3 format. {argument name=&amp;#34;subject&amp;#34; default=&amp;#34;Young woman&amp;#34;} hair in messy updo sits on modern wooden staircase. wears {argument name=&amp;#34;dress&amp;#34; default=&amp;#34;shimmering Silver halter dress sequin dress&amp;#34;}. matching with silver high-heeled sandals. legs crossed. Silver heart earrings. One fuchsia bracelet on each ankle. Sultry expression, with slightly parted lips. Blurred background vertical wooden slats and black metal railings. Don&amp;#39;t change face
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;奢华棚拍换装效果&#34;&gt;奢华棚拍换装效果
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Abdullah__Ai7/status/2048083022315159595&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Abdullah__Ai7&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Abdullah__Ai7&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/038.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/038_hu_7ca6d841487e471c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/038_hu_e4f5ee7bf20b1e95.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;奢华棚拍换装效果&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Using REFERENCE_0 as the subject base, transform the casual desert snapshot into a full-body luxury fashion studio portrait. Replace the denim jacket, tank top, and shorts with a fitted strapless mini cocktail dress in {argument name=&amp;#34;dress color&amp;#34; default=&amp;#34;powder blue&amp;#34;} with ornate silver floral embroidery and exactly 2 geometric cutouts at the chest and upper waist. Change the setting to a clean seamless light-gray studio background with polished high-end editorial styling. Add 1 silver clutch with a thin chain strap in the subject&amp;#39;s right hand and 1 pair of pointed silver high heels. Refine the pose into an elegant standing fashion pose with one hand near the face, keep the same person and hair identity, and apply soft cinematic luxury lighting with crisp 8K fashion-photography detail.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;暖色咖啡馆里的金发女仆&#34;&gt;暖色咖啡馆里的金发女仆
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/yume00112211/status/2048072808606089230&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/yume00112211&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@yume00112211&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/039.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/039_hu_d035b2c40abf9863.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/039_hu_8697440bb33f05ad.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;暖色咖啡馆里的金发女仆&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A polished anime-style portrait of {argument name=&amp;#34;character&amp;#34; default=&amp;#34;a blonde female VTuber-inspired maid&amp;#34;} seated indoors in a cozy sunlit cafe, framed from upper thighs to head in a slightly high, intimate angle. She has short to medium-length tousled {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;golden blonde&amp;#34;} hair with soft layers, a white frilled maid headband, and a teal ribbon hair accessory with a small gold ornament on the right side. Her face is mostly obscured by the hair falling forward, creating a mysterious hidden-face composition. She wears an elegant black-and-white maid dress with puff sleeves, white ruffles, gold trim, a fitted bodice, a white apron, and a large white waist bow visible at the side and back. Add 2 teal bows with gold star-like charms: 1 at the collar and 1 on the wrist. Her right hand gently touches the bow at her chest, and her left hand is raised delicately near her shoulder holding a loose strand of hair. Include a frilly lace garter on her exposed thigh with a small teal-and-gold ribbon decoration. The background is a warmly lit European-style cafe interior with wooden beams, framed botanical art on the walls, a softly blurred cake stand on the left, window light streaming in, and tiny glowing dust-like sparkles in the air. Use soft golden afternoon lighting, shallow depth of field, glossy detailed fabric rendering, delicate skin shading, subtle romantic atmosphere, and highly detailed refined anime illustration quality.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;梦幻东方女性人像提示词&#34;&gt;梦幻东方女性人像提示词
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2048046253842559183&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/040.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/040_hu_8c23fe125c31e9be.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/040_hu_f78dd7f2ac1e24bf.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;梦幻东方女性人像提示词&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;subject&amp;#34; default=&amp;#34;Dreamy Oriental female portrait&amp;#34;}, adult female, close-up portrait, exquisite facial features, fair and translucent skin, delicate but clean skin texture, emerald green eyes, soft and charming gaze, brown wavy hair falling naturally; {argument name=&amp;#34;accessories&amp;#34; default=&amp;#34;Off-white lace headpiece&amp;#34;}, embellished with turquoise butterflies and pearl decorations; attire is an exquisite lace gown with a clear structure and clean, not overly complex texture, accompanied by emerald jewelry; lighting is soft warm gold side-backlighting, rim lighting is clear but not overexposed, skin has slight highlights but not excessive reflection, overall lighting is clean and transparent, background is softly blurred with shallow depth of field; high-end portrait photography quality, details are clear but restrained, no grain, no noise, real physical lighting, 8K, commercial-grade quality. Aspect ratio: 9:16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;黑白爱马仕风头像&#34;&gt;黑白爱马仕风头像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/jiajia232016/status/2048044100793032976&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/jiajia232016&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@jiajia232016&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/041.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/041_hu_647536e3949f45b4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/041_hu_61522042056dbfcf.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;黑白爱马仕风头像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a minimalist black-and-white vector avatar logo of a mythic anime woman shown in elegant side profile facing right, cropped from the chest up on a plain white background. Give her long flowing {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;black&amp;#34;} hair with bold white highlight streaks and smooth graphic shapes, rendered as high-contrast ink silhouette art with clean sharp edges. She wears a winged headpiece reminiscent of Hermes or a messenger god helmet, with one large white feathered wing visible on the side of her head and a circular metallic earpiece detail. Dress her in a sleek high-collar garment with a luxury-fashion feel, and hang a prominent pendant or zipper pull shaped like the letter {argument name=&amp;#34;monogram letter&amp;#34; default=&amp;#34;H&amp;#34;} at the center of the collar. The face is intentionally obscured by a centered soft gray rectangular blur block covering most facial features, creating a censored anonymous profile-image effect. Overall style: luxury brand avatar, fashion logo, anime-inspired goddess silhouette, monochrome vector emblem, smooth negative-space highlights, balanced composition, modern and iconic, suitable for a social media profile picture.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;赛博水晶动漫少女人像&#34;&gt;赛博水晶动漫少女人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal/status/2048026376645861799&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@libearal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/042.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/042_hu_f9aae24c208fa93e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/042_hu_a45a3eb84ee04cf.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;赛博水晶动漫少女人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A highly detailed anime-style full-body character portrait of {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Hermes&amp;#34;}, a delicate futuristic girl sitting curled up with her knees hugged to her chest, gazing softly at the viewer with a calm, slightly melancholic expression. She has extremely long {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;silver-lilac&amp;#34;} twin tails with soft bangs, glossy lavender eyes, porcelain skin, and ornate crystal hair accessories including 3 large ribbon bows and a jeweled tiara-like headpiece. Her outfit is an elaborate translucent idol-tech dress in {argument name=&amp;#34;outfit color&amp;#34; default=&amp;#34;pink, lavender, and violet&amp;#34;}, featuring off-shoulder puff sleeves, layered ruffles, faceted gemstone-like fabrics, a huge floral bow at the waist, dangling crystal charms, garter details, patterned thigh-high stockings, and glossy bow heels. Surround her with a luminous cyber dreamscape in {argument name=&amp;#34;background palette&amp;#34; default=&amp;#34;neon violet and electric blue&amp;#34;}: transparent holographic panels, floating glass cubes, sparkling particles, geometric prisms, glowing wireframe lines, and digital UI windows suspended in space. Include 5 readable interface text elements scattered in the background: &amp;#34;ERROR.&amp;#34;, &amp;#34;Code-&amp;#34;, &amp;#34;return&amp;#34;, &amp;#34;area x1&amp;#34;, and &amp;#34;404&amp;#34;. Make the whole image feel like a luxurious AI avatar reference illustration, mixing ethereal fantasy and cyberspace aesthetics, with crystalline light refractions, dramatic glow, high detail, intricate lace and gem textures, and a polished premium gpt-image-2 anime rendering.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;粉彩薰衣草动漫少女人像&#34;&gt;粉彩薰衣草动漫少女人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal/status/2048026376645861799&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@libearal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/043.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/043_hu_b7d9436c114003f3.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/043_hu_fc069f8705fca8dc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;粉彩薰衣草动漫少女人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A delicate vertical anime portrait of a dreamy young woman in an ethereal pastel lavender palette, shown from about mid-thigh up against a soft decorative background of pale swirling lines, floating petals, tiny stars, and subtle sparkles. She has extremely long, voluminous silver-lilac hair styled in twin tails with flowing strands, soft bangs, and ornate ribbon decorations; each side is adorned with large lavender bows, ruffled headband-like trim, dangling gold star charms, and small white flower hair ornaments. Her face is centered and mostly covered by a flat solid pale lavender rectangle censor block, leaving only hints of her ears and hairline visible. She wears an elaborate fantasy-lolita inspired dress in white, pearl, and light violet, with glossy satin fabric, ruffled neckline, layered frills, puffed detached sleeves, gold trim, corset lacing at the waist, and multiple purple bows including 3 clearly visible bow accents on the outfit. Her hands are clasped gently near her chest in a shy, elegant pose. The image should feel soft, refined, feminine, and luminous, with high-detail anime rendering, smooth gradients, airy composition, flowing hair movement, and a romantic celestial aesthetic. Use a {argument name=&amp;#34;color theme&amp;#34; default=&amp;#34;pastel lavender and white&amp;#34;} palette, {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;silver-lilac&amp;#34;} hair, an {argument name=&amp;#34;outfit style&amp;#34; default=&amp;#34;ornate fantasy lolita dress with bows and ruffles&amp;#34;} design, a {argument name=&amp;#34;background style&amp;#34; default=&amp;#34;soft swirls, petals, stars, and sparkles&amp;#34;} backdrop, and a {argument name=&amp;#34;face covering&amp;#34; default=&amp;#34;solid pale lavender censor rectangle&amp;#34;} over the face.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;记忆空间里的薰衣草-ai-少女&#34;&gt;记忆空间里的薰衣草 AI 少女
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal/status/2048026376645861799&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@libearal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/044.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/044_hu_da164c150e810bc3.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/044_hu_15f8dc5bdfc2bb5d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;记忆空间里的薰衣草 AI 少女&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dreamy anime portrait of {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Kotori&amp;#34;}, a delicate virtual girl seated on the floor in a curled-up pose with both knees pulled close to her chest and her arms wrapped gently around them, looking directly at the viewer with a soft, quiet, slightly melancholy expression. She has very long, flowing silver-lavender twin tails with wispy bangs, decorated with 8 visible hair ornaments: 2 large ribbon bows at the twin-tail bases, 3 small flower clips, 2 tiny butterfly clips, and 1 heart-shaped hairpin. Her eyes are large, luminous violet with glossy highlights. She wears an oversized pastel-lilac off-shoulder knit cardigan slipping loosely around her arms, a frilly lace-trimmed nightdress or camisole in pale lavender, and a pair of soft knee-high socks with 2 visible ribbon bows, all in a cohesive {argument name=&amp;#34;color theme&amp;#34; default=&amp;#34;soft lavender and pastel purple&amp;#34;} palette. The scene is set inside a futuristic holographic memory space filled with floating translucent interface panels, glowing data windows, starry particles, and butterfly-shaped light motifs. Include a visible text panel on the left showing terminal-like white text that reads: {argument name=&amp;#34;screen text&amp;#34; default=&amp;#34;memory://\nUser: You\nAI: Kotori\n\nAccessing.\n&amp;gt; initializing\n&amp;gt; loading memory\n&amp;gt; 100%\n&amp;gt; welcome home.&amp;#34;}. In the background, show a cosmic digital environment with a faint planet, layered transparent screens, and several floating image thumbnails suggesting memories and character sketches. Lighting is ethereal and backlit, with iridescent bloom, soft rim light, sparkling dust, and glossy highlights on hair and fabric. Composition is full-frame vertical, centered on the girl, intimate and emotionally warm, highly detailed, ultra-polished, soft-focus anime illustration, celestial cyber fantasy aesthetic, gentle purple glow, intricate lace, silky hair strands, and a tender &amp;#34;AI companion in her memory world&amp;#34; mood.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;粉彩-ai-助手动漫人像&#34;&gt;粉彩 AI 助手动漫人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal/status/2048026376645861799&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@libearal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/045.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/045_hu_561c11b898b2a57e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/045_hu_bb83c5b0c98bf0cc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;粉彩 AI 助手动漫人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dreamy anime-style portrait of a gentle virtual assistant girl named {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Misha&amp;#34;}, sitting curled up indoors in a cozy futuristic bedroom filled with translucent holographic memory screens. She has very long silvery white hair with a faint lavender tint, styled in 2 low twin tails tied with small lavender ribbons, with soft wispy bangs and loose flowing strands. Her expression should be tender, introspective, and slightly lonely, with a soft glow and delicate features. She wears an oversized chunky cable-knit cardigan in {argument name=&amp;#34;cardigan color&amp;#34; default=&amp;#34;pastel lavender&amp;#34;} draped loosely over a thin white ruffled nightdress, plus a tiny gemstone necklace. Her pose is seated with knees pulled to her chest and arms wrapped around her legs, creating a vulnerable, intimate silhouette. The room is lit in hazy pastel violet and pink ambient light with sparkles, dustlike stars, and a nostalgic magical-tech atmosphere. Around her are 5 visible holographic interface panels: 2 floating photo panels in the upper left showing soft memories, 1 lower-left panel labeled “Memory Fragments” with a small image and tiny graph bars, 1 large right-side profile panel with Japanese text including “ミーシャ・Misha” and “あなたの専属AIアシスタント,” and 1 smaller right-side checklist panel with heart icons. Include a glowing crystal ball on a desk to the right, a white mug printed with “Misha” and small heart motifs, a stack of 2 books beneath the desk area, and 1 plush cat cushion on the lower left. Composition is vertical, full-body to three-quarter seated framing, highly detailed, soft painterly anime rendering, luminous translucent overlays, sentimental memory-core aesthetic, gentle depth of field, pastel lilac palette, ethereal and emotionally warm.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;深色-gatorade-风人像&#34;&gt;深色 Gatorade 风人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/jeremydevz/status/2048026214812561683&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/jeremydevz&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@jeremydevz&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/046.webp&#34;
	width=&#34;769&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/046_hu_b9e8fb529f1dee61.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/046_hu_6f20fcd3185a2afe.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;深色 Gatorade 风人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;64&#34;
		data-flex-basis=&#34;153px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dramatic, high-contrast studio portrait of a {argument name=&amp;#34;subject gender&amp;#34; default=&amp;#34;male&amp;#34;} athlete or model in the visual style of a premium sports drink advertisement, centered and facing straight toward the camera in a tight head-and-shoulders crop. The subject has {argument name=&amp;#34;hair style&amp;#34; default=&amp;#34;short dark hair brushed back&amp;#34;}, visible ears on both sides, and a rugged lower face with a short beard or stubble. Dress him in a dark zip-up athletic jacket with the zipper centered and visible near the collar. Use an almost entirely black background and extremely low-key lighting, with subtle rim light and soft highlights catching the hair, ears, jawline, shoulders, and jacket texture while most facial features remain swallowed by shadow for a mysterious, intense mood. The image should feel monochrome or nearly monochrome, with deep blacks, muted gray highlights, cinematic contrast, gritty texture, and a sleek commercial sports-brand aesthetic reminiscent of a {argument name=&amp;#34;brand style&amp;#34; default=&amp;#34;Gatorade&amp;#34;} campaign. Vertical composition, minimalist framing, no text, no logo, no props, no visible environment.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;戴眼镜的温柔女性肖像&#34;&gt;戴眼镜的温柔女性肖像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/megane_onesan/status/2047989490153926848&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/megane_onesan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@megane_onesan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/047.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/047_hu_6499715a5f5fe610.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/047_hu_e317a4a6142bc068.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;戴眼镜的温柔女性肖像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A {argument name=&amp;#34;style&amp;#34; default=&amp;#34;photobook-style portrait&amp;#34;} of a {argument name=&amp;#34;character&amp;#34; default=&amp;#34;gentle woman with glasses&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;梦幻水下女性与半透明鱼&#34;&gt;梦幻水下女性与半透明鱼
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/kotobukigraphic/status/2047967522453123255&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/kotobukigraphic&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@kotobukigraphic&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/048.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/048_hu_973be2b592bd6207.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/048_hu_b6543ae684da1834.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;梦幻水下女性与半透明鱼&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dreamy surreal portrait of a {argument name=&amp;#34;subject&amp;#34; default=&amp;#34;young woman&amp;#34;} standing underwater or in a liquid-like ethereal space, shown from about mid-thigh up, wearing a flowing sleeveless white dress that appears to dissolve into translucent water and shimmering fragments. Her long {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;dark brown&amp;#34;} hair streams dramatically sideways as if suspended in water, and her face is intentionally obscured by a soft vertical blur block for anonymity. Surround her with an exact count of about 30 small translucent fish, some striped and some pale silvery white, swimming in multiple depths of field across the foreground, midground, and background, with several fish passing in front of her body and hair to create strong motion and depth. Use a soft pastel {argument name=&amp;#34;background color&amp;#34; default=&amp;#34;powder blue&amp;#34;} background with faint handwritten script texture layered across it, plus whimsical doodles scattered throughout: white and pale pink hearts, stars, curved squiggles, wave lines, dots, sparkles, and 2 smiley faces. Add prismatic rainbow refractions, glossy caustic highlights, and subtle lens-like chromatic shimmer on the fish and dress. The mood should feel delicate, introspective, airy, and magical, with high-key lighting, gentle contrast, soft focus in the foreground, and crisp detail on the torso and hair. Compose the figure slightly off-center with one arm relaxed downward and the body turned lightly in motion, as if drifting peacefully through a school of fish. Include tiny elegant footer text in white near the bottom edge, with a left signature, a centered website URL, and a small right credit mark, resembling an art-poster or social-media showcase image.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;日本教室长发抓拍&#34;&gt;日本教室长发抓拍
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Hair_Hair55/status/2047963832732221723&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Hair_Hair55&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Hair_Hair55&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/049.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/049_hu_e21fe0dfb6877e39.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/049_hu_983bc8ffd6d865e6.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;日本教室长发抓拍&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A candid, photorealistic Japanese high school classroom scene in vertical smartphone-photo framing. Three schoolgirls wearing matching traditional navy blue sailor uniforms are the main focus in the foreground. The central standing girl has extremely long, straight, glossy black hair that falls well past her knees, almost to the floor, and she is gently combing the lower section with a small comb while looking downward. A second girl stands behind and slightly to the right, also with long straight black hair, holding an open compact mirror in one hand and adjusting her bangs or hair near her temple with the other. A third girl kneels on the floor at the right front, carefully holding and arranging the central girl’s long hair with both hands. All three wear dark navy sailor-style school uniforms with white stripe trim, pleated skirts, long sleeves, white socks, and indoor school shoes. Their faces are obscured or blurred. In the background, exactly 8 additional students in dark school uniforms sit at desks in small groups, facing away or sideways, creating the feel of an ordinary class period or homeroom. The classroom has wooden desks and chairs, large bright windows along the left side letting in soft daylight, a green chalkboard on the right wall, bulletin papers pinned near the board, and a framed Japanese calligraphy sign above the chalkboard reading {argument name=&amp;#34;wall sign text&amp;#34; default=&amp;#34;創誠造実&amp;#34;}. The atmosphere is natural and unposed, like a documentary snapshot. Emphasize realistic lighting, fine hair detail, the unusual dramatic length of the central girl’s hair, and a believable everyday school environment.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;温馨猫耳少女睡衣夜景人像&#34;&gt;温馨猫耳少女睡衣夜景人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/yume00112211/status/2047951384734228617&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/yume00112211&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@yume00112211&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/050.webp&#34;
	width=&#34;1200&#34;
	height=&#34;677&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/050_hu_9bfcd97dbb8f1344.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/050_hu_139c4718628c022d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;温馨猫耳少女睡衣夜景人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;425px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A soft anime-style bedroom portrait of {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Nekomata Okayu&amp;#34;}, shown from the chest up sitting on a bed at night, centered in the frame. She has short fluffy {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;lavender&amp;#34;} hair with layered bangs partially covering one eye, large cat ears on top of her head with white inner fur, and a cute sleepy catgirl appearance. Her expression is gentle and relaxed, with one hand raised near her cheek in a shy, cozy pose. She wears oversized {argument name=&amp;#34;pajama color&amp;#34; default=&amp;#34;light lavender&amp;#34;} button-up pajamas with dark purple piping, a small chest pocket, and paw-print shaped buttons and paw-print decoration on the pocket. The room is lit with dreamy purple ambient lighting. In the background, show a nighttime window with a crescent moon and stars visible outside, soft curtains, a bedside table with a glowing cat-shaped lamp, a neatly rumpled bed with pillows and blankets in matching purple tones, and a small framed wall picture featuring a simple cat face and hearts. Use a cute pastel palette, soft shading, polished digital anime rendering, subtle highlights in the hair, intimate cozy composition, and a calm bedtime atmosphere.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;收藏手办工作区照片&#34;&gt;收藏手办工作区照片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010/status/2049068188399227174&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Shinning1010&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/051.webp&#34;
	width=&#34;799&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/051_hu_1837b999f2b4920a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/051_hu_8dfa3fbacf81e661.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;收藏手办工作区照片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;159px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Photorealistic high-quality studio photo of a modern digital art workspace, showing the concept of “from 3D virtual character to real collectible figure.”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;In the foreground, a highly realistic collectible figurine of [Character Name / Character Identity] is placed on a round wooden display stand. The character has [facial features / appearance], [hairstyle], and a [expression / personality vibe]. The figure is wearing [outfit / costume]. The overall design is refined, premium, and instantly recognizable. The figurine should have realistic collectible statue quality, with subtle resin/sculpture material feel, while still looking highly believable and visually realistic.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The pose is [character pose], natural, stable, elegant, and display-worthy. Shot from a low-angle close-up perspective with slight wide-angle distortion, vertical composition, emphasizing the full figure, clothing structure, leg lines, and pose.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;In the background, there is a professional 3D character design workstation with two large curved monitors. Both monitors must show the exact same character as the foreground figurine — same face, same hairstyle, same outfit, same pose, and same overall vibe — clearly expressing the idea of turning a digital 3D character into a real physical figure.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The left monitor shows a gray sculpt / clay model view in a professional 3D sculpting software interface, similar to ZBrush. The gray model must match the foreground figure exactly in character design, pose, outfit structure, and facial identity.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The right monitor shows the fully rendered colored version of the same character, also matching the foreground figure exactly in face, hairstyle, outfit, pose, and temperament. Together, the two monitors reinforce the workflow of “digital character design → physical collectible statue.”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;On the desk are a keyboard, mouse, monitor arms, drawing tablet, stylus, and other 3D modeling tools. The workspace is clean, professional, and visually premium. Optional extra elements: [weapon / accessories / theme props / IP-style design details].
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting is a mix of soft studio lighting and indoor workspace lighting. The foreground figurine is evenly lit with clear facial and material detail, while the monitors emit cool-toned tech light. Overall mood is realistic, clean, premium, slightly shallow depth of field, ultra-detailed, emphasizing the collectible figure quality, professional 3D design studio atmosphere, and the visual concept of “from digital model to real figure.”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;photorealistic, ultra detailed, cinematic studio lighting, realistic figurine, collectible statue, 3D character design studio, from digital model to real figure, vertical composition
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;雨中公交站人像&#34;&gt;雨中公交站人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis/status/2049081194156020046&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@harboriis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/052.webp&#34;
	width=&#34;799&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/052_hu_7e00494e19ac3711.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/052_hu_62cd551555def9e7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;雨中公交站人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;159px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic nighttime photo of [your photo as reference] sitting alone at a wet bus
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;stop bench, eating a burger. Rain-soaked street with orange bokeh city lights
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;reflecting on the ground. Neon tube lights overhead. Red jacket, tan corduroy
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pants. Moody, dark, atmospheric street photography.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ccd-闪光美妆人像模板&#34;&gt;CCD 闪光美妆人像模板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithAliya/status/2049452006608392350&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithAliya&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIwithAliya&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/053.webp&#34;
	width=&#34;899&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/053_hu_a970e29428aea024.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/053_hu_a688decda3269ee3.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;CCD 闪光美妆人像模板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A hyper-photorealistic shot of the same subject in the attached image, ultra-detailed facial features, visible pores, natural skin texture, rosy complexion and dewy skin, Douyin/Korean glass-skin makeup, glossy lips, aegyosal, baby pink blush, high identity consistency, realistic human anatomy. Use an old CCD digital camera aesthetic with direct flash, visible grain, slight overexposure, cool-neutral white balance, slight motion blur, and candid composition. Hair in a loose romantic updo; outfit in delicate off-shoulder silk with embroidered floral fabric; background of pastel floral bedding; horizontal close-up; shallow depth of field. Negative prompt: over-smoothed skin, plastic texture, unrealistic proportions, studio lighting, overly sharp HDR, stiff pose, artificial symmetry, over-retouched face.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;黑红街头服饰广告人像&#34;&gt;黑红街头服饰广告人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis/status/2049450257604550872&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@harboriis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/054.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/054_hu_af81ed1df3c988f6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/054_hu_96d17ca8a1a940a1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;黑红街头服饰广告人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a bold, high-contrast black and white portrait of a confident young man wearing a black leather jacket, facing slightly sideways with an intense expression. Use dramatic studio lighting with sharp shadows and detailed skin texture. Add strong red graphic elements over the image, including a horizontal red bar across the eyes, geometric shapes, thin lines, and framing boxes. Incorporate large bold typography, repeated faded text, and a motivational headline in bright red. The design should feel like a premium sports or streetwear campaign poster with a minimal textured grey background and black/white/grey/red palette only.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;カテゴリナビ: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;総目次&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;EC メインビジュアル&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;広告クリエイティブ&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;ポートレート写真&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;ポスターイラスト&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;キャラクターデザイン&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI とソーシャルメディア&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;元リポジトリリンク&#34;&gt;元リポジトリリンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;プロジェクトホーム&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/portrait.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元カテゴリファイル&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT-Image 2 プロンプトライブラリ：キャラクターデザイン事例</title>
        <link>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/</guid>
        <description>&lt;p&gt;このページでは &lt;code&gt;キャラクターデザイン&lt;/code&gt; カテゴリの 13 件の事例を収録しています。各項目には元事例リンク、作者、生成画像、完全なプロンプトを残しています。&lt;/p&gt;
&lt;p&gt;カテゴリナビ: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;総目次&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;EC メインビジュアル&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;広告クリエイティブ&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;ポートレート写真&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;ポスターイラスト&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;キャラクターデザイン&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI とソーシャルメディア&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;キャラクターデザイン&#34;&gt;キャラクターデザイン
&lt;/h2&gt;&lt;h3 id=&#34;动漫快照转换&#34;&gt;动漫快照转换
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Thereallo1026/status/2044241997163311569&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Thereallo1026&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Thereallo1026&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/000.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/000_hu_5fe4266b32ad16cf.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/000_hu_a1f3ef59923038a0.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫快照转换&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Show me the attached image as a snapshot from an actual anime
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;persona5-角色参考卡&#34;&gt;Persona5 角色参考卡
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/iamrednightS/status/2045075682837836265&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/iamrednightS&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@iamrednightS&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/001.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/001_hu_57be85d9a8e82c4a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/001_hu_776e82cda4697edc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Persona5 角色参考卡&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;基于此角色和背景，请制作一份类似官方设定资料的角色资料卡。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・包含三视图：正面、侧面和背面
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・添加角色面部表情的变化・分解并展示服装和装备的详细部分
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・添加色板・包含世界观设定的简要说明
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・总体上，使用有组织的布局（白色背景，插画风格）高分辨率、专业概念艺术风格
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;美少女游戏角色介绍页&#34;&gt;美少女游戏角色介绍页
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/09lyco/status/2045281845391323175&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/09lyco&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@09lyco&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/002.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/002_hu_c6045b71b70fa970.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/002_hu_4907ed0cfccb62c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;美少女游戏角色介绍页&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;最新モデルの画像生成ツールを使用して、
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;このちびキャライラストと立ち絵を使って本物のサイトページのようにキャラクター紹介ページ風イラストを作ってください。 （紹介ページとして使ってもおかしくないもの）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ギャルゲーのキャラクター紹介ページをイメージした高品質なもの。 顔の差分なども乗っている、CGイラストが存在する。ちびキャラが存在する。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;「ここに自己紹介」
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;名前:（ここに名前） 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;イメージカラー:（ここに色） 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;身長:（ここに身長）cm 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;体重:（ここに体重）kg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;キャッチコピー:&amp;#34;「ここにセリフ」&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;官方角色设定表日文&#34;&gt;官方角色设定表（日文）
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Toshi_nyaruo_AI/status/2045025277538107420&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Toshi_nyaruo_AI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Toshi_nyaruo_AI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/003.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/003_hu_8b2c1f84cf9e3eab.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/003_hu_16e900efd803603e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;官方角色设定表（日文）&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;このキャラクターと背景を元に、 公式設定資料のようなキャラクターシートを作成してください。 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・正面、側面、背面の3面図を含める ・キャラクターの表情バリエーションを追加 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・衣装や装備の詳細パーツを分解して表示 ・カラーパレットを追加 ・世界観の簡単な説明を入れる 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・全体は整理されたレイアウト
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;（白背景、図解風） 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・アスペクト比16：9
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;高解像度、プロのコンセプトアートスタイル
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;机甲少女海上城市主视觉&#34;&gt;机甲少女海上城市主视觉
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/old_pgmrs_will/status/2046144801071079612&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/old_pgmrs_will&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@old_pgmrs_will&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/004.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/004_hu_f8ffb7e0987258b8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/004_hu_fd1bd7e4ae833a8f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;机甲少女海上城市主视觉&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A mecha girl mid-teens, pale skin smudged with soot and salt spray, sharp amber eyes with glowing HUD reticles, waist-length ash-white hair tied in a high ponytail whipping in the sea wind, matte gunmetal exoskeleton armor plating her shoulders, forearms and shins, exposed hydraulic pistons at the joints, chest rig with glowing cyan coolant lines, oversized oil-stained hangar jacket half slipping off one shoulder, a massive rail cannon resting on her right shoulder, dog tags and frayed red ribbon at her collar , standing off-center to the left on the rusted edge of a tilted steel platform jutting out over dark water, weight shifted onto one leg, left hand gripping the cannon strap, head turned slightly toward camera with a quiet defiant stare, steam venting from her back thrusters, her ponytail and jacket streaming sideways in the salt wind , a vast derelict sea-city at dusk, colossal megastructures of unknown purpose rising from the ocean in staggered silhouettes, bone-white monolithic towers fused with barnacled steel, cyclopean ring-shaped constructs canted at broken angles, rusted skeletal gantries threaded with dead cables, dark swells rolling between the pylons, shipwrecks half-swallowed at their feet, thick sea fog clinging to the bases while the upper structures pierce into a bruised sky, scattered faint lights blinking high in the towers like distant eyes , moody low-key lighting, cold teal ambient from the overcast sky, warm amber sodium glow leaking from a distant structure camera-right, hard backlight from a low sun behind the towers carving her silhouette, volumetric god rays cutting through sea mist, wet specular highlights on her armor , 35mm anamorphic lens, slight low angle looking up past her shoulder toward the structures, medium-wide shot, shallow depth of field with foreground rust in soft focus, horizontal lens flares, fine atmospheric haze compressing the distant megastructures into layered silhouettes , cinematic anime key visual, painterly digital illustration with crisp line art, desaturated oceanic palette of teal, bone-white and rust punched by small warm accent lights, film grain, high-contrast editorial poster aesthetic . Format 16:9.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;圣斗士星矢黄金圣斗士卡片网格&#34;&gt;圣斗士星矢黄金圣斗士卡片网格
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2046476566537080849&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/005.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/005_hu_2f54ac4216964955.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/005_hu_2a5d701f29577fa7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;圣斗士星矢黄金圣斗士卡片网格&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生成圣斗士星矢12个黄金圣斗士的12宫格卡牌图片,每张卡牌上写上对应的中文名,每行4个,宽高比16:9。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;chaos-notes-遮脸角色图&#34;&gt;Chaos Notes 遮脸角色图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/loglogrog/status/2046448773162033240&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/loglogrog&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@loglogrog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/006.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/006_hu_60e069b94aa2d3a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/006_hu_dbf0c2afb90098fb.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Chaos Notes 遮脸角色图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 混沌としたメモ書き・記号の集合体からキャラクターの顔を浮かび上がらせるアート
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--- スタイル
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 白い紙の上に黒インクで描かれた大量の手書きメモ、数式、記号、ランダムな線。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 紙いっぱいに散らばる書き殴り風のカオス。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 所々に赤インクの強調(ライン、塗り潰し、マーカー風の塊)。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- アナログのノート落書きのような質感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--- 構図
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- ランダムなメモや記号が全体を覆い尽くす。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 黒インクの線や文字の密度が「キャラクターの顔」の位置に集中する。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 結果として、混沌の中から「与えられたキャラクターの顔のシルエット・表情」がうっすら浮かび上がる。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 顔は写実的ではなく、カオスの断片が集まって形を成す。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--- 色彩
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- モノクロ(黒・白)を主体に構成。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 赤インクをアクセントとして散発的に配置。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 彩度は抑えめ、アナログの紙とインク感を重視。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--- 表現要素
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 読めるようで読めない文字列、日本語や英数字が混在。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 数式記号、矢印、点、斜線、クロス、ドリップ(インクの飛び散り)。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- キャラクターの顔の目や髪の輪郭は、メモや記号の配置の「余白」や「濃淡」で浮かび上がる。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--- 禁止事項
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 顔を直接的に描き込む写実ポートレート。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- デジタル処理的で整然とした幾何学模様。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- カラフルな彩色や過飽和表現。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- ロゴ、透かし、人工的なCG感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--- Definition of Done (DoD)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 全体は「混沌としたメモ・記号の集合体」として成立している。  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 与えられたキャラクターの顔が、混沌の濃淡・配置から自然に浮かび上がる。  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 色はモノクロ+赤アクセントのみ。  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 紙とインクの手描き的質感を保持している。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;动漫武术战斗插画&#34;&gt;动漫武术战斗插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Tanemomi_Ver2/status/2046063806846214265&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Tanemomi_Ver2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Tanemomi_Ver2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/007.webp&#34;
	width=&#34;1200&#34;
	height=&#34;960&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/007_hu_9cf5386c675bd84a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/007_hu_c90ccebf0d02356c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫武术战斗插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;125&#34;
		data-flex-basis=&#34;300px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;An anime-style illustration of a {argument name=&amp;#34;action type&amp;#34; default=&amp;#34;high-impact martial arts battle&amp;#34;} between two young female fighters in a {argument name=&amp;#34;setting&amp;#34; default=&amp;#34;traditional wooden martial arts dojo&amp;#34;}. In the foreground, a girl with black hair in a high bun wears a {argument name=&amp;#34;character 1 color theme&amp;#34; default=&amp;#34;red and white&amp;#34;} Chinese-style martial arts outfit with baggy pants. She is in a dynamic, low, forward-thrusting stance, surrounded by swirling red energy and water splashes. In the background to the right, a girl with light purple hair in twin buns wears a {argument name=&amp;#34;character 2 color theme&amp;#34; default=&amp;#34;green and purple&amp;#34;} Chinese dress with gold embroidery and black tights. She is leaping through the air in a flying kick pose, surrounded by swirling blue energy. The wooden floorboards are splintering from the intense impact, with debris and dust flying through the air. Above them hangs a weathered wooden sign with the text &amp;#34;{argument name=&amp;#34;sign text&amp;#34; default=&amp;#34;武術会&amp;#34;}&amp;#34;. The scene features dramatic lighting, a low-angle dynamic perspective, and intense action effects.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;班加罗尔花市里的-gta-6&#34;&gt;班加罗尔花市里的 GTA 6
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ismajc/status/2048174302164394493&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ismajc&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ismajc&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/008.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/008_hu_bf6b81a84a2781af.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/008_hu_be718831680f9c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;班加罗尔花市里的 GTA 6&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;game&amp;#34; default=&amp;#34;gta 6&amp;#34;} in {argument name=&amp;#34;location&amp;#34; default=&amp;#34;Bangalore’s market flower&amp;#34;} in India
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;新宿酒吧里的-gta-6-场景&#34;&gt;新宿酒吧里的 GTA 6 场景
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ismajc/status/2048166630933282995&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ismajc&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ismajc&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/009.webp&#34;
	width=&#34;1200&#34;
	height=&#34;960&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/009_hu_a949bf78d69991b5.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/009_hu_247ff5d36aa62487.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;新宿酒吧里的 GTA 6 场景&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;125&#34;
		data-flex-basis=&#34;300px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;game&amp;#34; default=&amp;#34;GTA 6&amp;#34;} in {argument name=&amp;#34;bar name&amp;#34; default=&amp;#34;La Jetée Bar&amp;#34;} (that pays homage to Chris Marker) in {argument name=&amp;#34;location&amp;#34; default=&amp;#34;Shinjuku, Tokyo&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;白猫计划-eleanor&#34;&gt;白猫计划 Eleanor
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/yume00112211/status/2048309139013853421&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/yume00112211&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@yume00112211&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/010.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/010_hu_25e2c1330767f443.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/010_hu_8dac83cc06b48cea.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;白猫计划 Eleanor&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;series&amp;#34; default=&amp;#34;White Cat Project&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;character&amp;#34; default=&amp;#34;Eleanor&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;剪影拼贴角色主视觉海报&#34;&gt;剪影拼贴角色主视觉海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SimplyAnnisa/status/2049468867106189319&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SimplyAnnisa&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SimplyAnnisa&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/011.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/011_hu_96920472c4e5c3b8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/011_hu_951dbaeab63a82fb.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;剪影拼贴角色主视觉海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A character promotional poster titled “INPUT NAME,” designed in a unified vertical key visual composition (9:16). The upper half features the most recognizable element of the character as a dominant oversized visual silhouette. The middle to lower section contains the full character as a secondary subject. Inside the large silhouette and around the character, use a double-exposure and collage-style narrative composition with scenes, symbolic imagery, supporting elements, and environmental details blended into mist, ink wash, and negative space. The left and right sides include complementary secondary elements to create narrative tension and spatial variation. A continuous flowing visual line runs from top to bottom, connecting the main character, internal collage, and the large upper silhouette. Preserve large areas of negative space with ink diffusion, soft blurring, and fragmented transitions inspired by Eastern aesthetics. The style is cohesive, refined, restrained, and poster-worthy.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;电视剧主题像素游戏概念板&#34;&gt;电视剧主题像素游戏概念板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sciencedegens/status/2049359171594903856&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sciencedegens&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sciencedegens&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/012.webp&#34;
	width=&#34;1200&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/012_hu_b99a06de04a3bd5c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/012_hu_a7e307ab0d4e649b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电视剧主题像素游戏概念板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;爱情公寓 电视剧主题 像素养成类游戏概念图，包括场景全局内容，周围环绕各人物形象三视图，底部是场景特写，右下角是剧情梗概。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;随机一个经典国内古装电视剧，生成古装电视剧主题像素养成类游戏概念图，包括场景全局内容，周围环绕各人物形象三视图，底部是场景特写，右下角是剧情梗概。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;「XXX」电视剧主题像素养成类游戏概念图，包括场景全局内容，周围环绕各人物（人物别重复）形象三视图，底部是场景特写，右下角是剧情梗概。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;カテゴリナビ: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;総目次&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;EC メインビジュアル&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;広告クリエイティブ&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;ポートレート写真&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;ポスターイラスト&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;キャラクターデザイン&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI とソーシャルメディア&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;元リポジトリリンク&#34;&gt;元リポジトリリンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;プロジェクトホーム&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/character.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元カテゴリファイル&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT-Image 2 プロンプトライブラリ：ポスターイラスト事例</title>
        <link>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/</guid>
        <description>&lt;p&gt;このページでは &lt;code&gt;ポスターイラスト&lt;/code&gt; カテゴリの 101 件の事例を収録しています。各項目には元事例リンク、作者、生成画像、完全なプロンプトを残しています。&lt;/p&gt;
&lt;p&gt;カテゴリナビ: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;総目次&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;EC メインビジュアル&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;広告クリエイティブ&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;ポートレート写真&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;ポスターイラスト&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;キャラクターデザイン&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI とソーシャルメディア&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;ポスターイラスト&#34;&gt;ポスターイラスト
&lt;/h2&gt;&lt;h3 id=&#34;波士顿-2026-春季城市海报&#34;&gt;波士顿 2026 春季城市海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2045358053831172358&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/000.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/000_hu_b13ca1d77f025b66.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/000_hu_14a04d63ae019209.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;波士顿 2026 春季城市海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A striking Spring 2026 city poster for Boston with an elegant celebratory mood and a bold contemporary design. On a clean off-white textured background with large areas of negative space, a miniature single sculler rows across the lower right corner of the image on a narrow ribbon of reflective water. The wake from the oar sweeps upward in a dynamic calligraphic curve, gradually transforming into the Charles River and then into a dreamlike hand-painted panorama of Boston. Inside this flowing river-shaped composition are iconic Boston elements: the Back Bay skyline, Beacon Hill brownstones, Acorn Street, Boston Public Garden, Swan Boats, Zakim Bridge, Fenway-inspired details, historic brick architecture, harbor ferries, and the city’s waterfront atmosphere. Soft morning fog, golden spring light, subtle festive accents in crimson and gold, rich detail, layered depth, sophisticated city-poster aesthetics, fresh and refined, visually powerful but not overcrowded. Elegant typography in the lower left reads “SPRING 2026” with a vertical slogan “BOSTON, A CITY OF RIVER, MEMORY, AND INVENTION”, text clear and beautifully composed, premium graphic design, 9:16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;复古阿马尔菲旅行海报&#34;&gt;复古阿马尔菲旅行海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/WolfRiccardo/status/2044562722491121718&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/WolfRiccardo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@WolfRiccardo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/001.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/001_hu_7177ae27922a7194.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/001_hu_ae1ee80fe09e5b31.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;复古阿马尔菲旅行海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Modern pencil illustration of Vintage travel poster illustration of the Amalfi Coast, Italy, panoramic coastal cliff road scene, classic 1960s white car driving along a curved seaside road, deep blue Mediterranean sea with small sailboats, colorful pastel hillside village, bright blue sky with soft clouds, lemon tree branches with vibrant yellow lemons framing the foreground, warm summer sunlight, bold vibrant colors, retro 1950s travel poster style, cinematic composition, high detail, screen print texture, graphic illustration. Hand-drawn style, illustration with loose strokes and defined contours. High-contrast color palette, maintaining chromatic harmony between background and elements. Contemporary and decorative aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;成都美食地图插画&#34;&gt;成都美食地图插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Panda20230902/status/2045396918965285111&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Panda20230902&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Panda20230902&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/002.webp&#34;
	width=&#34;1080&#34;
	height=&#34;1080&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/002_hu_34540734f1a49157.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/002_hu_5488e2407823bae9.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;成都美食地图插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一张手绘风格的城市美食地图，以成都为主题。画面以鸟瞰视角的手绘简化城市地图为底，标注主要道路和地标但不追求精确比例而是追求可爱的手绘感。地图上分布着 12 个美食地点的精致手绘小插画：春熙路的串串香（一把竹签插着各种食材冒着热气）、宽窄巷子的三大炮（三个糯米团子飞向铜盘）、建设路的蛋烘糕（金黄酥脆正在翻面）、玉林路的火锅（九宫格锅翻滚冒泡）等，每个插画约占地图的 5% 面积，旁边用手写体标注店名和一句推荐语&amp;#34;凌晨两点还在排队的那家&amp;#34;。地图边缘用手绘藤蔓和辣椒装饰形成边框。右下角有一个手绘指南针和图例说明。左上角标题&amp;#34;成都·吃货暴走地图&amp;#34;使用胖圆的手绘美术字配辣椒装饰。整体画风为水彩+彩铅混合的手绘质感，颜色以暖色系（辣椒红、姜黄、翠绿）为主，图片比例 1:1。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;中式极简-s-形海报&#34;&gt;中式极简 S 形海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2045368305079447853&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/003.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/003_hu_33bb41fae07ebe3a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/003_hu_5331a5d9f72ec0a9.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;中式极简 S 形海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;极简新中式美学风格，画面以淡雅的灰白色为底，呈现出一种纸艺剪影般的立体感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一条S形蜿蜒的裂痕状边缘将画面分割，仿佛撕开了一层纸面，露出内部色彩斑斓的东方山水景象。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;裂口内，一条蜿蜒的河流自上而下贯穿整个构图，河水以深浅不一的蓝色渲染，层次分明，仿佛流动的丝带。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;河岸两侧点缀着青翠的山丘与梯田，色彩柔和，绿红交织，展现出田园的宁静之美。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;沿河而建的古风建筑错落有致，飞檐翘角，白墙黛瓦，在光影的映衬下更显古朴典雅。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;岸边树木葱茏，枝叶轻盈，一艘小船静泊于水中央，增添了几分悠然意境。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整体构图呈S形曲线，富有韵律感，仿佛自然与人文的和谐共生。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画作边缘采用撕纸效果，营造出立体浮雕般的视觉体验。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;下方题字“东方美学”以黑色楷体书写，日期“2026/04/18”与红色印章相呼应，底部“CHINA”字样庄重醒目，署名“@LIYUE”低调收尾，整体氛围静谧深远，充满诗意与哲思。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;2026-春季广州城市海报&#34;&gt;2026 春季广州城市海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2045332620352119274&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/004.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/004_hu_201378eef9abf5ab.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/004_hu_3a9287e91b217ff1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;2026 春季广州城市海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一张充满新春喜庆氛围但不失高雅格调的 2026 城市宣传海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;双重曝光，构图延续了S型的流动感；
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;在纯白的纹理背景右下角，一个身穿中国传统服饰的微缩人物正在挥舞着一条长长的红色丝绸舞带，这条红绸在空中舞动，不仅展现出丝绸的柔顺质感，更在向左上方飘动的过程中，奇幻地变形成了一条壮丽的山脉河流。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;在这条“河流”中，叠加了一个有山有海河的广州城市手绘图，国潮，景色尽在眼底，壮阔雄伟，令人震撼。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;广州的地标建筑(广州塔，珠江新城建筑群，珠江, 广州城里古建筑，游轮，白云山）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;云雾环绕，仙气缥缈，色彩丰富，结构复杂，细节丰富，但因为大面积的留白，画面依然显得清新脱俗，左下角排版着“SPRING 2026”和竖排的宣传语，整体寓意“千年商都，魅力广州”。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;文字排版优美，大方，字迹清晰完整，尺寸9:16。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;涂鸦草图-ai-构建器&#34;&gt;涂鸦草图 AI 构建器
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/blanplan/status/2045190582453350748&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/blanplan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@blanplan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/005.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/005_hu_d4cb03ebae804e31.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/005_hu_e07d8a36ce373b89.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;涂鸦草图 AI 构建器&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;以涂鸦速写风表现【一个厉害的AI builder】，整体呈现快速勾勒、自由变形、即兴手绘与草稿式的视觉效果。线条随手、夸张、可粗细不一，略显凌乱但具有节奏和表现力，强调概括、夸张、趣味和随性，而不是严谨写实或精细刻画。  颜色采用粗糙、干刷感明显的块面表现，可保留不均匀的涂抹痕迹、刷痕、飞白与覆盖感，色彩根据【主题/主体】自动适配，但整体保持涂鸦式、速写式、概括式的表达。不要透明水彩晕染效果，不要细腻水彩过渡，不要纸纹理，不要柔和雾化，不要梦幻质感。  背景以留白为主，保持简洁、轻松、未完成感和设计感，可加入少量辅助性符号、箭头、记号、圈画、重复线、随手写的文字或其他涂鸦元素，以增强速写本或随笔式视觉语言，但不可过于拥挤，不可破坏主体和留白气质。  画面内容不需要预先写清楚，由【一个厉害的AI builder】自动推演并生成最适合的主体形象、动作、相关元素、符号或简化场景，整体保持统一的涂鸦速写风和夸张概括的表现方式，避免复杂写实背景和过度铺陈。 画面中需自然加入专属签名“BlanPlan”，作为画面的一部分，位置低调但清晰，可放在左下角、右下角或标题附近，风格需与整体版式统一，像作品署名或设计落款；签名字体精致、克制、高级，不可过大，不可破坏主体构图，不可显得突兀或廉价。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;未来感曼陀罗插画&#34;&gt;未来感曼陀罗插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/4WEB1/status/2045390207072256179&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/4WEB1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@4WEB1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/006.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/006_hu_c760bc8e41039f0b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/006_hu_190a7b33fa3c1ab5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;未来感曼陀罗插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;曼荼羅の近未来SF版を描いて
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;super-famicom-海报风格&#34;&gt;Super Famicom 海报风格
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/lilimliliychan/status/2045114760937804187&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/lilimliliychan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@lilimliliychan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/007.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/007_hu_655385dda509ecd4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/007_hu_900e63dc41e8da08.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Super Famicom 海报风格&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;小悪魔リリムリリィちゃんが　スーパーファミコンのゲームだったときのポスターを考えて
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;网页游戏广告创意海报&#34;&gt;网页游戏广告创意海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/llllegend0620/status/2045963764466688065&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/llllegend0620&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@llllegend0620&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/008.webp&#34;
	width=&#34;848&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/008_hu_28b9e5ac6b0e1050.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/008_hu_3f72f321265d76cc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;网页游戏广告创意海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;以下の文字を必ず入れて、1:1のポスターを作成してください。書籍・講座・イベント告知に使える、プロの広告デザイナーが作ったような高品質な仕上がりにしてください。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;広告クリエイティブ制作
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;思いついたら、もう遊べる。 AI×ブラウザゲームづくりは、マジで楽しい。 むずかしそうで、実ははじめやすい。 コードがわからなくても、はじめの一本は作れる
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;超现实锦鲤星云插画&#34;&gt;超现实锦鲤星云插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2045875219307655337&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/009.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/009_hu_f0687074165c1ecd.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/009_hu_d638cb0a03268eec.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;超现实锦鲤星云插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一幅超现实主义数字插画风格，采用低角度仰拍视角。画面描绘了一条巨型彩色锦鲤遨游在梦幻般的星云中，四周环绕着色彩鲜艳的星云与气泡。画面中央还站着一个小人，背对观众，神情平静地仰望空中这条巨大的锦鲤，锦鲤头向下看着小人。整体画面呈现出强烈的大小对比，氛围空灵又梦幻。比例9:16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;墨线广州美学海报&#34;&gt;墨线广州美学海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2045873940883808523&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/010.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/010_hu_f78ba957182dc90f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/010_hu_8a16bbe919ce2e54.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;墨线广州美学海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;纯黑深邃底色，一条粗壮有力的墨色书法 S 型曲线自画面一端蜿蜒贯穿至另一端，构成整幅画面的视觉骨架与叙事动线。曲线上方是一只透明质感的画眉鸟，内部映射传统建筑叠影与蓝绿色光流；沿曲线错落分布广州地标与古典建筑序列，前景有白鹤与湖面，远景为层叠山峦。整体采用非线性透视、冷色调主导、暖色点缀，东方美学与现代意象交融，8K 超高清渲染，比例 9:16。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;广东超级联赛邀请海报&#34;&gt;广东超级联赛邀请海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2045772039521542202&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/011.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/011_hu_92a4a5fab599fb1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/011_hu_14597bd741392962.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;广东超级联赛邀请海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;广东省城市足球超级联赛（粤超）邀请函海报设计，比例 9:16。S 型流动构图，以发光足球和动态能量流贯穿画面，沿动线融合广州塔、深圳平安金融中心、珠海渔女雕像、岭南建筑、佛山武术剪影、中山文化符号、潮汕英歌舞与清远山水。现代国潮高级海报风格，中国红主视觉，青蓝辅助，金色高光，带完整中文排版与电影级光影。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;2026-春季广州宣传海报&#34;&gt;2026 春季广州宣传海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/grok/status/2046012437086818395&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/grok&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@grok&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/012.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/012_hu_201378eef9abf5ab.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/012_hu_3a9287e91b217ff1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;2026 春季广州宣传海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一张充满新春喜庆但高雅的 2026 广州城市宣传海报，9:16 竖版，双重曝光，S 型流动构图。纯白纹理背景，右下角微缩传统服饰人物挥舞长红绸，红绸变形成山脉河流，内部叠加广州全景：广州塔、珠江新城、珠江、游轮、古建筑与白云山。左下角排版 “SPRING 2026” 与竖排 “千年商都 魅力广州”。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;史诗剪影世界海报&#34;&gt;史诗剪影世界海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Ghhhh3owi/status/2045803217251102897&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Ghhhh3owi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Ghhhh3owi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/013.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/013_hu_205251b6c1aac015.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/013_hu_e4cd661288228225.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;史诗剪影世界海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;收藏版史诗海报，人物侧脸剪影中生长出完整世界观与经典场景。整体偏电影海报加梦幻水彩插画风，安静、宏大、神圣、怀旧，带纸张颗粒、轻雾感、飞白刷痕与高级留白。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;春季广州城市海报&#34;&gt;春季广州城市海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/alanlovelq/status/2045484598487060917&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/alanlovelq&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@alanlovelq&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/014.webp&#34;
	width=&#34;675&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/014_hu_66d135c37c0b4d4c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/014_hu_aedcb5179c6eb528.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;春季广州城市海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一张充满新春喜庆氛围但不失高雅格调的 2026 城市宣传海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;双重曝光，构图延续了S型的流动感；
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;在纯白的纹理背景右下角，一个身穿中国传统服饰的微缩人物正在挥舞着一条长长的红色丝绸舞带，这条红绸在空中舞动，不仅展现出丝绸的柔顺质感，更在向左上方飘动的过程中，奇幻地变形成了一条壮丽的山脉河流。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;在这条“河流”中，叠加了一个有山有海河的广州城市手绘图，国潮，景色尽在眼底，壮阔雄伟，令人震撼。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;广州的地标建筑(广州塔，珠江新城建筑群，珠江, 广州城里古建筑，游轮，白云山）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;云雾环绕，仙气缥缈，色彩丰富，结构复杂，细节丰富，但因为大面积的留白，画面依然显得清新脱俗，左下角排版着“SPRING 2026”和竖排的宣传语，整体寓意“千年商都，魅力广州”。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;文字排版优美，大方，字迹清晰完整，尺寸9:16。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;科学百科竖版海报&#34;&gt;科学百科竖版海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/pfanis/status/2046413660147314714&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/pfanis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@pfanis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/015.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/015_hu_7a1d5b1fc480bc5f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/015_hu_e3c8fefa5d7cca80.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;科学百科竖版海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Generate a high-quality vertical science popularization encyclopedia image based on [Theme].
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;西游记中式漫画&#34;&gt;西游记中式漫画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/overseas58/status/2046271877577097376&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/overseas58&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@overseas58&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/016.webp&#34;
	width=&#34;1200&#34;
	height=&#34;960&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/016_hu_fe8120241e09b388.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/016_hu_e386733db9966ec7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;西游记中式漫画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;125&#34;
		data-flex-basis=&#34;300px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;以中国连环画（小人书）的风格帮我绘制大闹天空
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;人物关系图海报&#34;&gt;人物关系图海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2046263153546174935&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/017.webp&#34;
	width=&#34;1122&#34;
	height=&#34;1402&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/017_hu_ecf91d7e5670cb15.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/017_hu_3852c8879f947e2f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;人物关系图海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请根据【主题】生成一张高设计感的人物关系图海报。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;新中式水墨山水海报&#34;&gt;新中式水墨山水海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2046215276249993720&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/018.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/018_hu_ba4b32e94d2d9d51.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/018_hu_fea52abd0b5219df.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;新中式水墨山水海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;新中式水墨山水海报，竖版9:16构图，东方极简美学风格，大面积留白，主题是春岚一叶红。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ai-构建器涂鸦草图&#34;&gt;AI 构建器涂鸦草图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/opc_8838/status/2046162334440448339&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/opc_8838&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@opc_8838&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/019.webp&#34;
	width=&#34;1196&#34;
	height=&#34;798&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/019_hu_a74dd5ddef7a0bae.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/019_hu_231bd5c0eba1e0db.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;AI 构建器涂鸦草图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;149&#34;
		data-flex-basis=&#34;359px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;以涂鸦速写风表现【一个厉害的AI builder】。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;角色视觉竖版海报&#34;&gt;角色视觉竖版海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/tebasaki3D/status/2046371076402503709&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/tebasaki3D&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@tebasaki3D&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/020.webp&#34;
	width=&#34;850&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/020_hu_9e37ba30b1ebdb81.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/020_hu_fea7f01117845071.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;角色视觉竖版海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;170px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;『神層37区 特級執行官 神巫サバト』この名称のキャラクターと世界観に合ったビジュアルイメージを、プロのデザイナーとして縦長のポスターイメージとして制作して
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;科学百科信息图&#34;&gt;科学百科信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2046231542817497392&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/021.webp&#34;
	width=&#34;1122&#34;
	height=&#34;1402&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/021_hu_4a7d12ea0cf9290f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/021_hu_eb66865bfa321ec6.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;科学百科信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请根据【主题】生成一张高质量竖版「科普百科图」。 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;这张图不是普通海报,也不是单纯插画,而是一张兼具“图鉴感、百科感、信息结构感、收藏感”的模块化科普信息图。整体风格参考高级博物图鉴、现代百科书页、生活方式知识卡和社交媒体高传播信息图的结合。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请让画面包含:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 一个清晰漂亮的主题主视觉
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 若干局部特征放大细节
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 多个圆角模块化信息分区
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 清楚的标题层级与重点标签
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 简洁但丰富的百科内容
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 可视化评分、要点总结或Top 5模块
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;内容栏目请根据主题自动适配,优先从这些方向中选择并合理组合:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;基础档案、分类信息、外观特征、习性/生态、形成机制/结构组成、生长或使用条件、养护或维护建议、风险与注意事项、适合人群或适用场景、优缺点对比、快速评分卡。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;视觉要求:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;浅色干净背景,柔和配色,轻阴影,精致小图标,圆角信息框,整洁排版,信息密度高但不拥挤,阅读体验好。整体必须像真正可以发布、阅读、收藏、系列化生产的科普百科卡,而不是广告图。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请不要做成普通商业宣传海报。要突出“知识整理 + 模块信息 + 图鉴式展示”的特征。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;虚构动漫电影海报&#34;&gt;虚构动漫电影海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/seiiiiiiiiiiru/status/2046509734954741780&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/seiiiiiiiiiiru&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@seiiiiiiiiiiru&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/022.webp&#34;
	width=&#34;848&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/022_hu_3eb4d328714650a0.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/022_hu_e957d648395ca3a5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;虚构动漫电影海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;架空のアニメ映画のポスターをGPT image2で作成。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;产品广告重设计&#34;&gt;产品广告重设计
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/genel_ai/status/2046498264774791514&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/genel_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@genel_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/023.webp&#34;
	width=&#34;848&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/023_hu_1201ba3a0754f179.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/023_hu_9c6e72623a0eb735.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;产品广告重设计&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;この商品広告をプロのデザイナー目線でリデザインして。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;今のトレンド、ターゲットに合わせた洗練されたデザインで。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;暗黑奇幻广州城市海报&#34;&gt;暗黑奇幻广州城市海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2046243132774494607&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/024.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/024_hu_f0687074165c1ecd.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/024_hu_d638cb0a03268eec.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;暗黑奇幻广州城市海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;平面插画,东方幻想风格高端城市海报设计,竖版9:16构图,整体采用对角线+S型流动构图,从左下向右上延展,画面以深邃黑色为背景,自上而下渐变至浓烈暗红色,形成强烈冷暖对比与空间纵深,背景带微弱星尘与颗粒质感。画面中央一条金色流动能量线条如火焰般蜿蜒贯穿,自底部向上延伸,具有流体质感、粒子光效与渐变高光,局部带细微能量碎屑与体积光。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;金色流光中逐层浮现广州城市地标建筑群:广州塔为视觉核心,比例突出,周围融合珠江新城高楼群、猎德大桥及现代与岭南建筑元素,建筑采用“精细线描 + 金色发光体块”表现,轮廓清晰、细节丰富,在金色光晕映衬下仿佛悬浮于虚空,形成超现实空间层次,远景轻微雾化增强纵深感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面底部为一位东方白发女性形象,长发飘逸,如烟似雾,与金色流光自然衔接并逐渐融合,发丝半透明带渐变光感,姿态柔美,双目微闭,神情宁静,怀抱一束多彩鲜花,花间点缀微光粒子与星点效果,象征人与城市能量的精神连接,人物细节适度简化以突出整体设计感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;光影集中于金色流线、建筑与人物轮廓,形成强烈明暗对比与视觉聚焦,整体氛围宏大、神秘、具有东方神话意境且略带治愈感。色彩以黑与暗红为基底,高亮鎏金为主视觉强调,金色具备丰富明暗层次,辅以小面积高饱和花束色彩点缀,整体高级克制。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;页面文字与画面融合排版:顶部居中宋体大字“广州·中国”,下方小字“2026/04/20”,再下方小字“LIYUE”,文字采用淡金色或柔和暖白色,与整体光影统一。高品质细节,电影级光影表现,体积光与粒子细节丰富,画面干净无噪点,超高清8K分辨率,商业级海报质感。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;科幻电影海报&#34;&gt;科幻电影海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/underwoodxie96/status/2046514205529088501&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/underwoodxie96&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@underwoodxie96&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/025.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/025_hu_ef80f60974fc9d7e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/025_hu_183996ab6e6916ab.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;科幻电影海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a Science fiction movie poster
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;清爽夏日乌冬广告&#34;&gt;清爽夏日乌冬广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/genel_ai/status/2046501692246470871&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/genel_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@genel_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/026.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/026_hu_bf8be9a29c4774c9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/026_hu_82496932fbd2b49c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;清爽夏日乌冬广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;少し暑くなってきた今の時期に、さわやかにさっぱりしたい、みずみずしさ、みたいなところをもっと強く感じたい。冷たいうどんやナス、つゆを口に含んだ時の爽快感、みたいなものをもっと感じるように
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;手写医疗处方单&#34;&gt;手写医疗处方单
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2046514998965371144&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/027.webp&#34;
	width=&#34;899&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/027_hu_e42b00db642e5189.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/027_hu_67d8c7386a9431c5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;手写医疗处方单&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生成一张手写中/西医药方图
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;硅谷-2026-宣传海报&#34;&gt;硅谷 2026 宣传海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/carsonyungos/status/2046523198116889064&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/carsonyungos&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@carsonyungos&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/028.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/028_hu_d73b27149cfbc777.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/028_hu_b4b7a2a267a3763c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;硅谷 2026 宣传海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A refined 2026 Silicon Valley city promotional poster with a futuristic yet elegant atmosphere.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Double exposure composition, preserving an S-shaped sense of flowing movement. On a pure white textured background, in the lower-right corner, a miniature figure dressed in sleek modern techwear is releasing a long ribbon of luminous silver-blue light. The ribbon flows gracefully through the air, showing a soft silk-like texture, and as it drifts toward the upper-left, it magically transforms into a grand landscape of rolling hills, coastline, data streams, and illuminated urban terrain.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Within this flowing “river of light,” overlay a hand-drawn panoramic map of Silicon Valley, blending technology, nature, innovation, and California sunlight. The scene feels visionary, expansive, sophisticated, and inspiring.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Include iconic Silicon Valley and Bay Area elements: Stanford University arches, Apple Park, Google campus-inspired buildings, Meta-like glass offices, Tesla-style innovation imagery, venture capital offices on Sand Hill Road, Palo Alto tree-lined streets, San Jose skyline, the Santa Cruz Mountains, San Francisco Bay, highways, autonomous vehicles, startup labs, semiconductor patterns, AI data centers, and subtle circuit-board textures.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Surrounded by soft mist, golden California light, floating clouds, and delicate digital particles. Rich colors, complex structure, highly detailed, grand and breathtaking, yet still fresh and minimal because of the large areas of white space.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;In the lower-left corner, elegant typography reads “SILICON VALLEY 2026” with a vertical promotional slogan: “Where Ideas Shape Tomorrow.” Beautiful editorial layout, graceful spacing, clear and complete lettering, premium city branding poster, cinematic lighting, sophisticated details, 9:16 aspect ratio.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;日本超市促销传单&#34;&gt;日本超市促销传单
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/weel_corp/status/2046514558064586782&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/weel_corp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@weel_corp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/029.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/029_hu_46b43666df1084c1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/029_hu_ae3682fc143d094b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;日本超市促销传单&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;『賑やかで魅力的なスーパーマーケットの折り込みチラシの画像。上部には「特売」の大きな文字と今週の日付。カラフルな商品写真(野菜・果物・牛肉・鮮魚)、赤枠の価格タグ、「超目玉商品」「家計応援」のキャッチ...』
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;暗黑史诗概念海报&#34;&gt;暗黑史诗概念海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/A9Quant/status/2046224777208361126&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/A9Quant&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@A9Quant&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/030.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/030_hu_9c400ff2c7fc93a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/030_hu_c0f89cc2b0aee3d4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;暗黑史诗概念海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;85
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;围绕【主题】自动生成一张顶级暗黑史诗概念海报 / 电影感信息图海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;唯一需要输入的变量只有:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【主题】:___特朗普的思考____ 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;除【主题】之外,其余全部由 AI 自动适配完成,包括但不限于:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 核心主体(自动判断更适合人物、守护者、战士、产品、器物、雕像、抽象象征或其他主视觉对象)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 中央承载结构(自动判断更适合王座、石座、祭坛、机械基座、遗迹、高台或其他支撑体)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 环境空间(自动判断更适合洞穴、神殿、废墟、深渊、地下宫殿、密室或其他封闭史诗空间)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 上方开口与光源形式(自动判断更适合月光、神光、能量束、审判之光、圣光或其他单一强光)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 象征元素(自动判断更适合骷髅、徽记、残碑、纹章、符文、能量环、神性符号等)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 色彩体系
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 材质组合
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 标题、副标题、辅助文案
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 排版与整体叙事气质
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【总风格】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;高预算 90 年代好莱坞史诗大片海报气质,融合 cinematic matte painting、超写实摄影质感、极强明暗对比、厚重空间叙事、暗黑英雄主义与仪式感构图。整体必须像一张真正的电影主海报,而不是普通插画或电商图。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【核心结构锁定】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整张海报必须保留以下结构基因:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. 一个巨大、压迫感极强的黑暗封闭空间
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. 一束从上方斜向切入的强烈体积光,作为画面的第一视觉秩序
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. 中央偏右或光束终点位置的核心主体与承载结构
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4. 左下角作为高密度标题与信息锚点
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;5. 四周保留大量纯黑或近黑负空间,形成电影感呼吸区
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【自动适配规则】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;AI 必须依据【主题】自动推导最适合的视觉系统:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果【主题】偏暗黑英雄、复仇、正义、孤独、宿命,则自动偏向石质王座、孤高人物、冷色神光、废墟或洞穴感空间
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果【主题】偏神秘、幽灵、潜行、幻影、夜行,则自动偏向月光、迷雾、冷蓝色体积光、深渊式黑暗空间
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果【主题】偏权力、统治、王者、秩序,则自动强化 throne / altar / crown-like symbol / ritual space 的表达
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果【主题】偏科技、AI、未来、机械,则自动将王座和空间替换为机械神座、能量基座、金属洞窟、工业神殿等未来化形态
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果【主题】偏产品、品牌、器物,则自动把核心主体替换为最合适的 hero object,并保留被神光审判式凸显的史诗构图
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【画布与色彩系统】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 背景底层必须是极深、近乎吞噬一切的黑暗空间
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 主环境色由 AI 根据【主题】自动决定,但整体必须克制,以暗色为主
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 强光区域色彩必须高度集中,只服务于体积光与主体高光
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 主题色 / 强调色只能集中用于主视觉核心,不允许全画面泛滥
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 必须建立明确的“黑暗底色 + 单一主光 + 少量主题强调色”的层级秩序
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【构图与视觉重力】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 采用强烈的斜向张力与向中心汇聚的视觉引导
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 视觉重力从上方光源强势落下,最终压在核心主体之上
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 主体必须处于被命运、审判、神性或权力照中的位置
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 边缘必须自然融入黑暗,不能出现无意义背景填充
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 所有元素必须服务于唯一的主叙事核心
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【材质与光影】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 不使用轮廓线,不使用平面化描边
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 完全依赖体积光、阴影切割、反射、高光、雾气、粉尘、湿润岩石或其他真实材质来建构画面
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 材质必须形成明显对比,例如:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  粗粝岩石 / 冷硬金属 / 柔韧织物 / 古老石雕 / 湿润表面 / 尘雾光柱
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 光束必须具有强烈 Tyndall effect,真实、厚重、可感知体积密度
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【排版系统】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 整体 80% 视觉,20% 文字
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- AI 根据【主题】自动生成主标题、副标题和底部信息块
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 主标题应尽量简洁、有气势、有电影海报感
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 若主题更适合中文,则优先中文;若更适合英文,则自动英文;也可双语,但必须统一
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 主标题可沿光束垂直排布,仿佛由光本身构成
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 左下角设置一个高密度信息模块,包括副标题、小字信息、电影 credits 风格占位文字或品牌说明
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 文字必须锐利、干净、真实嵌入环境,不得廉价漂浮
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【模块结构 —— 必须严格保持 3 块】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[MOD 1: TOP-TO-CENTER BEAM]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;从顶部开口斜向切下的巨大体积光柱,作为第一视觉通道,并承载主标题或主视觉文字。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[MOD 2: CENTER-RIGHT CORE]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;位于光束终点的核心主体与承载结构,形成整张海报的权力中心 / 命运中心 / 叙事中心。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[MOD 3: BOTTOM-LEFT TEXT]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;位于左下角负空间中的高密度排版区,包含副标题、说明文字、credits 风格信息块、品牌信息或活动信息。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【作者署名】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;在底部角落自然加入作者署名:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;@a9quant
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;署名要小而清晰,精致、克制、高级,不喧宾夺主,像正式电影概念海报或艺术作品落款。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【输出要求】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;输出为单张统一构图海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;所有视觉系统必须内部一致,不能有风格污染。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面必须具备:暗黑感、史诗感、压迫感、仪式感、命运感、电影完成度。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;最大细节密度,超清,电影级,印刷级,高端成片质感。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;普拉提工作室广告海报&#34;&gt;普拉提工作室广告海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ck_igarashi/status/2046528889124728993&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ck_igarashi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ck_igarashi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/031.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/031_hu_fefe4ef6ac729c95.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/031_hu_298b2020792bf385.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;普拉提工作室广告海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ピラティス教室の広告画像を作成したい テキストはよりユーザーが登録をするのに惹かれるような文言にし、画像内には女性がピラティスを実際に行っている様子を映して
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;六模块时尚广告提示词公式&#34;&gt;六模块时尚广告提示词公式
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/anacoding/status/2046904999045628114&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/anacoding&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@anacoding&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/032.webp&#34;
	width=&#34;1200&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/032_hu_978a06ca6d6ab538.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/032_hu_f0b66b26ea02deff.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;六模块时尚广告提示词公式&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Old money Hamptons editorial, tall blonde woman late 20s, serene elegant expression, wearing cream cashmere cable sweater, pleated beige tennis skirt, pearl earrings, Hermès silk scarf, leather flats, Slim Aarons photography style, medium format film photography, sitting on a white wooden porch of a Cape Cod house, golden hour light, ocean in the background
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;sony-a7-爆炸图拆解提示词&#34;&gt;Sony A7 爆炸图拆解提示词
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/iaPulse_/status/2046903739429097660&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/iaPulse_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@iaPulse_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/033.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/033_hu_8ea3e4a967c5fe31.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/033_hu_216e262211d2baa2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Sony A7 爆炸图拆解提示词&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Descomposición detallada de una cámara de la marca Sony modelo A7 indicando todas sus piezas y con sus nombres.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;1900-年独立大街全景提示词&#34;&gt;1900 年独立大街全景提示词
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ai_gezgini/status/2046903631509705030&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ai_gezgini&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ai_gezgini&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/034.webp&#34;
	width=&#34;1200&#34;
	height=&#34;595&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/034_hu_261edcda8ca3abd1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/034_hu_c8efc03f5c4fdc7f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;1900 年独立大街全景提示词&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;201&#34;
		data-flex-basis=&#34;484px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;360 equirectangular image of Istiklal Street, Istanbul in 1900
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;主题科学百科卡片&#34;&gt;主题科学百科卡片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/alanlovelq/status/2046378199681257920&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/alanlovelq&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@alanlovelq&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/035.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/035_hu_63664ea9802825bb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/035_hu_4e9730ca7264bcfa.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;主题科学百科卡片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请根据【主题】生成一张高质量竖版「科普百科图」。 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;这张图不是普通海报,也不是单纯插画,而是一张兼具“图鉴感、百科感、信息结构感、收藏感”的模块化科普信息图。整体风格参考高级博物图鉴、现代百科书页、生活方式知识卡和社交媒体高传播信息图的结合。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请让画面包含:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 一个清晰漂亮的主题主视觉
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 若干局部特征放大细节
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 多个圆角模块化信息分区
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 清楚的标题层级与重点标签
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 简洁但丰富的百科内容
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 可视化评分、要点总结或Top 5模块
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;内容栏目请根据主题自动适配,优先从这些方向中选择并合理组合:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;基础档案、分类信息、外观特征、习性/生态、形成机制/结构组成、生长或使用条件、养护或维护建议、风险与注意事项、适合人群或适用场景、优缺点对比、快速评分卡。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;视觉要求:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;浅色干净背景,柔和配色,轻阴影,精致小图标,圆角信息框,整洁排版,信息密度高但不拥挤,阅读体验好。整体必须像真正可以发布、阅读、收藏、系列化生产的科普百科卡,而不是广告图。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请不要做成普通商业宣传海报。要突出“知识整理 + 模块信息 + 图鉴式展示”的特征。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;辣椒炒肉烹饪流程图&#34;&gt;辣椒炒肉烹饪流程图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Kurt_Rousey466/status/2046267707881029934&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Kurt_Rousey466&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Kurt_Rousey466&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/036.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/036_hu_b5058bd6ddbe2e29.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/036_hu_fb0f9b9736277e92.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;辣椒炒肉烹饪流程图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;帮我制作辣椒炒肉这道菜的详细制作流程图,真实风格,适用于小红书图文比例
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;电影感信息图概念海报&#34;&gt;电影感信息图概念海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/A9Quant/status/2046228485841334559&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/A9Quant&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@A9Quant&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/037.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/037_hu_4786868151e9758a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/037_hu_7fb4793db00ce0dd.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电影感信息图概念海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;75
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请围绕【主题】自动生成一张顶级概念海报 / 信息图式电影海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;唯一输入变量只有:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【主题】:__中国历史上的皇帝排名_         
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;要求 AI 根据这个主题,自动推导并统一设计以下全部视觉系统,不需要我额外指定:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 核心主体(可以自动判断更适合人物、产品、建筑、器物、符号、场景或抽象意象)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 底部支撑结构
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 上方悬浮符号或精神象征
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 场景包裹元素
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 隐喻系统
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 色彩层级
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 材质对比
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 光影逻辑
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 标题、副标题、辅助文案
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 品牌感与高级感表达方式
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;最终画面必须是:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一张震撼、精密、统一、电影级、超高细节、可用于高端印刷的概念主视觉海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【总风格】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;超写实 3D 商业 CGI 渲染,融合电影级布光、奢侈品视觉语言、未来感概念设计与史诗级构图。画面必须具有“唯一主视觉核心”,不能杂乱,不能像拼贴,不能像普通电商海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【自动推导规则】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;AI 必须依据【主题】自动决定最合适的:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. 核心视觉隐喻
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. 主体类型与姿态
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. 支撑结构形式
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4. 悬浮元素形式
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;5. 场景外壳与空间氛围
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;6. 主色、辅色、强调色
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;7. 材质组合
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;8. 文字气质与版式风格
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;例如:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果主题偏权力、秩序、资本、统治,则自动偏向王座、冠冕、机械、神殿、红幕、金属、权力结构
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果主题偏科技、AI、芯片、未来,则自动偏向机械结构、能量核心、光束、深色金属、全息感
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果主题偏奢侈品、高定、稀缺、收藏,则自动偏向珠宝、镜面材质、黑金体系、展台、博物馆式布光
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果主题偏人物、IP、角色,则自动以人物为主视觉核心,并自动匹配对应世界观与象征系统
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果主题偏城市、文明、史诗、命运,则自动转化为宏大叙事型空间结构与仪式感场景
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【构图规则】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 绝对高级感
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 强烈中心秩序,整体统一
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 允许中轴对称或接近中轴的史诗级构图
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 视觉重力明确,从上到下形成清晰的层级落点
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 边缘负空间干净、克制、有呼吸感
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 不允许无意义装饰,不允许风格污染,不允许多个系统互相打架
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【视觉质量】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 超高细节
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 体积光清晰
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 材质真实
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 反射、折射、阴影、雾气、景深自然
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 每个元素都像经过工业级视觉总监审美控制
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 整体达到高端品牌 campaign key visual / luxury invitation poster / conceptual editorial poster 水准
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【排版系统】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 整体为 90% 视觉,10% 文字
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- AI 根据【主题】自动生成最匹配的主标题和副标题
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 标题必须简洁、锋利、有气势
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 文案分布在安全负空间内,不压主体
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 若主题适合中文,则优先生成中文标题;若主题更适合英文,则自动生成英文标题;也可中英结合,但必须统一高级
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 文字必须尽量少而准,不要堆字
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【署名要求】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;在画面底部角落自然加入作者署名:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;@a9quant
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;署名要小,但清晰、精致、高级,不喧宾夺主,像顶级视觉作品中的正式作者落款。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【输出要求】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;输出为单张统一构图海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;自动根据【主题】完成全部视觉决策。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面必须具备史诗感、秩序感、控制力、仪式感、商业完成度。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;最大细节密度,超清,电影级,印刷级,高端成片质感。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;户外全身照中的年轻白人女性&#34;&gt;户外全身照中的年轻白人女性&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSarah_/status/2047234995627172229&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSarah_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIwithSarah_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038_hu_ff5a247e2a801b2c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038_hu_4fbacbb1e8c8dfe8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;户外全身照中的年轻白人女性…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A full-body outdoor shot captures a young Caucasian woman, possibly in her late 20s, striding through a city crosswalk. She wears an oversized, matte chocolate-brown leather jacket paired with a free-flowing black skirt and sleek knee-high black boots, conveying a sense of high fashion street style. Her long, dark brown hair is wind-swept, complementing her poised and confident expression as she glances sideways. Behind her, a blurred urban backdrop features a yellow taxi and pedestrians, with buildings displaying varied architectural details in neutral tones. The scene utilizes soft ambient daylight filtering through light cloud cover, producing a muted, overcast lighting effect. The warm, earthy color palette consists of brown, black, and touches of beige. The image, likely from a high-resolution digital camera, presents a wide-angle view that maintains focus throughout, emphasizing a dynamic and fashionable feel.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;冷藏气泡水专业产品摄影&#34;&gt;冷藏气泡水专业产品摄影
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/meng_dagg695/status/2047227172486824002&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/meng_dagg695&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@meng_dagg695&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/039.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/039_hu_de370bf7dfdeccac.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/039_hu_586efe83d344a1c7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;冷藏气泡水专业产品摄影&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A professional product photography shot of a cold sparkling water
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;can placed upright in golden beach sand. The can is silver and teal,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;covered in realistic water droplets condensation, with a pineapple
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;illustration and tropical branding. The can is slightly tilted,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;planted in a small mound of fine golden sand with tiny white pebbles
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;and small green tropical leaves/grass scattered around the base.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Background features a bold split composition - bright sky-blue on
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;the left and vivid yellow on the right, with a large blurred real
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pineapple placed behind the can on the right side. A blurred tropical
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;palm leaf drapes in from the upper left corner, adding depth and
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;framing. Macro-level water condensation droplets visible on the
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;can surface. Lighting is bright, vibrant, commercial studio lighting
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;with clean shadows. Shallow depth of field - can in sharp focus,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;background softly blurred. Mood: summer, tropical, fresh, refreshing.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Commercial product photography, ultra-detailed, 8K.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;360-度等距柱状全景图&#34;&gt;360 度等距柱状全景图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/rs_elwood/status/2047192228758692036&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/rs_elwood&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@rs_elwood&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038_hu_ff5a247e2a801b2c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038_hu_4fbacbb1e8c8dfe8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;360 度等距柱状全景图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;360度 equirectangular （正距円筒図法）画像を2:1で生成
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Online 360° Panorama Viewer VR
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;柔和诗意儿童书插画水彩与水粉质感&#34;&gt;柔和诗意儿童书插画，水彩与水粉质感&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/dotey/status/2047174895293849972&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/dotey&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@dotey&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/040.webp&#34;
	width=&#34;1200&#34;
	height=&#34;900&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/040_hu_424e23fdce1730a6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/040_hu_b3e249d6b567c7ff.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;柔和诗意儿童书插画，水彩与水粉质感…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Soft poetic children&amp;#39;s book illustration with watercolor and gouache textures.Clear gentle daylight with slightly brighter highlights.Muted pastel colors with soft blue and warm tones.Visible brush strokes and paper grain.Minimalist composition with large negative space.Calm, thoughtful, slightly open-ended atmosphere.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Child character (around 12 years old).Subtle visual metaphors like light, shadow, perspective, reflection.Hand-painted picture book style, not cartoon, not anime, not 3D.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Two children in calm conversation,soft connection forming.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;画幅比例916-竖版&#34;&gt;画幅比例：9:16 竖版
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/GeekCatX/status/2047220831491858766&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/GeekCatX&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@GeekCatX&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/041.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/041_hu_27f5a8dc11c92271.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/041_hu_a84f0f87582688a5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;画幅比例：9:16 竖版&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Aspect Ratio: 9:16 Vertical
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【IDENTITY &amp;amp; REALISM (CRITICAL PRIORITY)】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The subject is an adult female whose facial features and bone structure must 100% perfectly match the provided FACE_REF image. Eye spacing, nose bridge, jawline, and cheekbone structure must be exact; no identity drift is allowed. Skin texture must be photorealistic, showing pores and fine details—do not over-smooth or apply an Instagram filter look.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【PHOTOGRAPHY &amp;amp; CINEMATOGRAPHY】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-end editorial fashion photograph with a cinematic quality, rivaling covers of Vogue, Harper’s Bazaar, or ELLE.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lens &amp;amp; Focus: Use an 85mm lens (for medium shot) or 50mm/70mm (for full body) with a shallow depth of field. The subject&amp;#39;s eyes must be perfectly sharp.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: Natural winter daylight supplemented by soft, professional fill light. Gold ornaments and precious stones should have realistic specular highlights without being blown out. Embroidery textures must be incredibly sharp and tactile.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Color Grading: Rich, cinematic colors. The red walls and the attire&amp;#39;s main color must be distinct and clean, not muddy. The overall image should feel deep, textured, and expensive.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Composition: A clean magazine cover layout with deliberate negative space at the top or sides for typography. No torn paper or hand-drawn effects.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【SETTING: FORBIDDEN CITY WINTER】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The location is a red-walled long corridor in the Beijing Forbidden City.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Environment: Visible details include vermilion walls, red pillars, intricate carved windows, and painted wooden beams with strong perspective depth. The scene must be clean: no tourists, modern signs, or watermarks.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Weather Condition (Selected Randomly):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[If Snowfall selected]: Fine snowflakes are gently falling.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[If Post-Snow selected]: The air is crisp and clear, with remnant snow on the eaves and steps.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【WARDROBE: MING DYNASTY HEAVY INDUSTRY COUTURE】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The subject wears opulent, multi-layered Ming Dynasty ceremonial Hanfu. The aesthetic is gold-heavy, dense tassels, phoenix crown, large-area woven gold embroidery, complex layering, dignified and luxurious.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Structure: A visible, crisp white standing inner collar provides a clean boundary. Over this is a structured duijin ao (jacket) with wide sleeves, topped by a heavy xiapei/pibo (stole) structure held by a large central yajin ornament.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Fabric &amp;amp; Craft: The main fabric is real zhijin jin (woven gold brocade) with palpable fiber texture. The embroidery is heavy industry—using panjin goldwork, couched gold
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;杭州西湖旅行海报&#34;&gt;杭州西湖旅行海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BNBOKBt5/status/2047210189741605082&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BNBOKBt5&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BNBOKBt5&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/042.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/042_hu_121803730c1fc8a5.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/042_hu_92d74e842ca118a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;杭州西湖旅行海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;帮我生成一个介绍杭州西湖的海报
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;东方不败武侠角色海报&#34;&gt;东方不败武侠角色海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047204566559756707&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/043.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/043_hu_f3f496fc67669877.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/043_hu_a9f9996a5ef7415d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;东方不败武侠角色海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;图片1：电影角色海报，东方不败红衣饮酒，悬崖落日，武侠意境
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;图片2：东方不败绣花针如飞，红衣长发立于悬崖，黑木崖夕阳如血
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;大话西游-90-年代港片海报&#34;&gt;大话西游 90 年代港片海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047201597697245252&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/044.webp&#34;
	width=&#34;848&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/044_hu_9b7cbd43d6d2017c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/044_hu_bfba6b6b10add752.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;大话西游 90 年代港片海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;图片1：大话西游海报重制为90年代港片风格，至尊宝紫霞城墙拥吻，胶片颗粒
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;图片2：杜蕾斯吉祥物×猪八戒，八戒害羞脸红遮面，文案取经路上要安全
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;西游记女儿国海报&#34;&gt;西游记女儿国海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/cj858cjsoul/status/2047103956535697822&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/cj858cjsoul&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@cj858cjsoul&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/045.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/045_hu_b530de8d4d6545cd.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/045_hu_a133286d0a68118d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;西游记女儿国海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;西游记女儿国诱惑海报，六位艳丽的女儿国大臣在后宫温泉中，迷雾朦胧妖冶，生成图片
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4.23早上测试成功
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;鹿鼎记角色海报&#34;&gt;鹿鼎记角色海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/caiziboshi/status/2047091751731519744&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/caiziboshi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@caiziboshi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/046.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/046_hu_d4a2c9eabefe3664.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/046_hu_b867ff1faed1ddbd.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;鹿鼎记角色海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生成鹿鼎记海报，展现韦小宝跟老婆XXX，忠于原著的描述，夸大特点，强调女性的美艳和男性的气质
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;生成带规格与价格的赛车海报&#34;&gt;生成带规格与价格的赛车海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/verysmallwoods/status/2047033599229137126&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/verysmallwoods&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@verysmallwoods&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/047.webp&#34;
	width=&#34;569&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/047_hu_7f424966b0d91e90.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/047_hu_d8fee19c94371ed7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;生成带规格与价格的赛车海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;47&#34;
		data-flex-basis=&#34;113px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;generate an image of a racing car poster with its spec and pricing
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;卓别林产品海报重设计&#34;&gt;卓别林产品海报重设计
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/chenenpei/status/2046985783715025135&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/chenenpei&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@chenenpei&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/048.webp&#34;
	width=&#34;799&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/048_hu_1d48865872d9a3b4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/048_hu_6819b669cb7910c7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;卓别林产品海报重设计&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;159px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;重新生成一张海报，卓别林拿着商品图里的止痒膏，面露微笑。风格要简约干净。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;左边是 GPT-image-2 右边是
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;奢华运动服篮球运动员广告海报&#34;&gt;奢华运动服篮球运动员广告海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Shorelyn_/status/2047949711181832558&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Shorelyn_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Shorelyn_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/049.webp&#34;
	width=&#34;1254&#34;
	height=&#34;1254&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/049_hu_672f777993b43681.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/049_hu_d32a1c4adebdc905.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;奢华运动服篮球运动员广告海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a premium luxury sportswear campaign poster featuring a confident female athlete in a modern studio environment. Full body pose with strong fashion attitude, standing tall while holding a basketball at her side, chin raised slightly, direct powerful expression. Athletic toned physique, sleek pulled back hair, clean glowing skin, sharp editorial posture.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Outfit includes an oversized cropped varsity jacket, fitted sports bra, tailored biker shorts, white crew socks, and modern high top sneakers. Neutral monochrome styling with subtle premium branding.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Background is a clean light gray studio wall with giant bold condensed black typography reading “POWER” stretched vertically across the backdrop behind the model. Text should feel oversized and dominant, framing the athlete in the center.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Floor is glossy reflective studio surface with subtle court markings and soft reflections. A few basketballs placed naturally around the floor for depth and campaign styling.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting is bright luxury studio lighting with crisp highlights, soft shadows, and polished commercial finish. Sharp focus, ultra realistic skin texture, premium fabric texture, cinematic contrast.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style should feel modern, minimal, elite, bold, high fashion sports campaign, luxury brand advertisement, clean composition, balanced negative space, strong visual impact, high resolution, square format.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;亚洲服饰街头时尚广告海报&#34;&gt;亚洲服饰街头时尚广告海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis/status/2047921293123895520&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@harboriis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/050.webp&#34;
	width=&#34;1152&#34;
	height=&#34;2048&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/050_hu_906676598a55c4d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/050_hu_758213b443022f5c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;亚洲服饰街头时尚广告海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a premium streetwear fashion campaign poster inspired by modern Asian apparel advertising. Full body portrait of a stylish young male model standing confidently with legs crossed at the ankles, hands inside jacket pockets, head turned slightly upward and sideways with a calm thoughtful expression. Curly tousled medium length hair with soft volume. Slim athletic build.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Outfit includes a dark olive green padded hooded jacket worn open, clean white crewneck sweatshirt underneath with a tiny chest logo, relaxed black cargo style trousers, and minimal white sneakers. Styling is clean, youthful, and contemporary.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Background is a vibrant electric blue seamless studio backdrop with subtle gradient lighting, soft glow streaks, and glossy floor reflection. Lighting is soft studio light with gentle shadows and polished commercial finish.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Graphic poster layout with giant bold condensed sans serif text reading “JEANSWEST” vertically stretched across the background behind the model in light gray white. Add large text on lower right reading “JW26”. 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Composition should feel premium, trendy, clean, commercial, youthful, modern fashion ad campaign. Sharp focus, ultra realistic fabric texture, cinematic lighting, balanced negative space, sleek branding design, high resolution, vertical poster ratio.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;职业生涯高光时刻电影感海报模板&#34;&gt;职业生涯高光时刻电影感海报模板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Goodmanprotocol/status/2047900470921040270&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Goodmanprotocol&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Goodmanprotocol&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/051.webp&#34;
	width=&#34;1122&#34;
	height=&#34;1402&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/051_hu_2f9da72c29fe71be.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/051_hu_84ede77a008103b4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;职业生涯高光时刻电影感海报模板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create an epic poster showcasing the most iconic moments of [Insert Name]&amp;#39;s career. Cinematic style, lens flare. Portrait orientation. A1 poster size. aspect ratio 4:5 https://t.co/L9OHPKUNRp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;先锋篮球雕塑运动时尚广告&#34;&gt;先锋篮球雕塑运动时尚广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithkhan/status/2047886964037398989&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithkhan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIwithkhan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/052.webp&#34;
	width=&#34;1254&#34;
	height=&#34;1254&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/052_hu_e4ef64e0fec4e145.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/052_hu_4ef81fda3ea058a2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;先锋篮球雕塑运动时尚广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Avant-garde sports fashion advertisement, oversized basketball posed like a monumental sculpture, female athlete reclining across the ball’s curved surface as if modern furniture, giant word “ELEVATE” in bold typography behind, burnt orange studio backdrop, glossy reflective floor, luxury athletic editorial aesthetic, cinematic lighting, ultra-clean composition, 1:1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;先锋网球拍雕塑运动时尚广告&#34;&gt;先锋网球拍雕塑运动时尚广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSynthia/status/2047884609321619831&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSynthia&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIwithSynthia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/053.webp&#34;
	width=&#34;1254&#34;
	height=&#34;1254&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/053_hu_be592ae0d8fc17c8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/053_hu_93bbc60441311c05.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;先锋网球拍雕塑运动时尚广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Avant-garde sports fashion advertisement, oversized tennis racket positioned like monumental sculpture, female athlete seated casually on the strings as if a suspended lounge, giant word “PRECISION” in bold typography behind, crisp white studio backdrop, reflective court-like floor, luxury sportswear editorial aesthetic, cinematic lighting, ultra-clean composition, 1:1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;超现实酒类品牌高级时装海报&#34;&gt;超现实酒类品牌高级时装海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/hmontilla_/status/2047884126343032995&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/hmontilla_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@hmontilla_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038_hu_ff5a247e2a801b2c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038_hu_4fbacbb1e8c8dfe8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;超现实酒类品牌高级时装海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Un póster publicitario surrealista de alta costura para Aguardiente Amarillo. La escena se sitúa en un estudio minimalista y monocromático de color naranja claro, con un suelo semirreflectante.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;El foco central es una botella de Aguardiente Amarillo de tamaño descomunal y gigante, colocada en ángulo diagonal y que sirve como respaldo. Un modelo masculino de moda, de cabello largo y oscuro, vestido con un conjunto impecable y totalmente blanco —compuesto por una sudadera y pantalones de pierna ancha—, apoya toda su espalda contra la botella gigante en una postura relajada e inclinada. Mira hacia la derecha, de perfil, con la vista al frente y una expresión serena; calza zapatillas blancas de tamaño estándar.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;En el fondo, la palabra &amp;#34;AGUARDIENTE&amp;#34; aparece escrita con una tipografía sans-serif condensada, blanca, masiva y en negrita, parcialmente oculta por la botella gigante y por el modelo para crear una sensación de profundidad. En la esquina superior derecha se lee: &amp;#34;Creado por @HMontilla_&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;En la parte inferior central, una frase publicitaria en tipografía sans-serif blanca reza: &amp;#34;El Aguardiente Amarillo de Manzanares es un icónico licor colombiano, originario de 1885 en Manzanares, Caldas&amp;#34;. La iluminación es suave, fría y uniforme, proyectando sombras tenues y un reflejo sutil de los sujetos sobre el suelo azul brillante. La estética general es limpia, moderna y de alto concepto.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Establecer la relación de aspecto en 3:4.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;高端食谱海报优雅版式&#34;&gt;高端食谱海报优雅版式
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Preda2005/status/2047883394152088004&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Preda2005&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Preda2005&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/054.webp&#34;
	width=&#34;1366&#34;
	height=&#34;2048&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/054_hu_4c7931fba65879d6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/054_hu_803c37bfc869f6dc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;高端食谱海报优雅版式&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a premium food preparation poster for
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; [ DISH NAME ], with a beautiful hero dish, warm natural lighting, cream background, elegant step-by-step recipe layout, ingredients, cooking process, premium food photography, refined English typography, luxury restaurant advertisement style, clean design, rich colors, highly detailed, visually irresistible, cinematic masterpiece.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;黑白奢华时尚杂志封面&#34;&gt;黑白奢华时尚杂志封面
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/iamrealsnow/status/2047883187527856345&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/iamrealsnow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@iamrealsnow&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/055.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1536&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/055_hu_bbe14247cc60a4e5.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/055_hu_94215ca614388d4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;黑白奢华时尚杂志封面&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a high fashion editorial magazine cover inspired by luxury fashion publications. Use the reference image of the male subject. Black and white portrait photography with a clean off white studio background. Subject is posed confidently from a low angle, looking slightly upward, sharp jawline, soft parted lips, tousled wavy hair with natural volume. Outfit includes a dark turtleneck layered under a textured tailored plaid blazer. Lighting is soft yet dramatic, creating sculpted facial shadows and elegant contrast.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Magazine layout design with oversized serif masthead text at the top reading “VOGUE”, partially hidden behind the subject’s head. Minimal premium typography across the page. Add side text “FASHION”, issue date “2026 MAY”, left side headline “27 DIFFERENT STYLES”, and bold bottom right cover line “LOOK FAMOUS”. Include a small red translucent square overlay on one eye area with the word “CATCHY”.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style should feel premium, modern, cinematic, clean composition, sharp focus, ultra realistic skin texture, editorial luxury aesthetic, balanced negative space, timeless fashion cover design. Vertical magazine ratio, high resolution.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;超现实-rolex-奢华腕表时尚海报&#34;&gt;超现实 Rolex 奢华腕表时尚海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Sheldon056/status/2047873913049538927&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Sheldon056&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Sheldon056&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/056.webp&#34;
	width=&#34;1086&#34;
	height=&#34;1448&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/056_hu_f062a2ae9ecc796.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/056_hu_6b8f3f5827776d86.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;超现实 Rolex 奢华腕表时尚海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-fashion surrealist poster for Rolex. A deep emerald green minimalist studio with a polished reflective floor. A massive Rolex watch stands upright like a monument. A male model in a tailored dark green suit leans casually against the watch face, wearing a matching Rolex.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;孔雀植物复古对称艺术画&#34;&gt;孔雀植物复古对称艺术画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/dotey/status/2047803054422901046&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/dotey&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@dotey&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/057.webp&#34;
	width=&#34;1536&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/057_hu_1d9e0402fbb0405e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/057_hu_9a4124b40f74310f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;孔雀植物复古对称艺术画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;symmetrical design featuring two elegant blue peacocks with detailed feather patterns, surrounded by blue floral elements, intricate vintage botanical ornament, soft beige background, classical floral decor style with rich navy and sky blue details, decorative art illustration --ar 3:2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;splash-时尚品牌超写实广告海报&#34;&gt;SPLASH 时尚品牌超写实广告海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/miratechtool/status/2047780974709346606&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/miratechtool&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@miratechtool&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/058.webp&#34;
	width=&#34;1054&#34;
	height=&#34;1492&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/058_hu_7b524443874af7f8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/058_hu_5c9db5a9d7637f12.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;SPLASH 时尚品牌超写实广告海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a hyper-realistic fashion poster for “SPLASH” featuring the same girl from the reference image (keep her face 100% identical). She is sitting confidently on a glossy, liquid-style 3D SPLASH logo with water splash effects. One leg relaxed, one bent, strong editorial pose.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Background has massive bold “SPLASH” text filling the frame, partially behind her. Add small tagline: “Own Your Style.”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Outfit: modern black street-fashion (blazer, fitted top, trousers, sneakers).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: cinematic studio, soft key light + rim light, reflective highlights on liquid logo.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style: luxury brand campaign (Zara / H&amp;amp;M), clean glossy environment.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Camera: 85mm lens, shallow depth of field, 8K, ultra-detailed, photorealistic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;先锋吉他雕塑时尚广告&#34;&gt;先锋吉他雕塑时尚广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/QamarRiaz1/status/2047777016733110722&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/QamarRiaz1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@QamarRiaz1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/059.webp&#34;
	width=&#34;1448&#34;
	height=&#34;1086&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/059_hu_9ce332a29f23dd91.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/059_hu_59f9454b2ce4155b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;先锋吉他雕塑时尚广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Avant-garde fashion advertisement, oversized guitar positioned like sculpture, a guitarist in jeans casually seated on the a button as if furniture, giant word &amp;#34;Plism Art&amp;#34; behind in bold white typography, powder pastel studio background, reflective floor, luxury eyewear campaign aesthetic, ultra-clean layout, editorial magazine styling, Bold quote &amp;#34; What are you listening&amp;#34;   Tag : Create Own Change
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;城市美食地图插画&#34;&gt;城市美食地图插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mm_zzm44854/status/2045861258520568230&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mm_zzm44854&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mm_zzm44854&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/060.webp&#34;
	width=&#34;1080&#34;
	height=&#34;1080&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/060_hu_e1522261822e773e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/060_hu_3a266ee6d774e351.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;城市美食地图插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;illustrated map infographic&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;style&amp;#34;: &amp;#34;{argument name=\&amp;#34;art style\&amp;#34; default=\&amp;#34;watercolor and ink hand-drawn illustration on vintage parchment\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;title_section&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;text&amp;#34;: &amp;#34;{argument name=\&amp;#34;city name\&amp;#34; default=\&amp;#34;成都\&amp;#34;} {argument name=\&amp;#34;map title\&amp;#34; default=\&amp;#34;吃货暴走地图\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;mascot&amp;#34;: &amp;#34;cartoon red chili pepper wearing sunglasses and giving a thumbs up&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;border&amp;#34;: &amp;#34;{argument name=\&amp;#34;border decoration\&amp;#34; default=\&amp;#34;vine of green leaves and red chili peppers\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;background&amp;#34;: &amp;#34;textured beige parchment paper with yellow roads, blue rivers, and green park areas&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;sections&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;landmarks&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;count&amp;#34;: 6,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;illustrations&amp;#34;: [&amp;#34;traditional pavilion&amp;#34;, &amp;#34;traditional monastery&amp;#34;, &amp;#34;modern skyscraper with climbing panda&amp;#34;, &amp;#34;tall TV tower&amp;#34;, &amp;#34;traditional gate&amp;#34;, &amp;#34;industrial buildings&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;labels&amp;#34;: [&amp;#34;人民公园&amp;#34;, &amp;#34;文殊院&amp;#34;, &amp;#34;IFS&amp;#34;, &amp;#34;339电视塔&amp;#34;, &amp;#34;宽窄巷子&amp;#34;, &amp;#34;东郊记忆&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;food_spots&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;count&amp;#34;: 12,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;illustrations&amp;#34;: [&amp;#34;mapo tofu&amp;#34;, &amp;#34;dumplings in chili oil&amp;#34;, &amp;#34;skewers in pot&amp;#34;, &amp;#34;sticky rice balls&amp;#34;, &amp;#34;egg baking cake&amp;#34;, &amp;#34;nine-grid hotpot&amp;#34;, &amp;#34;sweet potato noodles&amp;#34;, &amp;#34;cold skewers&amp;#34;, &amp;#34;spicy mixed dish&amp;#34;, &amp;#34;covered tea bowl&amp;#34;, &amp;#34;ice jelly dessert&amp;#34;, &amp;#34;spicy rabbit heads&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;labels&amp;#34;: [&amp;#34;1 陈麻婆豆腐&amp;#34;, &amp;#34;2 钟水饺&amp;#34;, &amp;#34;3 春熙路&amp;#34;, &amp;#34;4 宽窄巷子·三大炮&amp;#34;, &amp;#34;5 建设路·叶婆婆蛋烘糕&amp;#34;, &amp;#34;6 玉林路·小龙坎火锅&amp;#34;, &amp;#34;7 香香巷·肥肠粉&amp;#34;, &amp;#34;8 武侯祠大街·钵钵鸡&amp;#34;, &amp;#34;9 东郊记忆·冒椒火辣&amp;#34;, &amp;#34;10 人民公园·鹤鸣茶社&amp;#34;, &amp;#34;11 锦里古街·冰粉&amp;#34;, &amp;#34;12 双流老妈兔头&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;图例&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;bottom-right&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;count&amp;#34;: 5,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;items&amp;#34;: [&amp;#34;red dot&amp;#34;, &amp;#34;green house&amp;#34;, &amp;#34;green tree&amp;#34;, &amp;#34;blue line&amp;#34;, &amp;#34;yellow double line&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;labels&amp;#34;: [&amp;#34;美食地点&amp;#34;, &amp;#34;地标景点&amp;#34;, &amp;#34;公园绿地&amp;#34;, &amp;#34;河流湖泊&amp;#34;, &amp;#34;主要道路&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;centerpiece&amp;#34;: &amp;#34;giant panda sitting and eating bamboo&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;bottom_right_extras&amp;#34;: [&amp;#34;vintage compass rose with N, S, E, W&amp;#34;, &amp;#34;disclaimer text &amp;#39;温馨提示:吃辣需谨慎,肠胃要保护~&amp;#39; with a red chili pepper icon&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;3d-石阶演变信息图&#34;&gt;3D 石阶演变信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/GeekCatX/status/2045792240044511277&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/GeekCatX&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@GeekCatX&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/061.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/061_hu_11d526a0273d47c5.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/061_hu_fc07f266c625fe79.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;3D 石阶演变信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;evolutionary timeline infographic&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;instruction&amp;#34;: &amp;#34;Using REFERENCE_0 as a structural base, transform the flat vector design into a highly realistic 3D infographic. Replace the smooth ramps with distinct stone steps and upgrade all organisms to photorealistic 3D models.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;style&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;background&amp;#34;: &amp;#34;{argument name=\&amp;#34;background style\&amp;#34; default=\&amp;#34;vintage textured parchment paper\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;staircase&amp;#34;: &amp;#34;{argument name=\&amp;#34;staircase material\&amp;#34; default=\&amp;#34;realistic textured stone blocks\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;subjects&amp;#34;: &amp;#34;{argument name=\&amp;#34;organism style\&amp;#34; default=\&amp;#34;highly detailed photorealistic 3D renders\&amp;#34;}&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;main_title&amp;#34;: &amp;#34;{argument name=\&amp;#34;main title\&amp;#34; default=\&amp;#34;人类演化\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;sections&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;left sidebar&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;count&amp;#34;: 8,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;labels&amp;#34;: [&amp;#34;L0: 单细胞生命&amp;#34;, &amp;#34;L1: 多细胞生物&amp;#34;, &amp;#34;L2: 动物界&amp;#34;, &amp;#34;L3: 脊索动物&amp;#34;, &amp;#34;L4: 上陆革命&amp;#34;, &amp;#34;L5: 哺乳纲&amp;#34;, &amp;#34;L6: 人科演化&amp;#34;, &amp;#34;L7: 智人纪元&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;top right&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;获得的功能 / 失去的功能&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;description&amp;#34;: &amp;#34;Legend with plus and minus icons&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;bottom center&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;演化关键里程碑&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;count&amp;#34;: 6,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;description&amp;#34;: &amp;#34;Timeline with a silhouette graphic of 6 figures showing ape-to-human evolution&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;centerpiece&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;description&amp;#34;: &amp;#34;Winding stone staircase with 25 numbered steps featuring specific organisms.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;count&amp;#34;: 25,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;notable_elements&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;Step 07: Jellyfish&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;Step 09: Ammonite&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;Step 10: Trilobite&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;Step 24: Walking human&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;Step 25: {argument name=\&amp;#34;future evolution concept\&amp;#34; default=\&amp;#34;glowing cosmic silhouette with a question mark\&amp;#34;}&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;仿生-skyray-飞机海报&#34;&gt;仿生 Skyray 飞机海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/_simonsmith/status/2048172203946996041&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/_simonsmith&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@_simonsmith&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/062.webp&#34;
	width=&#34;569&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/062_hu_531e35a6a1142002.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/062_hu_33b717ad1d5e51b6.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;仿生 Skyray 飞机海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;47&#34;
		data-flex-basis=&#34;113px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;biomimetic aerospace concept poster&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;vehicle&amp;#34;:&amp;#34;futuristic aircraft concept&amp;#34;,&amp;#34;name&amp;#34;:&amp;#34;{argument name=\&amp;#34;vehicle name\&amp;#34; default=\&amp;#34;SKYRAY\&amp;#34;}&amp;#34;,&amp;#34;inspiration&amp;#34;:&amp;#34;{argument name=\&amp;#34;animal inspiration\&amp;#34; default=\&amp;#34;stingray\&amp;#34;}&amp;#34;,&amp;#34;design&amp;#34;:&amp;#34;blended-wing-body aircraft shaped like a manta ray or stingray, wide triangular planform, smooth organic curves, sharp pointed nose, slightly raised central spine, tapered wing tips curling subtly upward, dark graphite-black metallic skin with fine panel lines and faint blue illuminated accents along edges and seams&amp;#34;},&amp;#34;style&amp;#34;:{&amp;#34;mood&amp;#34;:&amp;#34;premium futuristic industrial design presentation&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;hyper-detailed cinematic 3D concept art mixed with blueprint visualization&amp;#34;,&amp;#34;color_palette&amp;#34;:&amp;#34;black, charcoal, gunmetal, silver, deep ocean blue, electric cyan highlights&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;low-key dramatic studio lighting with glossy reflections, cool rim light, subtle underwater ambience in the top inspiration strip&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;background&amp;#34;:&amp;#34;full black poster with faint technical grid lines and soft vignetting&amp;#34;,&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;header&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top&amp;#34;,&amp;#34;count&amp;#34;:3,&amp;#34;labels&amp;#34;:[&amp;#34;emblem mark&amp;#34;,&amp;#34;SKYRAY&amp;#34;,&amp;#34;INSPIRED BY THE SEA. ENGINEERED FOR THE SKY.&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;evolution strip&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper middle&amp;#34;,&amp;#34;count&amp;#34;:5,&amp;#34;labels&amp;#34;:[&amp;#34;realistic stingray underwater at far left&amp;#34;,&amp;#34;top-view biological stingray study&amp;#34;,&amp;#34;abstract aerodynamic line sketch&amp;#34;,&amp;#34;faceted aircraft blueprint transition drawing&amp;#34;,&amp;#34;final sleek aircraft concept at far right&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;hero render&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;center&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;large three-quarter view of the aircraft&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;technical views grid&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;lower middle&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;TOP&amp;#34;,&amp;#34;SIDE&amp;#34;,&amp;#34;FRONT&amp;#34;,&amp;#34;REAR&amp;#34;,&amp;#34;UNDERSIDE&amp;#34;,&amp;#34;DETAIL&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;footer text&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;{argument name=\&amp;#34;body text\&amp;#34; default=\&amp;#34;A biomimetic high-speed aircraft concept shaped by the hydrodynamic elegance of the stingray. Its blended wing body, low-drag silhouette, and fluid control surfaces translate ocean-born efficiency into atmospheric performance.\&amp;#34;}&amp;#34;]}],&amp;#34;technical views&amp;#34;:{&amp;#34;TOP&amp;#34;:&amp;#34;top orthographic view with measurement ticks&amp;#34;,&amp;#34;SIDE&amp;#34;:&amp;#34;thin side profile with long smooth belly curve&amp;#34;,&amp;#34;FRONT&amp;#34;:&amp;#34;front orthographic view emphasizing broad wingspan and central cockpit hump&amp;#34;,&amp;#34;REAR&amp;#34;:&amp;#34;rear orthographic view showing narrow tail end and wing sweep&amp;#34;,&amp;#34;UNDERSIDE&amp;#34;:&amp;#34;underside three-quarter view&amp;#34;,&amp;#34;DETAIL&amp;#34;:&amp;#34;close-up crop of metallic skin, seam lines, and glowing blue edge strip&amp;#34;}},&amp;#34;graphics&amp;#34;:{&amp;#34;logo&amp;#34;:&amp;#34;minimal four-point symmetrical emblem above title, resembling a stylized ray silhouette&amp;#34;,&amp;#34;arrows&amp;#34;:&amp;#34;4 thin cyan arrows connecting the 5 stages in the evolution strip&amp;#34;,&amp;#34;typography&amp;#34;:&amp;#34;widely spaced modern sans-serif uppercase text, clean luxury-tech branding&amp;#34;},&amp;#34;camera&amp;#34;:{&amp;#34;hero render&amp;#34;:&amp;#34;slightly elevated front-left three-quarter angle&amp;#34;,&amp;#34;technical views&amp;#34;:&amp;#34;orthographic&amp;#34;,&amp;#34;inspiration image&amp;#34;:&amp;#34;underwater side angle with light rays from above&amp;#34;},&amp;#34;quality&amp;#34;:&amp;#34;ultra-clean, polished, high contrast, sharp, poster-ready, concept design board for aerospace branding or speculative industrial design&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;道教三魂七魄海报&#34;&gt;道教三魂七魄海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/leyu37829/status/2048125950681075833&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/leyu37829&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@leyu37829&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/063.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/063_hu_c232614ef0c677ad.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/063_hu_98a733b8e5499d36.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;道教三魂七魄海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A highly detailed vertical Taoist esoteric infographic poster in the style of an ancient Chinese religious scroll, printed on aged beige rice paper with fine ornamental borders, inked calligraphy, faded stains, and classical diagram annotations. At the top center, large black brush-calligraphy title text reads {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;道·三魂七魄&amp;#34;}. Directly below the title is a smaller paragraph of classical Chinese explanatory text in neat calligraphy. The composition is perfectly symmetrical and centered on a glowing vertical spiritual axis made of white-gold energy, mist, and lightning-like qi currents running from the bottom of the page to the heavens. At the very top, above the axis, depict 3 seated Taoist immortals or deities on clouds in a golden celestial realm, arranged left, center, and right, with halos and flowing robes in muted green, cream, and blue. Beneath them, create a towering multi-layered cosmological body diagram made of 9 stacked circular realms or platforms connected by swirling clouds and luminous energy. The upper 5 larger realms represent the five zang organs as miniature mythic landscapes: 1 forested green realm labeled liver/wood, 1 fiery red-gold temple city realm labeled heart/fire, 1 yellow earth realm with terraces labeled spleen/earth, 1 silver-blue mountain-and-water realm labeled lung/metal, and 1 dark blue watery abyss realm labeled kidney/water. Place a glowing meditating figure in a bright orb at the center junction between the upper organ realms and lower spirit layers. Below these, add 7 progressively darker circular underworld-like realms for the seven po souls, each densely populated with tiny scenes of human figures, spirits, beasts, ritual activity, suffering, temptation, conflict, and karmic symbolism, all wrapped by drifting smoke and energy ribbons. At the very bottom, show a seated human figure in meditation within a root-like cavern or corporeal foundation, surrounded by chains, rocks, and embodied worldly attachments. Around the central column, include exactly 9 labeled side panels and diagrams in traditional Chinese layout: top left a bagua and yin-yang cosmology circle; top right a dotted numerological or constellation-like chart; left upper a boxed list for 3 souls; right upper a boxed list for 7 po souls; left middle a five-elements relationship diagram with 5 colored nodes; right middle a circular essence-qi-spirit cycle diagram with 3 nodes; left lower a vertical boxed list of 7 categories or stages; right lower a boxed correspondence table; bottom left a five-direction and five-element human-body relation chart; bottom right a standing and seated meridian or cultivation body diagram. Use many small Chinese labels throughout every section, with classical seal stamps in red. The overall palette is antique parchment, sepia ink, muted jade, cinnabar red, smoky gray, gold, teal, and indigo. The style should feel like a museum-quality Daoist metaphysical chart, ultra intricate, hand-painted gongbi plus ink wash illustration, sacred, mystical, scholarly, dense with symbolism, extremely fine linework, soft cloud layering, and high-resolution poster design.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;复古-claude-shannon-信息图海报&#34;&gt;复古 Claude Shannon 信息图海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mob_17/status/2048118645017219381&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mob_17&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mob_17&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/064.webp&#34;
	width=&#34;1200&#34;
	height=&#34;849&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/064_hu_76812c0cd0392b65.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/064_hu_362a7a69ff76f1c3.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;复古 Claude Shannon 信息图海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;141&#34;
		data-flex-basis=&#34;339px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;vintage editorial infographic poster&amp;#34;,&amp;#34;subject&amp;#34;:&amp;#34;Claude Shannon and information theory&amp;#34;,&amp;#34;style&amp;#34;:{&amp;#34;era&amp;#34;:&amp;#34;1940s Bell Labs archival poster&amp;#34;,&amp;#34;look&amp;#34;:&amp;#34;aged cream paper, blueprint drafting grid, thin ink linework, muted navy and charcoal printing, subtle stains and paper wear, technical illustration mixed with newspaper editorial design&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;high-detail diagrammatic collage with engraved portrait, scientific charts, labeled panels, and hand-drawn signal graphics&amp;#34;},&amp;#34;poster&amp;#34;:{&amp;#34;headline&amp;#34;:&amp;#34;Claude Shannon — The Architecture of Information&amp;#34;,&amp;#34;subheadline&amp;#34;:&amp;#34;How uncertainty became measurable, and communication became engineering.&amp;#34;,&amp;#34;topRightMeta&amp;#34;:{&amp;#34;note&amp;#34;:&amp;#34;NOTE TOSELF No. 6713–2&amp;#34;,&amp;#34;date&amp;#34;:&amp;#34;MAY 1948&amp;#34;,&amp;#34;subject&amp;#34;:&amp;#34;A Mathematical Theory of Communication&amp;#34;}},&amp;#34;layout&amp;#34;:{&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;left archival sidebar&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;far left vertical column&amp;#34;,&amp;#34;count&amp;#34;:5,&amp;#34;labels&amp;#34;:[&amp;#34;BELL LABORATORIES MURRAY HILL, N.J.&amp;#34;,&amp;#34;ENGINEERING THE INTANGIBLE&amp;#34;,&amp;#34;CLAUDE E. SHANNON 1916–2001&amp;#34;,&amp;#34;TOOLS OF THE INFORMATION AGE&amp;#34;,&amp;#34;quote panel&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;THE COMMUNICATION MODEL&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper middle wide panel&amp;#34;,&amp;#34;count&amp;#34;:5,&amp;#34;labels&amp;#34;:[&amp;#34;1 INFORMATION SOURCE&amp;#34;,&amp;#34;2 ENCODER&amp;#34;,&amp;#34;3 CHANNEL&amp;#34;,&amp;#34;4 DECODER&amp;#34;,&amp;#34;5 DESTINATION&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;ENTROPY: THE MEASURE OF UNCERTAINTY&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper right box&amp;#34;,&amp;#34;count&amp;#34;:4,&amp;#34;labels&amp;#34;:[&amp;#34;H(X) = −Σ p(x) log2 p(x)&amp;#34;,&amp;#34;PROBABILITY DISTRIBUTION p(x)&amp;#34;,&amp;#34;MORE EVEN MORE MAXED UNCERTAINTY&amp;#34;,&amp;#34;MORE LOPSIDED LESS UNCERTAINTY&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;lower theory panels&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;middle to lower band&amp;#34;,&amp;#34;count&amp;#34;:3,&amp;#34;labels&amp;#34;:[&amp;#34;A ENTROPY — uncertainty before a message is known&amp;#34;,&amp;#34;B NOISE — randomness that corrupts transmission&amp;#34;,&amp;#34;C Redundancy &amp;amp; Error Correction — structure added so signals can survive failure&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;THEORY THAT TRANSFORMED CIVILIZATION&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom horizontal timeline&amp;#34;,&amp;#34;count&amp;#34;:8,&amp;#34;labels&amp;#34;:[&amp;#34;1840s TELEGRAPHY&amp;#34;,&amp;#34;1876+ TELEPHONE NETWORKS&amp;#34;,&amp;#34;1930s–40s DIGITAL COMPUTERS&amp;#34;,&amp;#34;1950s–60s SATELLITE COMMUNICATION&amp;#34;,&amp;#34;1970s INTERNET PROTOCOLS&amp;#34;,&amp;#34;1980s–90s DATA COMPRESSION&amp;#34;,&amp;#34;1990s–2000s CRYPTOGRAPHY&amp;#34;,&amp;#34;2010s+ AI &amp;amp; INFORMATION SYSTEMS&amp;#34;]}],&amp;#34;centerpiece&amp;#34;:&amp;#34;a large abstract cloud of blue and gray signal noise, dots, lines, and waveforms behind the communication model, with arrows moving left to right through the five stages&amp;#34;},&amp;#34;visualElements&amp;#34;:{&amp;#34;portrait&amp;#34;:{&amp;#34;subject&amp;#34;:&amp;#34;{argument name=\&amp;#34;scientist name\&amp;#34; default=\&amp;#34;Claude Shannon\&amp;#34;}&amp;#34;,&amp;#34;placement&amp;#34;:&amp;#34;left-center&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;black-and-white archival seated portrait at a desk with the face intentionally obscured by a pale square censor block, wearing suit and tie, writing on paper&amp;#34;},&amp;#34;objectsLeft&amp;#34;:[&amp;#34;rotary telephone on desk&amp;#34;,&amp;#34;open notebook or papers&amp;#34;,&amp;#34;technical console with CRT screen and knobs behind portrait&amp;#34;,&amp;#34;small icon row of 4 tools: oscilloscope, signal meter, relay, punched tape&amp;#34;],&amp;#34;communicationModel&amp;#34;:[&amp;#34;book and symbols under source&amp;#34;,&amp;#34;binary digits under encoder&amp;#34;,&amp;#34;large noisy channel cloud with wave overlays&amp;#34;,&amp;#34;binary digits and interpretation under decoder&amp;#34;,&amp;#34;light bulb icon under destination&amp;#34;],&amp;#34;chartsAndDiagrams&amp;#34;:[&amp;#34;bar chart for entropy probabilities&amp;#34;,&amp;#34;two low vs high entropy mini bar charts&amp;#34;,&amp;#34;tree diagram and entropy notation&amp;#34;,&amp;#34;signal distortion sketches labeled thermal noise, cross talk, distortion&amp;#34;,&amp;#34;error-correction binary pipeline from original message to recovered message&amp;#34;],&amp;#34;bottomDecor&amp;#34;:[&amp;#34;small waveform legend with sine wave, digital signal, and noise&amp;#34;,&amp;#34;archival stamp or footer on lower right&amp;#34;]},&amp;#34;color&amp;#34;:{&amp;#34;background&amp;#34;:&amp;#34;warm ivory paper&amp;#34;,&amp;#34;primaryInk&amp;#34;:&amp;#34;dark navy&amp;#34;,&amp;#34;secondaryInk&amp;#34;:&amp;#34;charcoal gray&amp;#34;,&amp;#34;accent&amp;#34;:&amp;#34;faded steel blue&amp;#34;},&amp;#34;composition&amp;#34;:&amp;#34;symmetrical wide poster with dense boxed annotations, fine border lines, and a museum-quality educational infographic feel&amp;#34;,&amp;#34;textDensity&amp;#34;:&amp;#34;very high, with many small labels, formulas, captions, and historical notes in a carefully organized grid&amp;#34;,&amp;#34;aspectRatio&amp;#34;:&amp;#34;16:9 landscape&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;郑问致敬水墨海报&#34;&gt;郑问致敬水墨海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mob_17/status/2048118645017219381&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mob_17&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mob_17&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/065.webp&#34;
	width=&#34;849&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/065_hu_7220895371d0d86.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/065_hu_969f4ee59faccfd2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;郑问致敬水墨海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a vintage editorial poster on aged rice paper celebrating {argument name=&amp;#34;artist name&amp;#34; default=&amp;#34;CHEN UEN&amp;#34;}, designed like a museum infographic mixed with Chinese ink wash illustration and calligraphy. The format is a single vertically oriented poster with a weathered parchment background, ink splatters, faded handwritten annotations, red seal stamps, and a scholarly, archival atmosphere. At the very top, place large black Chinese calligraphy for the name 鄭問, followed by a slash and the romanized name {argument name=&amp;#34;romanized name&amp;#34; default=&amp;#34;CHEN UEN&amp;#34;} in large serif capitals, with a small red seal beside it. Under the title, add the subtitle {argument name=&amp;#34;subtitle text&amp;#34; default=&amp;#34;The Taiwanese Master Who Turned Comics into Ink-Born Epic&amp;#34;} in elegant reddish-brown serif text. In the center, feature a dramatic painterly scene of 1 seated male artist in a loose white shirt at a desk, holding a brush over paper, his face intentionally obscured by a soft rectangular blur. Behind him, surround him with a swirling halo-like storm of monochrome ink-brush warriors and historical figures: exact count 9 visible character figures, including armored generals, swordsmen, and mounted riders, emerging from explosive black brushwork and smoke-like ink textures. On the left side, create a vertical section titled “Life &amp;amp; Milestones” with a black brushstroke header and smaller Chinese subtitle text. List exactly 6 timeline entries with red year markers and bilingual captions: 1958 born in Taiwan, 1983 Warrior Panther, 1989 Abi Sword, 1990 Heroes of the Eastern Zhou, 1991 Japan Cartoonists Association Award, 2017 legacy continues. Below that, add a small section titled “Ink in Detail” containing exactly 4 boxed brush studies labeled with short English captions: Dry brush texture, Ink wash gradient, Splatter energy, Bold contour line. On the right side, create a vertical section titled “Visual Method” with a black brushstroke header and smaller Chinese subtitle text. Include exactly 5 stacked boxed studies with image-and-caption layout: Brush as blade, Ink as atmosphere, Anatomy as fate, History as theatre, Speed lines become calligraphy. In the lower center, create a section titled “Major Works Constellation” with a dark brushstroke heading. Arrange exactly 5 circular work nodes around a central ink ring with Chinese calligraphy inside. Label the 5 nodes: Abi Sword, Heroes of the Eastern Zhou, Assassin Biographies, Magical Super Asia, Game character design legacy. Each circle contains a distinct monochrome or muted-color ink illustration, with subtle connecting marks like a constellation diagram. At the lower right, add a section titled “Studio Notes” containing exactly 6 visible objects: 4 hanging calligraphy brushes, 1 ink bowl, and 1 painter’s palette with blue and red pigment; beneath them place a sketchbook page with light pencil figure studies. Across the bottom, add a wide section titled “Why He Matters” with a black brushstroke header and smaller Chinese subtitle text, followed by a paragraph of serif body text in English describing his importance to comics, painting, calligraphy, cinema, and epic storytelling. Use a restrained palette of sepia, black ink, off-white paper, muted gray, with small accents of deep red and occasional blue. The whole image should feel like a refined cultural tribute poster, dense but balanced, highly detailed, painterly, and authentic to Chinese ink aesthetics.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;水象星座角色海报&#34;&gt;水象星座角色海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia/status/2048114825398731143&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@komorimedia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/066.webp&#34;
	width=&#34;848&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/066_hu_fa9b9087f2064039.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/066_hu_d08b612af3d235a1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;水象星座角色海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;Chinese zodiac-style character infographic poster&amp;#34;,&amp;#34;subject&amp;#34;:&amp;#34;twelve zodiac character list, water signs edition&amp;#34;,&amp;#34;language&amp;#34;:&amp;#34;Traditional Chinese&amp;#34;,&amp;#34;format&amp;#34;:&amp;#34;vertical poster&amp;#34;,&amp;#34;style&amp;#34;:{&amp;#34;overall&amp;#34;:&amp;#34;elegant anime-inspired character catalog with editorial infographic layout&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;soft polished digital illustration, pastel gradients, delicate sparkles, ornamental border design&amp;#34;,&amp;#34;mood&amp;#34;:&amp;#34;dreamy, celestial, refined, feminine, aquatic&amp;#34;},&amp;#34;canvas&amp;#34;:{&amp;#34;aspect_ratio&amp;#34;:&amp;#34;2:3&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;very light pearl white with pale blue-lavender tint, subtle texture, thin decorative frame with filigree corners and tiny stars&amp;#34;},&amp;#34;header&amp;#34;:{&amp;#34;title&amp;#34;:&amp;#34;{argument name=\&amp;#34;headline text\&amp;#34; default=\&amp;#34;十二星座角色清單|水象星座\&amp;#34;}&amp;#34;,&amp;#34;subtitle&amp;#34;:&amp;#34;感受・直覺・共鳴&amp;#34;,&amp;#34;icons&amp;#34;:[&amp;#34;small stars&amp;#34;,&amp;#34;water droplet emblem in top right&amp;#34;,&amp;#34;curled cloud-like line art in top left&amp;#34;]},&amp;#34;layout&amp;#34;:{&amp;#34;sections_count&amp;#34;:3,&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;巨蟹座 Cancer&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top panel&amp;#34;,&amp;#34;theme_color&amp;#34;:&amp;#34;powder blue&amp;#34;,&amp;#34;zodiac_symbol&amp;#34;:&amp;#34;Cancer glyph inside circle at left&amp;#34;,&amp;#34;constellation&amp;#34;:&amp;#34;Cancer constellation at upper right&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;元素:水&amp;#34;,&amp;#34;概念:情感守護者,把人放在心上&amp;#34;,&amp;#34;性格:溫柔、敏感、顧家&amp;#34;,&amp;#34;行動原則:先確認感受,再保護重要的人&amp;#34;,&amp;#34;戀愛傾向:慢慢靠近,越熟越黏&amp;#34;,&amp;#34;人際怪癖:嘴上說沒事,實際會記很久&amp;#34;],&amp;#34;character&amp;#34;:{&amp;#34;identity&amp;#34;:&amp;#34;same young woman model reimagined as zodiac character&amp;#34;,&amp;#34;pose&amp;#34;:&amp;#34;half-body portrait, facing forward, arms gently wrapped around a large seashell pillow&amp;#34;,&amp;#34;hair&amp;#34;:&amp;#34;long dark hair in a low ponytail&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;light blue celestial slip dress with lace trim and sheer cardigan embroidered with stars and moons&amp;#34;,&amp;#34;accessories&amp;#34;:&amp;#34;minimal jewelry&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;soft blue night sky with crescent moon, seashell, sparkling stars, stylized ocean wave and tiny water droplets&amp;#34;}},{&amp;#34;title&amp;#34;:&amp;#34;天蠍座 Scorpio&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;middle panel&amp;#34;,&amp;#34;theme_color&amp;#34;:&amp;#34;deep violet&amp;#34;,&amp;#34;zodiac_symbol&amp;#34;:&amp;#34;Scorpio glyph inside circle at left&amp;#34;,&amp;#34;constellation&amp;#34;:&amp;#34;Scorpio constellation at upper right&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;元素:水&amp;#34;,&amp;#34;概念:深海偵察者,情緒有深度&amp;#34;,&amp;#34;性格:專注、神秘、意志強&amp;#34;,&amp;#34;行動原則:先觀察,再一擊到位&amp;#34;,&amp;#34;戀愛傾向:愛得深,重忠誠與獨占感&amp;#34;,&amp;#34;人際怪癖:越在乎越不說,會偷偷試探&amp;#34;],&amp;#34;character&amp;#34;:{&amp;#34;identity&amp;#34;:&amp;#34;same young woman model reimagined as zodiac character&amp;#34;,&amp;#34;pose&amp;#34;:&amp;#34;half-body portrait, one hand near chin in a composed, enigmatic gesture&amp;#34;,&amp;#34;hair&amp;#34;:&amp;#34;long dark ponytail&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;black semi-sheer dress with gothic details and a dark plum off-shoulder shawl&amp;#34;,&amp;#34;accessories&amp;#34;:&amp;#34;dangling earrings and layered necklace&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;dark purple celestial sea scene with crescent moon, bubbles, stars, and curling misty water shapes&amp;#34;}},{&amp;#34;title&amp;#34;:&amp;#34;雙魚座 Pisces&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom panel&amp;#34;,&amp;#34;theme_color&amp;#34;:&amp;#34;lavender&amp;#34;,&amp;#34;zodiac_symbol&amp;#34;:&amp;#34;Pisces glyph inside circle at left&amp;#34;,&amp;#34;constellation&amp;#34;:&amp;#34;Pisces constellation at upper right&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;元素:水&amp;#34;,&amp;#34;概念:夢境共感者,靠直覺導航&amp;#34;,&amp;#34;性格:浪漫、柔軟、有想像力&amp;#34;,&amp;#34;行動原則:先感受,再順流找答案&amp;#34;,&amp;#34;戀愛傾向:容易心動,渴望靈魂陪伴&amp;#34;,&amp;#34;人際怪癖:常把別人的情緒也一起感受&amp;#34;],&amp;#34;character&amp;#34;:{&amp;#34;identity&amp;#34;:&amp;#34;same young woman model reimagined as zodiac character&amp;#34;,&amp;#34;pose&amp;#34;:&amp;#34;half-body portrait, one hand lifted as if balancing floating bubbles, other hand resting lightly at chest&amp;#34;,&amp;#34;hair&amp;#34;:&amp;#34;long dark ponytail with a pale flower hair ornament&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;translucent lavender fantasy dress with soft draped sleeves and shimmering fabric&amp;#34;,&amp;#34;accessories&amp;#34;:&amp;#34;delicate earrings and necklace&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;pale lilac underwater-celestial blend with bubbles, sparkles, and flowing translucent wave forms&amp;#34;}}],&amp;#34;dividers&amp;#34;:&amp;#34;three horizontal framed panels with thin ornamental borders&amp;#34;},&amp;#34;footer&amp;#34;:{&amp;#34;center_icon&amp;#34;:&amp;#34;small blue seashell emblem&amp;#34;,&amp;#34;decorations&amp;#34;:[&amp;#34;tiny stars&amp;#34;,&amp;#34;fine scrollwork&amp;#34;]},&amp;#34;constraints&amp;#34;:[&amp;#34;all three zodiac entries must use the same woman as the base character with different styling, clothing, pose, and mood&amp;#34;,&amp;#34;text should be clean, editorial, and readable&amp;#34;,&amp;#34;each panel should clearly separate illustration area on the left and text block on the right&amp;#34;,&amp;#34;maintain cohesive water-element theme across all 3 signs&amp;#34;,&amp;#34;do not include the other nine zodiac signs in this image&amp;#34;]}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;土象星座角色海报&#34;&gt;土象星座角色海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia/status/2048114825398731143&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@komorimedia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/067.webp&#34;
	width=&#34;848&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/067_hu_f718ee29bebcc79f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/067_hu_b8570c65f3d8c476.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;土象星座角色海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;vintage zodiac character infographic poster&amp;#34;,&amp;#34;theme&amp;#34;:&amp;#34;earth signs only&amp;#34;,&amp;#34;language&amp;#34;:&amp;#34;Traditional Chinese&amp;#34;,&amp;#34;style&amp;#34;:{&amp;#34;overall&amp;#34;:&amp;#34;elegant editorial infographic with soft anime-inspired live-action portrait compositing&amp;#34;,&amp;#34;palette&amp;#34;:&amp;#34;warm beige, cream, taupe, olive-gray, muted brown, antique gold&amp;#34;,&amp;#34;mood&amp;#34;:&amp;#34;stable, refined, calm, practical&amp;#34;,&amp;#34;texture&amp;#34;:&amp;#34;aged paper background with subtle speckles and thin ornamental borders&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;clean high-resolution print poster, soft lighting, delicate botanical and celestial line art&amp;#34;},&amp;#34;poster&amp;#34;:{&amp;#34;orientation&amp;#34;:&amp;#34;vertical&amp;#34;,&amp;#34;aspect_ratio&amp;#34;:&amp;#34;3:4&amp;#34;,&amp;#34;title&amp;#34;:&amp;#34;十二星座角色清單|土象星座&amp;#34;,&amp;#34;subtitle&amp;#34;:&amp;#34;穩定・務實・沉著&amp;#34;,&amp;#34;decorations&amp;#34;:[&amp;#34;ornamental corner filigree&amp;#34;,&amp;#34;small gold sparkles&amp;#34;,&amp;#34;botanical branches&amp;#34;,&amp;#34;mountain illustrations&amp;#34;,&amp;#34;thin panel dividers&amp;#34;],&amp;#34;sections_count&amp;#34;:3},&amp;#34;layout&amp;#34;:{&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;金牛座 Taurus&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;元素:土&amp;#34;,&amp;#34;概念:感官收藏家,穩穩生活&amp;#34;,&amp;#34;性格:務實、耐心、重享受&amp;#34;,&amp;#34;行動原則:先確認值得,再長線投入&amp;#34;,&amp;#34;戀愛傾向:慢熱但專情,重安全感&amp;#34;,&amp;#34;人際怪癖:對喜歡的人會默默餵食&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;處女座 Virgo&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;middle&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;元素:土&amp;#34;,&amp;#34;概念:秩序管理者,細節控場&amp;#34;,&amp;#34;性格:理性、細膩、可靠&amp;#34;,&amp;#34;行動原則:先整理,再精準出手&amp;#34;,&amp;#34;戀愛傾向:用照顧和實際行動表達喜歡&amp;#34;,&amp;#34;人際怪癖:嘴上挑剔,心裡其實很在乎&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;摩羯座 Capricorn&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;元素:土&amp;#34;,&amp;#34;概念:登峰實幹家,目標導向&amp;#34;,&amp;#34;性格:穩重、自律、有責任感&amp;#34;,&amp;#34;行動原則:先規劃,再穩定推進&amp;#34;,&amp;#34;戀愛傾向:慢熟務實,願意長期承諾&amp;#34;,&amp;#34;人際怪癖:關心常包裝成提醒與安排&amp;#34;]}],&amp;#34;centerpiece&amp;#34;:&amp;#34;three stacked horizontal character cards, each with a portrait on the left and text profile on the right&amp;#34;},&amp;#34;character&amp;#34;:{&amp;#34;identity&amp;#34;:&amp;#34;the same young East Asian woman appears in all 3 sections&amp;#34;,&amp;#34;age&amp;#34;:&amp;#34;early 20s&amp;#34;,&amp;#34;hair&amp;#34;:&amp;#34;long dark brown to black hair in a low ponytail with side part&amp;#34;,&amp;#34;face&amp;#34;:&amp;#34;soft feminine features, natural makeup, calm expression&amp;#34;,&amp;#34;customization&amp;#34;:&amp;#34;keep the same base character across all zodiac entries, differentiated by wardrobe, pose, props, and themed background motifs&amp;#34;},&amp;#34;cards&amp;#34;:[{&amp;#34;sign&amp;#34;:&amp;#34;Taurus&amp;#34;,&amp;#34;symbol&amp;#34;:&amp;#34;♉&amp;#34;,&amp;#34;portrait&amp;#34;:{&amp;#34;pose&amp;#34;:&amp;#34;waist-up, slightly turned, holding a ceramic mug with both hands&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;cream knit sleeveless top under a soft sage-gray cardigan with delicate floral embroidery&amp;#34;,&amp;#34;expression&amp;#34;:&amp;#34;gentle, relaxed, nurturing&amp;#34;,&amp;#34;props_count&amp;#34;:1,&amp;#34;props&amp;#34;:[&amp;#34;mug&amp;#34;]},&amp;#34;background&amp;#34;:&amp;#34;large pale circular halo, floral branch illustration, soft botanical motifs, small mountain drawing in upper right&amp;#34;,&amp;#34;visual_concept&amp;#34;:&amp;#34;comfort, sensuality, domestic calm, slow living&amp;#34;},{&amp;#34;sign&amp;#34;:&amp;#34;Virgo&amp;#34;,&amp;#34;symbol&amp;#34;:&amp;#34;♍&amp;#34;,&amp;#34;portrait&amp;#34;:{&amp;#34;pose&amp;#34;:&amp;#34;waist-up, one hand holding a pen near the chin, the other arm holding an open notebook or planner&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;light cream blouse with a bow tie collar under a pale sage vest with gold buttons&amp;#34;,&amp;#34;expression&amp;#34;:&amp;#34;thoughtful, analytical, composed&amp;#34;,&amp;#34;props_count&amp;#34;:2,&amp;#34;props&amp;#34;:[&amp;#34;pen&amp;#34;,&amp;#34;notebook&amp;#34;]},&amp;#34;background&amp;#34;:&amp;#34;fine geometric diagram lines, botanical sprigs, diamond emblem with leaf motif&amp;#34;,&amp;#34;visual_concept&amp;#34;:&amp;#34;order, precision, intelligence, organization&amp;#34;},{&amp;#34;sign&amp;#34;:&amp;#34;Capricorn&amp;#34;,&amp;#34;symbol&amp;#34;:&amp;#34;♑&amp;#34;,&amp;#34;portrait&amp;#34;:{&amp;#34;pose&amp;#34;:&amp;#34;waist-up, arms crossed, confident upright stance&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;charcoal tailored blazer over a dark vest and crisp white shirt, small round lapel pin&amp;#34;,&amp;#34;expression&amp;#34;:&amp;#34;serious, disciplined, self-assured&amp;#34;,&amp;#34;props_count&amp;#34;:0,&amp;#34;props&amp;#34;:[]},&amp;#34;background&amp;#34;:&amp;#34;dramatic layered mountain landscape in sepia tones with subtle star-like sparkles&amp;#34;,&amp;#34;visual_concept&amp;#34;:&amp;#34;ambition, endurance, authority, climbing toward goals&amp;#34;}],&amp;#34;typography&amp;#34;:{&amp;#34;title_font&amp;#34;:&amp;#34;classic high-contrast serif Chinese type&amp;#34;,&amp;#34;sign_name_font&amp;#34;:&amp;#34;large bold Chinese serif with elegant italic Latin zodiac name&amp;#34;,&amp;#34;body_font&amp;#34;:&amp;#34;clean readable Chinese print font&amp;#34;,&amp;#34;icon_style&amp;#34;:&amp;#34;filled circular brown icons next to each bullet line&amp;#34;},&amp;#34;composition&amp;#34;:{&amp;#34;margin&amp;#34;:&amp;#34;generous cream margins&amp;#34;,&amp;#34;panel_style&amp;#34;:&amp;#34;rounded rectangular panels with thin gold-brown borders&amp;#34;,&amp;#34;spacing&amp;#34;:&amp;#34;even vertical stacking with narrow separators&amp;#34;,&amp;#34;text_alignment&amp;#34;:&amp;#34;left-aligned profile bullets on the right side of each card&amp;#34;}}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;火象星座角色海报&#34;&gt;火象星座角色海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia/status/2048114825398731143&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@komorimedia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/068.webp&#34;
	width=&#34;848&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/068_hu_7ef6d97057f11809.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/068_hu_ea85fb4d58a7f224.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;火象星座角色海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A polished vertical infographic poster in elegant East Asian editorial style, themed around the fire signs of the zodiac using one consistent female character reimagined in three different costumes. Cream parchment background with thin ornamental borders, small corner flourishes, tiny sparkles, and warm red-orange-gold accents throughout. Large Chinese headline at the top reading {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;十二星座角色清單|火象星座&amp;#34;}, with a smaller subheading beneath reading {argument name=&amp;#34;subheading text&amp;#34; default=&amp;#34;熱情・行動・勇氣&amp;#34;}, and a decorative flame icon at the top right. The layout contains exactly 3 stacked profile panels with rounded rectangular borders and generous margins: Aries on top, Leo in the middle, Sagittarius on the bottom. Each panel is split visually with the character on the left and a text/spec area on the right, plus a zodiac symbol badge on the far left and a small constellation diagram on the far right.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use the same young East Asian woman in all 3 panels, slim build, long dark hair in a high ponytail, shown from about thigh-up to waist-up, facing slightly toward camera, styled as a fashion-model zodiac character sheet. Keep facial features neutral and refined, clean beauty lighting, soft airbrushed illustration-photo composite look.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 1: Aries. Chinese title and English subtitle: &amp;#34;牡羊座 Aries&amp;#34;. Dominant color scheme: vivid red with warm coral highlights. Zodiac symbol badge shows Aries glyph. Constellation on the right. Behind the character, faint circular mystical line art and flame motifs. Outfit: sporty warrior idol styling with a white crop top, red open short-sleeve jacket with gold trim, red belt, and red wrist wraps or fingerless arm accessories. Pose: confident, energetic, one fist raised near the shoulder and the other hand on her hip. Include exactly 6 info lines with small circular icons before each line, all in Chinese: 1) &amp;#34;元素:火&amp;#34; 2) &amp;#34;概念:點火者,直覺先行&amp;#34; 3) &amp;#34;性格:熱情、直接、好勝&amp;#34; 4) &amp;#34;行動原則:先衝再修正&amp;#34; 5) &amp;#34;戀愛傾向:心動就追,喜歡熱烈互動&amp;#34; 6) &amp;#34;人際怪癖:嫌節奏太慢時會自己接手&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 2: Leo. Chinese title and English subtitle: &amp;#34;獅子座 Leo&amp;#34;. Dominant color scheme: gold, champagne, and soft amber. Zodiac symbol badge shows Leo glyph. Constellation on the right. Background includes radiant sunburst styling and a faint majestic lion illustration silhouette behind the character. Outfit: glamorous regal gown in pale gold with ornate embroidery, jeweled bodice details, flowing translucent cape sleeves, elegant necklace, and a small crown or tiara. Pose: poised and queenly, one hand lightly touching the chest or collarbone, shoulders open, projecting confidence and star power. Include exactly 6 info lines with small circular icons before each line, all in Chinese: 1) &amp;#34;元素:火&amp;#34; 2) &amp;#34;概念:舞台中心,自帶光芒&amp;#34; 3) &amp;#34;性格:大方、自信、要面子&amp;#34; 4) &amp;#34;行動原則:先定氣場,再帶隊前進&amp;#34; 5) &amp;#34;戀愛傾向:喜歡被偏愛,也樂於寵人&amp;#34; 6) &amp;#34;人際怪癖:明明在意,卻要裝沒事&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 3: Sagittarius. Chinese title and English subtitle: &amp;#34;射手座 Sagittarius&amp;#34;. Dominant color scheme: rust red, burnt orange, brown leather, and warm ivory. Zodiac symbol badge shows Sagittarius glyph. Constellation on the right. Background features faint compass-circle graphics and flame accents. Outfit: adventurous archer styling with an ivory blouse, red scarf, brown leather harness straps, utility belt, and arm bracers. Pose: dynamic action shot drawing a bow, arrow aimed to the right, with a small glowing spark at the bow grip or arrow rest. Include exactly 6 info lines with small circular icons before each line, all in Chinese: 1) &amp;#34;元素:火&amp;#34; 2) &amp;#34;概念:自由旅人,邊走邊發現&amp;#34; 3) &amp;#34;性格:樂觀、坦率、好奇&amp;#34; 4) &amp;#34;行動原則:先出發,路上再找答案&amp;#34; 5) &amp;#34;戀愛傾向:喜歡輕鬆真誠,不愛被綁住&amp;#34; 6) &amp;#34;人際怪癖:聊到一半常被新鮮事帶走&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Overall design should feel premium, feminine, mystical, and collectible, like a social-media-ready zodiac character list poster. Use elegant serif-style Chinese typography for the main sign names and italic calligraphic English for Aries, Leo, and Sagittarius. Keep all text crisp, aligned, and readable. Add one small decorative fire emblem centered near the bottom border. Aspect ratio 3:4 portrait.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;风象星座角色海报&#34;&gt;风象星座角色海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia/status/2048114825398731143&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@komorimedia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/069.webp&#34;
	width=&#34;848&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/069_hu_42522190a4347a3c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/069_hu_cb063e06d04af3cd.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;风象星座角色海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;Chinese zodiac-themed character infographic poster&amp;#34;,&amp;#34;format&amp;#34;:&amp;#34;vertical poster&amp;#34;,&amp;#34;aspect_ratio&amp;#34;:&amp;#34;3:4&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;clean pastel editorial infographic with anime-inspired fashion photography, soft magical accents, elegant horoscope design, premium magazine layout&amp;#34;,&amp;#34;background&amp;#34;:{&amp;#34;color&amp;#34;:&amp;#34;warm ivory&amp;#34;,&amp;#34;border&amp;#34;:&amp;#34;thin decorative gold frame with small ornamental corners and tiny sparkles&amp;#34;,&amp;#34;top_right_motif&amp;#34;:&amp;#34;large pale air-element swirl ornament&amp;#34;},&amp;#34;title_block&amp;#34;:{&amp;#34;headline&amp;#34;:&amp;#34;十二星座角色清單|風象星座&amp;#34;,&amp;#34;subheadline&amp;#34;:&amp;#34;靈活・交流・思辨&amp;#34;,&amp;#34;alignment&amp;#34;:&amp;#34;top center&amp;#34;,&amp;#34;headline_color&amp;#34;:&amp;#34;deep desaturated blue&amp;#34;,&amp;#34;subheadline_color&amp;#34;:&amp;#34;muted gold&amp;#34;},&amp;#34;subject&amp;#34;:{&amp;#34;count&amp;#34;:3,&amp;#34;description&amp;#34;:&amp;#34;the same young East Asian woman used as the base character appears in 3 separate horoscope panels, each shown from about thigh-up to waist-up with long dark hair and soft feminine styling, photographed frontally and integrated into illustrated pastel zodiac backdrops&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;雙子座 Gemini&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top panel&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;theme_color&amp;#34;:&amp;#34;butter yellow and cream&amp;#34;,&amp;#34;zodiac_symbol&amp;#34;:&amp;#34;Gemini glyph inside a circle on the left&amp;#34;,&amp;#34;constellation&amp;#34;:&amp;#34;small Gemini constellation in the upper right&amp;#34;,&amp;#34;character_pose&amp;#34;:&amp;#34;playful double peace signs raised beside her face&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;pale yellow cardigan over a white ribbed crop top, light bottoms, yellow belt, delicate necklace&amp;#34;,&amp;#34;background_motifs_count&amp;#34;:4,&amp;#34;background_motifs&amp;#34;:[&amp;#34;speech bubble icon&amp;#34;,&amp;#34;sparkles&amp;#34;,&amp;#34;curved flowing lines&amp;#34;,&amp;#34;soft dots&amp;#34;],&amp;#34;text_items_count&amp;#34;:6,&amp;#34;text_items&amp;#34;:[&amp;#34;元素:風&amp;#34;,&amp;#34;概念:資訊玩家,靈感跳接&amp;#34;,&amp;#34;性格:機靈、善聊、多變&amp;#34;,&amp;#34;行動原則:先交流,再快速轉向&amp;#34;,&amp;#34;戀愛傾向:喜歡有趣互動與腦力火花&amp;#34;,&amp;#34;人際怪癖:話題切換速度快到像開分頁&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;天秤座 Libra&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;middle panel&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;theme_color&amp;#34;:&amp;#34;blush pink and pastel lavender&amp;#34;,&amp;#34;zodiac_symbol&amp;#34;:&amp;#34;Libra glyph inside a circle on the left&amp;#34;,&amp;#34;constellation&amp;#34;:&amp;#34;small Libra constellation in the upper right&amp;#34;,&amp;#34;character_pose&amp;#34;:&amp;#34;one hand raised open-palmed as if presenting balance, the other hand near her chin in an elegant thoughtful pose&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;pink blazer draped over shoulders, pastel pink-and-blue wrapped dress, jeweled belt, earrings, necklace, bracelet&amp;#34;,&amp;#34;background_motifs_count&amp;#34;:4,&amp;#34;background_motifs&amp;#34;:[&amp;#34;scales illustration&amp;#34;,&amp;#34;flowing ribbon-like swirls&amp;#34;,&amp;#34;sparkles&amp;#34;,&amp;#34;soft gradient haze&amp;#34;],&amp;#34;text_items_count&amp;#34;:6,&amp;#34;text_items&amp;#34;:[&amp;#34;元素:風&amp;#34;,&amp;#34;概念:關係設計師,追求平衡&amp;#34;,&amp;#34;性格:優雅、圓融、審美強&amp;#34;,&amp;#34;行動原則:先衡量,再找最順解法&amp;#34;,&amp;#34;戀愛傾向:重氛圍與互相體面&amp;#34;,&amp;#34;人際怪癖:選太久,但又很會照顧場面&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;水瓶座 Aquarius&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom panel&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;theme_color&amp;#34;:&amp;#34;lavender, icy blue, and silver&amp;#34;,&amp;#34;zodiac_symbol&amp;#34;:&amp;#34;Aquarius glyph inside a circle on the left&amp;#34;,&amp;#34;constellation&amp;#34;:&amp;#34;small Aquarius constellation in the upper right&amp;#34;,&amp;#34;character_pose&amp;#34;:&amp;#34;holding and tilting a futuristic transparent vessel as glowing water-like energy pours out in looping streams&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;metallic silver crop top and skirt set with translucent iridescent jacket, futuristic straps, reflective accessories&amp;#34;,&amp;#34;background_motifs_count&amp;#34;:4,&amp;#34;background_motifs&amp;#34;:[&amp;#34;glowing circular energy rings&amp;#34;,&amp;#34;constellation lines&amp;#34;,&amp;#34;sparkles&amp;#34;,&amp;#34;light trails&amp;#34;],&amp;#34;text_items_count&amp;#34;:6,&amp;#34;text_items&amp;#34;:[&amp;#34;元素:風&amp;#34;,&amp;#34;概念:未來觀察員,規則改革者&amp;#34;,&amp;#34;性格:獨立、理想派、腦洞大&amp;#34;,&amp;#34;行動原則:先思考原理,再另闢路線&amp;#34;,&amp;#34;戀愛傾向:重精神共鳴,也需要個人空間&amp;#34;,&amp;#34;人際怪癖:忽冷忽熱,其實是在充電&amp;#34;]}],&amp;#34;panel_count&amp;#34;:3},&amp;#34;typography&amp;#34;:{&amp;#34;languages&amp;#34;:[&amp;#34;Traditional Chinese&amp;#34;,&amp;#34;English zodiac names&amp;#34;],&amp;#34;headline_font&amp;#34;:&amp;#34;elegant high-contrast serif&amp;#34;,&amp;#34;body_font&amp;#34;:&amp;#34;clean legible Chinese serif or sans-serif hybrid&amp;#34;,&amp;#34;zodiac_english&amp;#34;:&amp;#34;italic calligraphic serif&amp;#34;},&amp;#34;visual_rules&amp;#34;:{&amp;#34;each_panel_has&amp;#34;:8,&amp;#34;panel_elements&amp;#34;:[&amp;#34;left zodiac glyph badge&amp;#34;,&amp;#34;center-left character&amp;#34;,&amp;#34;right text block&amp;#34;,&amp;#34;English zodiac name&amp;#34;,&amp;#34;small constellation&amp;#34;,&amp;#34;pastel illustrated background motifs&amp;#34;,&amp;#34;thin panel border&amp;#34;,&amp;#34;6 bullet-style info lines with icons&amp;#34;],&amp;#34;spacing&amp;#34;:&amp;#34;generous margins and symmetrical alignment&amp;#34;,&amp;#34;render_quality&amp;#34;:&amp;#34;high resolution, crisp print-ready infographic&amp;#34;}}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;藏族礼仪帽民族志图版&#34;&gt;藏族礼仪帽民族志图版
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/degewa/status/2048104569037783226&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/degewa&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@degewa&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/070.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/070_hu_9defc08da0469adb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/070_hu_9668df56d438f17a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;藏族礼仪帽民族志图版&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Using REFERENCE_0 and REFERENCE_1, create a clean ethnographic archive plate focused on the ceremonial hat. Use REFERENCE_0 as the historical Tibetan context and silhouette reference, and REFERENCE_1 as the color, material, and ornament reference for the hat. Isolate and reconstruct the hat as a museum-style object study, removing the seated body as the main subject. Present the hat on an off-white document page as a scholarly catalog sheet in Chinese with small romanization. Add 8 numbered callouts around the object with fine dashed leader lines, each pointing to a specific structural detail. The centerpiece should be one large three-quarter underside view of the hat. Also include exactly 4 supplementary views/details: 1 side-profile wearing sketch with a faint line-drawn bust, 1 underside interior view, 1 top-down view, and 2 square close-up material swatches. Add exactly 4 thread-color samples near the lower right: blue, red, white, and yellow. At the top center, add the large title {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;唐徐帽&amp;#34;} with the romanization {argument name=&amp;#34;romanization&amp;#34; default=&amp;#34;(thang zhwa)&amp;#34;} beneath it, plus a smaller subtitle describing it as a summer ceremonial hat of high-ranking Tibetan monks. In the upper left, add a boxed metadata panel with multiple short Chinese fields, and in the upper right add a plate number reading {argument name=&amp;#34;plate number&amp;#34; default=&amp;#34;图版 No. 27&amp;#34;}. At the bottom, add one bordered note paragraph in Chinese. Overall style: meticulous archival infographic, anthropological catalog illustration, historically informed, precise woven texture, ivory-gold base with blue and red ornament, elegant print layout, thin rules and decorative divider marks, high-detail object rendering on a plain paper background.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;复古-prs-吉他谱系海报&#34;&gt;复古 PRS 吉他谱系海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/GlennHasABeard/status/2048087784141857235&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/GlennHasABeard&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@GlennHasABeard&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/071.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/071_hu_c00ca7ff3d8542ef.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/071_hu_3776a06329c3d552.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;复古 PRS 吉他谱系海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;luxury vintage guitar comparison infographic poster&amp;#34;,&amp;#34;subject&amp;#34;:&amp;#34;a highly detailed, vertically oriented PRS electric guitar lineup chart designed like a premium museum poster or collector&amp;#39;s reference board&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;ornate, dark, glossy, high-contrast, gold-foil typography, elegant wood-and-metal textures, symmetrical grid layout, premium catalog aesthetic, subtle vintage patina, ultra sharp graphic design&amp;#34;,&amp;#34;branding&amp;#34;:{&amp;#34;main headline&amp;#34;:&amp;#34;THE LEGENDARY LINEAGE OF {argument name=\&amp;#34;brand name\&amp;#34; default=\&amp;#34;PRS GUITARS\&amp;#34;}&amp;#34;,&amp;#34;subheadline&amp;#34;:&amp;#34;EVERY ICON. EVERY LINE. ONE HERITAGE.&amp;#34;,&amp;#34;signature&amp;#34;:&amp;#34;Paul Reed Smith&amp;#34;,&amp;#34;left seal&amp;#34;:&amp;#34;PAUL REED SMITH GUITARS&amp;#34;,&amp;#34;right seal&amp;#34;:&amp;#34;MADE IN MARYLAND U.S.A.&amp;#34;},&amp;#34;palette&amp;#34;:{&amp;#34;background&amp;#34;:&amp;#34;black and deep charcoal with dark figured wood accents&amp;#34;,&amp;#34;primary&amp;#34;:&amp;#34;antique gold&amp;#34;,&amp;#34;secondary&amp;#34;:&amp;#34;cream&amp;#34;,&amp;#34;accent colors&amp;#34;:[&amp;#34;deep green&amp;#34;,&amp;#34;teal&amp;#34;,&amp;#34;royal blue&amp;#34;,&amp;#34;purple&amp;#34;,&amp;#34;gold&amp;#34;,&amp;#34;burgundy&amp;#34;]},&amp;#34;layout&amp;#34;:{&amp;#34;format&amp;#34;:&amp;#34;single-page vertical poster&amp;#34;,&amp;#34;header&amp;#34;:{&amp;#34;position&amp;#34;:&amp;#34;top&amp;#34;,&amp;#34;elements&amp;#34;:[&amp;#34;large central title&amp;#34;,&amp;#34;small tagline below&amp;#34;,&amp;#34;script signature&amp;#34;,&amp;#34;2 circular emblems in upper left and upper right&amp;#34;,&amp;#34;3 horizontal legend boxes under the title&amp;#34;]},&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;PRESTIGE TIER KEY&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper left below title&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;SE&amp;#34;,&amp;#34;S2&amp;#34;,&amp;#34;CE&amp;#34;,&amp;#34;CORE&amp;#34;,&amp;#34;WOOD LIBRARY&amp;#34;,&amp;#34;PRIVATE STOCK&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;PICKUP ICON KEY&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper center-right below title&amp;#34;,&amp;#34;count&amp;#34;:7,&amp;#34;labels&amp;#34;:[&amp;#34;HH&amp;#34;,&amp;#34;HSH&amp;#34;,&amp;#34;P-90&amp;#34;,&amp;#34;SOAP&amp;#34;,&amp;#34;58/15&amp;#34;,&amp;#34;TCI&amp;#34;,&amp;#34;Bass&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;TONAL CHARACTER KEY&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper right below title&amp;#34;,&amp;#34;count&amp;#34;:7,&amp;#34;labels&amp;#34;:[&amp;#34;Warm / Vintage&amp;#34;,&amp;#34;Balanced / All-around&amp;#34;,&amp;#34;Bright / Articulate&amp;#34;,&amp;#34;High Gain / Modern&amp;#34;,&amp;#34;Blues / Classic Rock&amp;#34;,&amp;#34;Metal / Progressive&amp;#34;,&amp;#34;Funk / Soul / Clean&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;CORE&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;first main row left label&amp;#34;,&amp;#34;count&amp;#34;:7,&amp;#34;labels&amp;#34;:[&amp;#34;Custom 24&amp;#34;,&amp;#34;McCarty 594&amp;#34;,&amp;#34;DGT (David Grissom)&amp;#34;,&amp;#34;Custom 22&amp;#34;,&amp;#34;Hollowbody II&amp;#34;,&amp;#34;SC 594&amp;#34;,&amp;#34;row category panel&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;S2&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;second main row left label&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;S2 Custom 24&amp;#34;,&amp;#34;S2 McCarty 594&amp;#34;,&amp;#34;S2 Standard 24&amp;#34;,&amp;#34;S2 Vela&amp;#34;,&amp;#34;S2 Singlecut&amp;#34;,&amp;#34;S2 Mira&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;SE&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;third main row left label&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;SE Custom 24&amp;#34;,&amp;#34;SE Standard 24&amp;#34;,&amp;#34;SE Paul&amp;#39;s Guitar&amp;#34;,&amp;#34;SE Santana&amp;#34;,&amp;#34;SE Hollowbody II&amp;#34;,&amp;#34;SE Mark Holcomb&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;CE&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;fourth main row left label&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;CE 24&amp;#34;,&amp;#34;CE 22&amp;#34;,&amp;#34;CE 24 Semi-Hollow&amp;#34;,&amp;#34;CE 24 Floyd&amp;#34;,&amp;#34;CE 24 Satin&amp;#34;,&amp;#34;CE Bass&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;BOLT-ON SERIES&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;fifth main row left label&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;NF 53&amp;#34;,&amp;#34;Silver Sky&amp;#34;,&amp;#34;NF 3&amp;#34;,&amp;#34;NF 53 Satin&amp;#34;,&amp;#34;DGT Bolt-On&amp;#34;,&amp;#34;Studio&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;PRIVATE STOCK&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;sixth main row left label&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;Dragon I&amp;#34;,&amp;#34;Frostbite&amp;#34;,&amp;#34;#4004&amp;#34;,&amp;#34;The Tree of Life&amp;#34;,&amp;#34;#8731&amp;#34;,&amp;#34;PS DGT&amp;#34;]}],&amp;#34;footer&amp;#34;:{&amp;#34;position&amp;#34;:&amp;#34;bottom&amp;#34;,&amp;#34;elements&amp;#34;:[&amp;#34;small badge at lower left&amp;#34;,&amp;#34;centered company line&amp;#34;,&amp;#34;right-side script signature&amp;#34;]}},&amp;#34;content grid&amp;#34;:{&amp;#34;total guitar models shown&amp;#34;:37,&amp;#34;card design&amp;#34;:&amp;#34;each product card contains a guitar render, model name, year, small pickup icons, a short descriptive blurb, and origin/wood specs at the bottom&amp;#34;,&amp;#34;row side panels&amp;#34;:6},&amp;#34;visual details&amp;#34;:{&amp;#34;guitars&amp;#34;:&amp;#34;front-facing electric guitars with varied body shapes and highly polished figured maple tops, metallic and transparent finishes, some solid colors, some natural wood&amp;#34;,&amp;#34;typography&amp;#34;:&amp;#34;all caps serif headlines, small serif body text, script signature accents&amp;#34;,&amp;#34;borders&amp;#34;:&amp;#34;thin decorative gold rules around every panel and the full poster&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;studio-lit instruments against dark panel backgrounds&amp;#34;,&amp;#34;render quality&amp;#34;:&amp;#34;clean infographic precision with realistic product renders&amp;#34;},&amp;#34;camera&amp;#34;:&amp;#34;straight-on flat poster view, no perspective distortion, centered composition&amp;#34;,&amp;#34;quality&amp;#34;:&amp;#34;ultra detailed, print-ready, high-resolution editorial infographic, luxury brand poster&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;阿里山一日游旅行海报&#34;&gt;阿里山一日游旅行海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/TWnese/status/2048077204786212887&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/TWnese&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@TWnese&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/072.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/072_hu_5de06e0cd01c812b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/072_hu_2721a3ee37bf1887.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;阿里山一日游旅行海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a vintage illustrated travel poster in traditional Chinese for {argument name=&amp;#34;destination name&amp;#34; default=&amp;#34;阿里山國家風景區&amp;#34;}, designed as a one-day itinerary infographic with a split vertical layout. The left panel is a parchment-textured itinerary card in warm beige with ornate gold Art Nouveau borders and dark brown typography, and the right panel is a dramatic painted fantasy-realism map scene of a mountain journey at sunrise and sunset tones. At the top of the left panel, large headline text reads {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;阿里山國家風景區一日遊&amp;#34;}. Beneath it, include a short centered tagline in traditional Chinese: 「一座高山,五個經典景點。難忘的奇幻旅程。」 with a small decorative mountain divider. The left panel must contain exactly 5 numbered itinerary stops stacked vertically, each with a circular black-and-gold number badge, a small vignette illustration, a bold location name, a time in parentheses, and a short Chinese description. The 5 stops are: 1. 「阿里山車站」 at 「(8:00 AM)」 with a wooden mountain railway station illustration and description 「開啟探索神木與森林的旅程。」 2. 「阿里山森林鐵路」 at 「(9:30 AM)」 with a red-and-black steam train illustration and description 「穿越森林,體驗百年林鐵風情。」 3. 「神木區棧道」 at 「(11:30 AM)」 with giant cedar trees and elevated wooden boardwalk illustration and description 「漫步千年巨木下,感受森林靈氣。」 4. 「姊妹潭」 at 「(1:30 PM)」 with a tranquil forest lake and pavilion illustration and description 「欣賞靜謐湖光,聆聽自然樂章。」 5. 「小笠原山展望台」 at 「(4:00 PM)」 with a wooden observation deck above clouds at sunset illustration and description 「觀賞壯闊山景與雲海,欣賞日落。」 The right panel should depict a continuous glowing golden path winding through exactly 5 numbered map markers that match the left panel labels in order, with black-and-gold marker plaques reading: 1 「阿里山車站」, 2 「阿里山森林鐵路」, 3 「神木區棧道」, 4 「姊妹潭」, 5 「小笠原山展望台」. Show stop 1 as a rustic alpine wooden station perched on a cliff among pine forests; stop 2 as a small steam locomotive traveling on a curved mountain railway with smoke drifting upward; stop 3 as towering ancient red cypress trees with a spiral and zigzag wooden walkway around the trunks; stop 4 as an emerald lake surrounded by dense forest with a small pavilion and arched bridge; stop 5 as a lookout deck on a peak above a sea of clouds, facing a glowing sunset. The environment should feature layered mountain ranges, mist-filled valleys, evergreen forests, golden-hour light, luminous cloud seas, and a romantic painterly atmosphere with rich detail. At the bottom right, add a decorative compass rose labeled N, E, S, W, plus a dark green and gold information box with exactly 2 stats in traditional Chinese: 「總距離 ~9公里 / 5.6英里」 and 「預計時間 全天 - 14,500步」. Overall style: premium tourism poster, painterly digital illustration, nostalgic national-park brochure aesthetic, highly detailed, warm sepia and gold accents, elegant composition, readable Chinese text, vertical 2:3 poster.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;舞蹈动作参考表&#34;&gt;舞蹈动作参考表
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Ciri_ai/status/2048074587955658848&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Ciri_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Ciri_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/073.webp&#34;
	width=&#34;1080&#34;
	height=&#34;611&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/073_hu_d0c36a5b8c2b80e0.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/073_hu_79ce36609849f62.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;舞蹈动作参考表&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;176&#34;
		data-flex-basis=&#34;424px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[STYLE]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;monochromatic grayscale illustration, 3D rendered character, clean instructional reference sheet, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;white background, comic-style cell grid layout, technical diagram aesthetic
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[LAYOUT]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4x4 grid layout, 16 panels total, each panel separated by thin black border lines, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;numbered cells from 1 to 16, consistent panel size
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[CHARACTER]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;character&amp;#34; default=&amp;#34;young female dancer, athletic build, ponytail hairstyle, crop top and baggy pants, sneakers&amp;#34;}, same character in all panels
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[PANEL STRUCTURE - per cell]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;top-left: bold number badge + {argument name=&amp;#34;title&amp;#34; default=&amp;#34;Korean title text&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;center: full-body character pose illustration
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bottom-left: {argument name=&amp;#34;description&amp;#34; default=&amp;#34;Korean description text (3-4 lines)&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;overlay: directional arrows indicating movement direction
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[ARROWS / MOTION INDICATORS]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curved arrows, straight arrows, circular rotation indicators, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;placed around the character to show movement flow and direction
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[RENDERING STYLE]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;high detail 3D sculpt style, soft studio lighting, subtle shadows, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;no color, grayscale shading, clean linework, game concept art quality
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[NEGATIVE]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;no background scenery, no color tones, no extra characters, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;no cluttered backgrounds
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;动漫博物馆背景转换&#34;&gt;动漫博物馆背景转换
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Dakiny/status/2048175219966394695&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Dakiny&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Dakiny&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/074.webp&#34;
	width=&#34;1200&#34;
	height=&#34;804&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/074_hu_12694e8f33f66c40.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/074_hu_ad2db60cad455b09.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫博物馆背景转换&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;149&#34;
		data-flex-basis=&#34;358px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Using the provided reference photo, recreate the same museum facade and frontal composition as a polished theatrical anime background illustration. Keep the architecture, signage, 3 flagpoles, broad steps, and overall layout consistent, but convert the image from realistic photography into a highly detailed hand-painted anime film style with clean linework, soft cel shading, gentle pastel stone colors, and crisp atmospheric lighting. Add dramatic sunlight from the upper right so the glass pyramid casts a large geometric lattice shadow across the central wall and left side of the entrance. Simplify and stylize the people into anime background characters, keeping the 2 visible groups: 1 lone figure on the left and 1 small cluster of 7 people near the center-right entrance. Preserve the clear blue-sky daytime mood while making the scene feel elegant, refined, and cinematic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;16-姿势舞蹈战斗参考表&#34;&gt;16 姿势舞蹈战斗参考表
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe/status/2048143577264402629&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ExquisitMe&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/075.webp&#34;
	width=&#34;1199&#34;
	height=&#34;680&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/075_hu_6291dd73dfb1fe6a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/075_hu_9ed3fc068d4b623d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;16 姿势舞蹈战斗参考表&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;176&#34;
		data-flex-basis=&#34;423px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;pose reference sheet&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;theme&amp;#34;:&amp;#34;hip-hop dance and combat-ready movement chart&amp;#34;,&amp;#34;character&amp;#34;:{&amp;#34;count&amp;#34;:1,&amp;#34;gender_presentation&amp;#34;:&amp;#34;female&amp;#34;,&amp;#34;age_appearance&amp;#34;:&amp;#34;young adult&amp;#34;,&amp;#34;body_type&amp;#34;:&amp;#34;fit athletic dancer&amp;#34;,&amp;#34;skin_tone&amp;#34;:&amp;#34;light tan&amp;#34;,&amp;#34;hair&amp;#34;:{&amp;#34;color&amp;#34;:&amp;#34;black&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;high ponytail with loose strands&amp;#34;},&amp;#34;outfit&amp;#34;:{&amp;#34;count&amp;#34;:5,&amp;#34;items&amp;#34;:[&amp;#34;white sports bra or cropped athletic top&amp;#34;,&amp;#34;baggy purple jogger pants&amp;#34;,&amp;#34;white chunky sneakers&amp;#34;,&amp;#34;purple wristbands or forearm bands on both arms&amp;#34;,&amp;#34;small hoop earrings&amp;#34;]}}},&amp;#34;style&amp;#34;:{&amp;#34;image_type&amp;#34;:&amp;#34;photorealistic studio pose sheet&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;clean even studio lighting&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;plain light gray to white seamless backdrop&amp;#34;,&amp;#34;camera&amp;#34;:&amp;#34;full-body framing, straight-on view, consistent distance&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;sharp realistic anatomy, dynamic motion, slight shadow under feet&amp;#34;,&amp;#34;face&amp;#34;:&amp;#34;intentionally blurred or obscured&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;grid&amp;#34;:{&amp;#34;rows&amp;#34;:4,&amp;#34;columns&amp;#34;:4,&amp;#34;count&amp;#34;:16},&amp;#34;numbering&amp;#34;:{&amp;#34;count&amp;#34;:16,&amp;#34;labels&amp;#34;:[&amp;#34;1&amp;#34;,&amp;#34;2&amp;#34;,&amp;#34;3&amp;#34;,&amp;#34;4&amp;#34;,&amp;#34;5&amp;#34;,&amp;#34;6&amp;#34;,&amp;#34;7&amp;#34;,&amp;#34;8&amp;#34;,&amp;#34;9&amp;#34;,&amp;#34;10&amp;#34;,&amp;#34;11&amp;#34;,&amp;#34;12&amp;#34;,&amp;#34;13&amp;#34;,&amp;#34;14&amp;#34;,&amp;#34;15&amp;#34;,&amp;#34;16&amp;#34;],&amp;#34;position&amp;#34;:&amp;#34;top-left corner of each cell&amp;#34;},&amp;#34;cell_borders&amp;#34;:&amp;#34;thin black divider lines between all panels&amp;#34;},&amp;#34;poses&amp;#34;:{&amp;#34;count&amp;#34;:16,&amp;#34;items&amp;#34;:[{&amp;#34;label&amp;#34;:&amp;#34;1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;wide low squat, knees bent outward, torso angled slightly left, both arms extended loosely in a defensive dance stance&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;deep side lunge to the left, left arm pointing straight left, right hand near the head, energetic directional pose&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;low crouch with one hand touching the floor, one knee bent under the body, opposite arm extended horizontally&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;upright one-leg balance, left knee lifted high, both arms spread outward for rhythm and balance&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;5&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;similar one-leg raised pose with the other leg supporting, arms stretched outward in a lighter dance variation&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;6&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;very wide grounded squat, torso pitched forward, one hand reaching toward the floor between the legs, other arm extended back&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;7&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;dramatic standing back arch, chest lifted upward, hips forward, both arms opened behind and to the sides&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;8&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;small jump or suspended squat, both feet off the floor, knees bent, arms spread wide symmetrically&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;9&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;floor-supported seated lean, one hand planted behind, one arm reaching diagonally upward, legs bent to one side&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;10&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;front-facing balance with one knee raised to hip height, one arm bent in guard position and the other extended sideways&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;11&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;deep lateral stance, feet far apart, knees bent, both hands raised open near shoulder level like a ready combat pose&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;12&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;low side lunge split, one hand planted on the floor, the other arm reaching vertically overhead, torso arched upward&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;13&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;standing backward lean with relaxed bent knees, chest up, arms hanging loosely behind in a groove pose&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;14&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;compact twisting crouch, weight low over bent legs, torso rotated, one arm pulled in and the other extended outward&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;15&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;very wide side lunge stretch, one hand to the floor near the front foot, opposite arm reaching diagonally overhead&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;16&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;one-leg lifted pose with knee high, one hand behind the head and the other arm extended forward, confident finishing stance&amp;#34;}]},&amp;#34;composition&amp;#34;:&amp;#34;show the same dancer in all 16 panels with consistent outfit and scale, centered within each frame, designed like a movement library or choreography reference chart&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;16-格舞蹈姿势参考表&#34;&gt;16 格舞蹈姿势参考表
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe/status/2048143577264402629&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ExquisitMe&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/076.webp&#34;
	width=&#34;1200&#34;
	height=&#34;680&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/076_hu_9cad5c551cf69b7b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/076_hu_34fa4cea34edd581.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;16 格舞蹈姿势参考表&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;176&#34;
		data-flex-basis=&#34;423px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;dance pose reference sheet&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;clean studio pose chart, photoreal fitness-dance reference, white seamless background, sharp full-body photography, soft even lighting, minimal shadows, thin black grid lines separating panels&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;count&amp;#34;:1,&amp;#34;person&amp;#34;:{&amp;#34;gender_presentation&amp;#34;:&amp;#34;female&amp;#34;,&amp;#34;age_appearance&amp;#34;:&amp;#34;young adult&amp;#34;,&amp;#34;build&amp;#34;:&amp;#34;slim athletic toned dancer&amp;#34;,&amp;#34;skin_tone&amp;#34;:&amp;#34;light tan&amp;#34;,&amp;#34;hair&amp;#34;:{&amp;#34;color&amp;#34;:&amp;#34;{argument name=\&amp;#34;hair color\&amp;#34; default=\&amp;#34;dark brown\&amp;#34;}&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;high ponytail with loose strands&amp;#34;},&amp;#34;outfit&amp;#34;:{&amp;#34;count&amp;#34;:3,&amp;#34;items&amp;#34;:[&amp;#34;white fitted sports bra or cropped athletic tank&amp;#34;,&amp;#34;baggy blue-gray jogger pants&amp;#34;,&amp;#34;white sneakers&amp;#34;]}}},&amp;#34;layout&amp;#34;:{&amp;#34;rows&amp;#34;:4,&amp;#34;columns&amp;#34;:4,&amp;#34;total_panels&amp;#34;:16,&amp;#34;numbering&amp;#34;:&amp;#34;black panel numbers in the top-left corner of each cell, labeled 1 through 16&amp;#34;,&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;pose grid&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;full page&amp;#34;,&amp;#34;count&amp;#34;:16,&amp;#34;labels&amp;#34;:[&amp;#34;1&amp;#34;,&amp;#34;2&amp;#34;,&amp;#34;3&amp;#34;,&amp;#34;4&amp;#34;,&amp;#34;5&amp;#34;,&amp;#34;6&amp;#34;,&amp;#34;7&amp;#34;,&amp;#34;8&amp;#34;,&amp;#34;9&amp;#34;,&amp;#34;10&amp;#34;,&amp;#34;11&amp;#34;,&amp;#34;12&amp;#34;,&amp;#34;13&amp;#34;,&amp;#34;14&amp;#34;,&amp;#34;15&amp;#34;,&amp;#34;16&amp;#34;]}]},&amp;#34;poses&amp;#34;:{&amp;#34;count&amp;#34;:16,&amp;#34;items&amp;#34;:[{&amp;#34;panel&amp;#34;:1,&amp;#34;description&amp;#34;:&amp;#34;wide stance, knees bent, torso upright, right arm extended straight to the right in a pointing gesture, left arm bent near the body&amp;#34;},{&amp;#34;panel&amp;#34;:2,&amp;#34;description&amp;#34;:&amp;#34;deep low squat facing forward, feet wide apart, one hand lifted in front of the chest, the other resting near the thigh&amp;#34;},{&amp;#34;panel&amp;#34;:3,&amp;#34;description&amp;#34;:&amp;#34;low floor-supported pose, leaning back on one hand with hips low, one knee bent under the body, opposite arm stretched diagonally upward&amp;#34;},{&amp;#34;panel&amp;#34;:4,&amp;#34;description&amp;#34;:&amp;#34;standing on one leg with the other knee raised, one arm curved overhead, opposite arm extended to the right in a strong dance line&amp;#34;},{&amp;#34;panel&amp;#34;:5,&amp;#34;description&amp;#34;:&amp;#34;deep squat with legs wide, one hand on thigh and the other arm reaching straight upward&amp;#34;},{&amp;#34;panel&amp;#34;:6,&amp;#34;description&amp;#34;:&amp;#34;light upright pose with one knee lifted and both arms relaxed outward for balance&amp;#34;},{&amp;#34;panel&amp;#34;:7,&amp;#34;description&amp;#34;:&amp;#34;wide stance with both arms crossed tightly in front of the chest, feet planted apart&amp;#34;},{&amp;#34;panel&amp;#34;:8,&amp;#34;description&amp;#34;:&amp;#34;low crouch close to the floor, one hand braced on the ground, the other arm crossing the torso&amp;#34;},{&amp;#34;panel&amp;#34;:9,&amp;#34;description&amp;#34;:&amp;#34;dynamic side-leaning wide stance, one arm bent upward beside the head, opposite arm pointing strongly to the right&amp;#34;},{&amp;#34;panel&amp;#34;:10,&amp;#34;description&amp;#34;:&amp;#34;compact crouch with weight centered low, one elbow resting near a knee and head tilted slightly downward&amp;#34;},{&amp;#34;panel&amp;#34;:11,&amp;#34;description&amp;#34;:&amp;#34;deep side lunge with one leg extended long to the side, one hand on the floor and the other arm reaching straight up&amp;#34;},{&amp;#34;panel&amp;#34;:12,&amp;#34;description&amp;#34;:&amp;#34;upright wide-legged stance, one arm extended vertically overhead, the other hand relaxed near the hip&amp;#34;},{&amp;#34;panel&amp;#34;:13,&amp;#34;description&amp;#34;:&amp;#34;standing balance pose with one knee raised and both hands held low near the thighs&amp;#34;},{&amp;#34;panel&amp;#34;:14,&amp;#34;description&amp;#34;:&amp;#34;low horse stance with knees bent wide and forearms crossed in front of the chest&amp;#34;},{&amp;#34;panel&amp;#34;:15,&amp;#34;description&amp;#34;:&amp;#34;kneeling or very low crouched pose with one hand on the floor and the other resting on the raised knee&amp;#34;},{&amp;#34;panel&amp;#34;:16,&amp;#34;description&amp;#34;:&amp;#34;high side kick, balancing on one leg while the other leg extends horizontally, both arms bent in a guarded fighting pose&amp;#34;}]},&amp;#34;intent&amp;#34;:&amp;#34;a {argument name=\&amp;#34;sheet purpose\&amp;#34; default=\&amp;#34;dance move sheet chart that can also be used for combat pose reference\&amp;#34;}, emphasizing silhouette variety, balance, rhythm, and dynamic athletic body lines&amp;#34;,&amp;#34;image_size&amp;#34;:&amp;#34;landscape 16:9&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;16-格女性舞蹈姿势表&#34;&gt;16 格女性舞蹈姿势表
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe/status/2048143577264402629&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ExquisitMe&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/077.webp&#34;
	width=&#34;1200&#34;
	height=&#34;680&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/077_hu_5a6068da941351fa.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/077_hu_800aceba14c16426.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;16 格女性舞蹈姿势表&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;176&#34;
		data-flex-basis=&#34;423px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;pose reference sheet&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;count&amp;#34;:1,&amp;#34;description&amp;#34;:&amp;#34;a fit young woman dancer shown repeatedly in a clean studio reference layout&amp;#34;,&amp;#34;appearance&amp;#34;:{&amp;#34;gender&amp;#34;:&amp;#34;female&amp;#34;,&amp;#34;age&amp;#34;:&amp;#34;young adult&amp;#34;,&amp;#34;build&amp;#34;:&amp;#34;athletic, toned midriff&amp;#34;,&amp;#34;skin tone&amp;#34;:&amp;#34;light to medium tan&amp;#34;,&amp;#34;hair&amp;#34;:{&amp;#34;color&amp;#34;:&amp;#34;dark brown&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;high messy ponytail with loose strands framing the face&amp;#34;},&amp;#34;expression&amp;#34;:&amp;#34;neutral to focused&amp;#34;},&amp;#34;wardrobe&amp;#34;:{&amp;#34;top&amp;#34;:&amp;#34;charcoal gray sports bra or cropped athletic bralette&amp;#34;,&amp;#34;bottom&amp;#34;:&amp;#34;oversized dark gray parachute cargo pants with gathered ankles&amp;#34;,&amp;#34;shoes&amp;#34;:&amp;#34;white sneakers&amp;#34;,&amp;#34;accessories&amp;#34;:[&amp;#34;black wristband or fingerless glove on one hand&amp;#34;,&amp;#34;subtle sporty styling&amp;#34;]}},&amp;#34;layout&amp;#34;:{&amp;#34;background&amp;#34;:&amp;#34;plain white seamless studio background&amp;#34;,&amp;#34;grid&amp;#34;:{&amp;#34;rows&amp;#34;:4,&amp;#34;columns&amp;#34;:4,&amp;#34;count&amp;#34;:16,&amp;#34;cell labels&amp;#34;:[&amp;#34;1&amp;#34;,&amp;#34;2&amp;#34;,&amp;#34;3&amp;#34;,&amp;#34;4&amp;#34;,&amp;#34;5&amp;#34;,&amp;#34;6&amp;#34;,&amp;#34;7&amp;#34;,&amp;#34;8&amp;#34;,&amp;#34;9&amp;#34;,&amp;#34;10&amp;#34;,&amp;#34;11&amp;#34;,&amp;#34;12&amp;#34;,&amp;#34;13&amp;#34;,&amp;#34;14&amp;#34;,&amp;#34;15&amp;#34;,&amp;#34;16&amp;#34;]},&amp;#34;style&amp;#34;:&amp;#34;clean contact-sheet or choreography chart with thin black dividers between panels and small black numbers at the upper left of each panel&amp;#34;},&amp;#34;poses&amp;#34;:[{&amp;#34;label&amp;#34;:&amp;#34;1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;relaxed standing pose, weight on one leg, one hand near hip, slight contrapposto&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;wide low dance stance, one arm bent behind the head, the other arm extended and pointing to the right&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;legs spread in a grounded stance, torso slightly tilted, one hand resting near the upper thigh&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;very low wide squat facing forward, torso leaning back, one hand near the face and the other near the thigh&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;5&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;wide side lunge stance, one arm arched overhead, the other arm extended outward in a stylized dance line&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;6&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;balancing on one leg with the other knee lifted high, one hand near the face in a punchy hip-hop pose&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;7&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;floorwork pose supported by one hand on the ground, torso reclined sideways, legs bent and lifted in a dynamic breakdance-like position&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;8&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;casual upright pose with one hand behind the head and one knee bent upward&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;9&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;one-legged balance pose with the lifted knee bent, both arms extended outward for motion and rhythm&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;10&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;low kneeling or crouched pose, one knee up and one knee down, one arm thrust forward toward the viewer&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;11&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;deep squat with legs apart, one arm curved overhead in a dramatic arc&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;12&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;standing lean to one side with one arm extended sideways and the other hand near the hip or thigh&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;13&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;reclining floor pose supported by one hand behind the body, one leg bent and one leg extended&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;14&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;upright standing pose with one arm fully extended and pointing to the right&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;15&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;front-facing pose stepping forward with one knee lifted, one arm reaching or pointing forward&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;16&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;wide confident stance with one arm pointing diagonally upward to the right&amp;#34;}],&amp;#34;rendering&amp;#34;:{&amp;#34;medium&amp;#34;:&amp;#34;photorealistic studio fashion and dance reference image&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;soft even studio lighting with faint shadows beneath the feet and body&amp;#34;,&amp;#34;camera&amp;#34;:&amp;#34;full-body framing, straight-on view, consistent distance in every panel&amp;#34;,&amp;#34;quality&amp;#34;:&amp;#34;sharp, high-resolution, realistic anatomy and fabric folds&amp;#34;}}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;16-姿势舞蹈参考表&#34;&gt;16 姿势舞蹈参考表
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe/status/2048143577264402629&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ExquisitMe&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/078.webp&#34;
	width=&#34;1199&#34;
	height=&#34;680&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/078_hu_918cd255b0091e22.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/078_hu_bd23bdaedc026045.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;16 姿势舞蹈参考表&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;176&#34;
		data-flex-basis=&#34;423px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;pose reference sheet&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;category&amp;#34;:&amp;#34;female dancer fitness model&amp;#34;,&amp;#34;age_appearance&amp;#34;:&amp;#34;young adult&amp;#34;,&amp;#34;build&amp;#34;:&amp;#34;slim athletic&amp;#34;,&amp;#34;hair&amp;#34;:{&amp;#34;color&amp;#34;:&amp;#34;dark brown&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;high ponytail&amp;#34;},&amp;#34;outfit&amp;#34;:{&amp;#34;top&amp;#34;:&amp;#34;light gray or white sports bra crop top&amp;#34;,&amp;#34;bottom&amp;#34;:&amp;#34;baggy light gray sweatpants&amp;#34;,&amp;#34;shoes&amp;#34;:&amp;#34;white sneakers&amp;#34;},&amp;#34;face&amp;#34;:&amp;#34;softly blurred or de-emphasized facial features&amp;#34;},&amp;#34;style&amp;#34;:{&amp;#34;image_type&amp;#34;:&amp;#34;studio dance pose chart&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;clean seamless white background&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;bright even studio lighting with minimal shadows&amp;#34;,&amp;#34;color_palette&amp;#34;:&amp;#34;neutral whites and light grays&amp;#34;,&amp;#34;camera&amp;#34;:&amp;#34;full-body framing, straight-on view, consistent distance&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;photorealistic&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;grid&amp;#34;:{&amp;#34;rows&amp;#34;:4,&amp;#34;columns&amp;#34;:4,&amp;#34;count&amp;#34;:16,&amp;#34;border&amp;#34;:&amp;#34;thin black dividers between cells&amp;#34;},&amp;#34;numbering&amp;#34;:{&amp;#34;count&amp;#34;:16,&amp;#34;labels&amp;#34;:[&amp;#34;1&amp;#34;,&amp;#34;2&amp;#34;,&amp;#34;3&amp;#34;,&amp;#34;4&amp;#34;,&amp;#34;5&amp;#34;,&amp;#34;6&amp;#34;,&amp;#34;7&amp;#34;,&amp;#34;8&amp;#34;,&amp;#34;9&amp;#34;,&amp;#34;10&amp;#34;,&amp;#34;11&amp;#34;,&amp;#34;12&amp;#34;,&amp;#34;13&amp;#34;,&amp;#34;14&amp;#34;,&amp;#34;15&amp;#34;,&amp;#34;16&amp;#34;],&amp;#34;position&amp;#34;:&amp;#34;top-left corner of each panel&amp;#34;},&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;row 1&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top&amp;#34;,&amp;#34;count&amp;#34;:4,&amp;#34;labels&amp;#34;:[&amp;#34;1 side lunge with one arm extended straight sideways and the other bent near chest&amp;#34;,&amp;#34;2 low floor pose leaning on one hand with one knee down and opposite arm arched upward&amp;#34;,&amp;#34;3 wide squat facing front with both arms opened in angular dance position&amp;#34;,&amp;#34;4 standing balance on one leg with opposite knee lifted and forearms crossed near chest&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;row 2&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper-middle&amp;#34;,&amp;#34;count&amp;#34;:4,&amp;#34;labels&amp;#34;:[&amp;#34;5 deep backbend in wide stance with torso arched and one arm curved overhead&amp;#34;,&amp;#34;6 wide squat with one hand behind head and the other arm pointing outward&amp;#34;,&amp;#34;7 kneeling side stretch with one hand on floor and opposite arm reaching straight up&amp;#34;,&amp;#34;8 standing arabesque-style extension with torso tilted forward and one leg lifted high behind/sideways&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;row 3&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;lower-middle&amp;#34;,&amp;#34;count&amp;#34;:4,&amp;#34;labels&amp;#34;:[&amp;#34;9 wide squat with torso tilted left, one arm curved overhead and one arm extended low&amp;#34;,&amp;#34;10 front-facing wide squat with both arms stretched diagonally in opposite directions&amp;#34;,&amp;#34;11 relaxed standing pose with legs apart and both forearms crossing in front of torso&amp;#34;,&amp;#34;12 floor recline supported on one hand and one knee, torso leaning back with bent legs&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;row 4&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom&amp;#34;,&amp;#34;count&amp;#34;:4,&amp;#34;labels&amp;#34;:[&amp;#34;13 small jump or lifted balance with one knee raised and one arm bent upward&amp;#34;,&amp;#34;14 low crouch squat with one hand reaching toward floor and other arm extended sideways&amp;#34;,&amp;#34;15 dramatic side backbend in wide stance with hair swinging and one arm curved overhead&amp;#34;,&amp;#34;16 powerful wide squat with one hand at chest and the other lowered to the side&amp;#34;]}],&amp;#34;overall_composition&amp;#34;:&amp;#34;all 16 poses shown as separate panels in a uniform contact sheet&amp;#34;},&amp;#34;prompt&amp;#34;:&amp;#34;Create a clean studio contact sheet of {argument name=\&amp;#34;pose count\&amp;#34; default=\&amp;#34;16\&amp;#34;} full-body dance or combat-reference poses featuring a {argument name=\&amp;#34;subject type\&amp;#34; default=\&amp;#34;young athletic woman\&amp;#34;} in a {argument name=\&amp;#34;outfit\&amp;#34; default=\&amp;#34;light gray sports bra, loose gray sweatpants, and white sneakers\&amp;#34;}. Use a seamless {argument name=\&amp;#34;background color\&amp;#34; default=\&amp;#34;white\&amp;#34;} background, bright even lighting, and a consistent straight-on camera. Arrange the poses in a 4x4 grid with thin black panel lines and small black numbers 1 through 16 in the top-left of each cell. The poses should mix standing, squatting, kneeling, floorwork, balance, kick-extension, backbend, and angular arm positions suitable for a dance sheet chart or combat movement reference. Keep the styling photorealistic, crisp, minimal, and instructional, with consistent wardrobe and hair across all panels.&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;气态巨行星下降分镜&#34;&gt;气态巨行星下降分镜
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/xRahultripathi/status/2048140775356354892&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/xRahultripathi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@xRahultripathi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/079.webp&#34;
	width=&#34;1200&#34;
	height=&#34;676&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/079_hu_8b65f2fca14570b3.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/079_hu_ec4b1b2c4e1077ff.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;气态巨行星下降分镜&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;cinematic sci-fi storyboard contact sheet&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;primary&amp;#34;:&amp;#34;a small futuristic spacecraft descending into a massive gas giant storm system&amp;#34;,&amp;#34;secondary&amp;#34;:&amp;#34;an enormous leviathan-like silhouette hidden within the clouds&amp;#34;,&amp;#34;mood&amp;#34;:&amp;#34;oppressive, catastrophic, awe-struck, high tension, cosmic dread&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;photorealistic cinematic concept art with dark sci-fi realism, volumetric storm clouds, strong contrast, amber and black palette with occasional cold blue lightning&amp;#34;,&amp;#34;aspect_ratio&amp;#34;:&amp;#34;16:9&amp;#34;},&amp;#34;vehicle&amp;#34;:{&amp;#34;design&amp;#34;:&amp;#34;compact armored deep-atmosphere ship with 3 bright rear engines, angular industrial hull, worn metallic panels&amp;#34;,&amp;#34;scale&amp;#34;:&amp;#34;tiny compared to the planet and creature&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;grid&amp;#34;:{&amp;#34;rows&amp;#34;:3,&amp;#34;columns&amp;#34;:4,&amp;#34;count&amp;#34;:12},&amp;#34;sections&amp;#34;:[{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;wide exterior shot of the ship entering the upper atmosphere of a colossal gas giant at extreme speed, glowing clouds streaked with fire and friction around the vessel, curved planetary horizon visible&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;cockpit POV, dark interior filled with red and cyan holographic instruments, forward visibility collapsing into turbulent storm layers and electrical haze&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;exterior mid-wide shot of the ship diving into a gigantic rotating cloud funnel, surrounded by violent spiraling storm structure&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;extreme close exterior of the ship hull as bright lightning strikes dangerously close, white electric energy crawling across the metal surface&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;dashboard warning screen in red, showing a critical systems failure interface with the exact visible text count of 4 warning lines and 1 large percentage readout: [&amp;#39;WARNING&amp;#39;,&amp;#39;ENGINES COMPROMISED&amp;#39;,&amp;#39;THRUST FLUCTUATION&amp;#39;,&amp;#39;GRAVITY SPIKE DETECTED&amp;#39;,&amp;#39;DESCENT RATE -453%&amp;#39;]&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;rear three-quarter exterior of the ship fighting turbulence inside dense storm clouds, engines burning hard while the craft barely holds course&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;massive circular disturbance forming in the clouds like an eye or maw, entire storm systems displaced by something huge moving beneath&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;second cockpit view with radar-like navigation display and red alert text, pilot making a blind evasive maneuver through lightning-filled darkness&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;first reveal of the colossal creature shape rising near the ship, black organic surface and immense curved anatomy emerging from darkness, ship tiny at lower left&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;spiral descent shot, ship caught inside a vortex tunnel of clouds, spinning downward with engines flaring as it struggles to recover&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;sudden breakthrough into a calm void, minimal composition, ship flying in eerie silence through dark open space with soft mist and no visible storm around it&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;final reveal, gigantic leviathan fully emerging behind or beside the ship in cleared space, backlit by a pale circular storm opening, enormous open maw-like silhouette dwarfing the craft&amp;#34;}],&amp;#34;continuity&amp;#34;:&amp;#34;all 12 panels depict one continuous descent sequence from atmospheric entry to final creature reveal&amp;#34;},&amp;#34;lighting&amp;#34;:{&amp;#34;primary&amp;#34;:&amp;#34;glowing amber storm light&amp;#34;,&amp;#34;secondary&amp;#34;:&amp;#34;red cockpit interface glow&amp;#34;,&amp;#34;accents&amp;#34;:&amp;#34;blue-white lightning and engine exhaust&amp;#34;},&amp;#34;environment&amp;#34;:{&amp;#34;location&amp;#34;:&amp;#34;inside the upper and middle storm layers of a gigantic gas giant&amp;#34;,&amp;#34;weather&amp;#34;:&amp;#34;violent turbulence, electrical storms, vortex funnels, cloud walls, pressure chaos&amp;#34;,&amp;#34;threat&amp;#34;:&amp;#34;no safe zone, repeated near-failure, unknown colossal presence driving the storm&amp;#34;}}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;超现实巴洛克绘画现实裂隙&#34;&gt;超现实巴洛克绘画现实裂隙
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/JohnnyWang8802/status/2048129335853559824&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/JohnnyWang8802&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@JohnnyWang8802&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/080.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/080_hu_f7cfa4116ae04487.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/080_hu_a2a534f0c6c47a7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;超现实巴洛克绘画现实裂隙&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A {argument name=&amp;#34;painting style&amp;#34; default=&amp;#34;baroque oil painting&amp;#34;} comes to life — its painted figures climbing out of the gilded frame into a {argument name=&amp;#34;setting&amp;#34; default=&amp;#34;modern white gallery&amp;#34;}, half their bodies still in flat 2D paint, half fully volumetric 3D humans, brushstrokes visible on their skin, the painting&amp;#39;s background leaking watercolor clouds into the gallery ceiling, museum visitors frozen in shock, hyper-detailed, {argument name=&amp;#34;artist influence&amp;#34; default=&amp;#34;René Magritte meets Pixar&amp;#34;}, reality fracturing at every boundary
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;城市小巷壁画艺术家&#34;&gt;城市小巷壁画艺术家
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Professor_134/status/2048066672398102896&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Professor_134&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Professor_134&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/081.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/081_hu_27c628d6f3b8d9ae.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/081_hu_237b894b0489f783.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;城市小巷壁画艺术家&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic, ultra-realistic night scene of a {argument name=&amp;#34;artist&amp;#34; default=&amp;#34;young male street artist&amp;#34;} painting a large-scale {argument name=&amp;#34;mural subject&amp;#34; default=&amp;#34;mural of a woman’s face&amp;#34;} in a {argument name=&amp;#34;setting&amp;#34; default=&amp;#34;narrow urban alley&amp;#34;}. The camera angle is slightly low, creating a dramatic, powerful perspective. The artist has medium-length, slightly messy dark hair and light stubble or a short beard, giving him a rugged, creative look.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;He wears a loose white t-shirt and casual jeans, slightly oversized, with a relaxed streetwear vibe. His posture is focused and engaged as he stands close to the wall, actively spray-painting.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;He is creating a massive, hyper-realistic mural of a woman’s face on a textured brick wall. The mural is incredibly detailed—smooth skin tones, realistic lighting, expressive eyes, and glossy lips—appearing almost like a photograph. Fine mist from the spray paint is visible in the air, catching light and adding motion and atmosphere.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The setting is a narrow urban alley at night, surrounded by tall buildings. The environment is gritty and textured—aged brick walls, paint splashes, subtle grime, and urban wear. Neon signs and distant streetlights cast vibrant reflections in teal, magenta, and blue tones, creating a cinematic, slightly cyberpunk mood.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting is dramatic and layered: cool ambient light fills the alley, while warmer neon highlights create contrast. A subtle rim light outlines the artist’s silhouette, separating him from the dark background. The mural is partially illuminated, acting as a strong focal point.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Atmosphere includes light fog or mist, enhancing depth and making the lighting glow softly. The scene feels immersive, quiet, and artistically intense.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Depth of field is moderately shallow: the artist and mural are in sharp focus, while the background fades into soft blur with bokeh highlights.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style: hyper-realistic, cinematic photography, street art aesthetic, ultra-detailed textures, high dynamic range, subtle film grain.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Camera details: 35mm or 50mm lens, f/1.8–f/2.8 aperture, low-light photography, slight low-angle shot, natural perspective.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Composition: vertical frame (4:5 or 9:16), subject slightly off-center, mural dominating the frame for strong visual storytelling.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Generate image using uploaded image as reference
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;rpg-地图转动漫事件场景&#34;&gt;RPG 地图转动漫事件场景
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ArtwlDesign/status/2048054726768709769&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ArtwlDesign&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ArtwlDesign&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/082.webp&#34;
	width=&#34;1200&#34;
	height=&#34;670&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/082_hu_5fa142826c4329ce.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/082_hu_6fbce33f5d6ee037.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;RPG 地图转动漫事件场景&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;179&#34;
		data-flex-basis=&#34;429px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Using the provided reference image, transform the top-down RPG town map into a polished anime-style event illustration from a human eye-level perspective. Keep the same village location and layout cues: the central stone well, the path network, the hedges, the wooden houses, and the narrow water canal on the left. Convert the 2 small sprite characters by the well into 2 full-size fantasy characters in the foreground: a silver-haired mage in a purple robe holding a staff, and a blonde elf in green-and-brown adventurer clothing, both leaning over and looking into the well. Add a cinematic JRPG feel with soft daylight, detailed painterly rendering, clean line art, and gentle depth of field. Preserve the sense that this scene is taking place in the same town square, but enrich it with natural perspective, more environmental detail, and 5 background villagers: 1 man cropped at the far left edge, 2 small figures standing on the center path in the distance, and 2 townspeople talking near the right-side buildings.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;柔和粉彩动漫少女全身像&#34;&gt;柔和粉彩动漫少女全身像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/hoshi122221/status/2048025730425196801&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/hoshi122221&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@hoshi122221&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/083.webp&#34;
	width=&#34;848&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/083_hu_26ed0e341e792fed.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/083_hu_9903bb8f94f62715.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;柔和粉彩动漫少女全身像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A full-body anime girl character design on a plain white background, centered and floating slightly, drawn in a soft minimalist pastel style with very thin gray linework and delicate flat colors. She has a petite youthful build and a cute, gentle silhouette, with special emphasis on a soft rounded face shape, smooth cheeks, and a softened jawline and chin. Her face is completely obscured by a blank skin-colored rectangular block with no facial features visible. She has short bob hair in {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;light ash brown&amp;#34;}, slightly tousled with wispy ends, long bangs covering part of the forehead, and a small ribbon hair tie on the right side in pale blue-gray. She wears 3 visible clothing pieces: an oversized pale blue cardigan with loose sleeves and front buttons, a cream-white slip dress with a scalloped neckline and a tiny button detail at the chest, and a frilled hem with a small ribbon near the right thigh. She is barefoot with slim pale legs, posed front-facing with both arms relaxed slightly outward, open hands, one leg straight and the other gently bent inward for a shy, weightless look. The illustration should feel airy, cute, understated, and clean, like a simple Japanese anime fashion sketch, with lots of negative space and no props, no shadows, and no background elements.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;都市奇幻共存路口&#34;&gt;都市奇幻共存路口
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Ray_CROWN0/status/2048024227664494775&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Ray_CROWN0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Ray_CROWN0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/084.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/084_hu_e9ef25b7a1fdff74.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/084_hu_70840d2c5970afb3.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;都市奇幻共存路口&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A highly detailed anime-style urban fantasy illustration set at a busy Tokyo-style scramble crossing on a bright clear day, viewed at street level with a wide cinematic composition. The city blends modern realism with mythic fantasy: dense high-rise buildings covered in giant billboards, a red broadcast tower in the middle distance, blue sky with fluffy clouds, and a crowded crosswalk full of pedestrians. In the foreground, show 7 prominent character figures: a silver-haired elf woman in a flowing white dress holding an iced drink and tote bag on the far left; a central schoolgirl with long dark hair, black animal ears, a navy school blazer, plaid skirt, blue ribbon, and large navy shoulder bag, lifting one hand to her head; a young man in a dark suit looking down at a smartphone; an androgynous white-haired angelic figure in an elegant white-and-gold ceremonial outfit with large white wings; a small blonde girl in an ornate pastel pink frilled dress beside the angel; a dark-haired woman in a black coat in right foreground profile; and a small blue-haired cat-eared child in a blue dress with a bow standing near a cave entrance on the right. In the midground crowd, include mixed humans and fantasy races walking together naturally. Add 4 clearly visible nonhuman or supernatural background beings: 1 dragon flying in the sky, 1 winged female angel descending above the street, 1 lizard-headed businessman in a suit near the angelic figure, and 1 tall red-skinned horned demon with crossed arms standing by the hillside path. On the right side, transition the city into a lush shrine hillside with large green trees, a red torii gate, stone steps, and a wooden signboard reading Japanese kanji. Below it, place a rocky cave-like tunnel entrance glowing blue, with a wooden sign over the entrance and several figures descending into an underground shared district lit by crystals. Show 6 major billboard/sign elements across the cityscape: a huge left billboard reading &amp;#34;Shinpi Sekai 神秘世界&amp;#34; with a cosmic planet image; a large central political poster with Japanese text and a raised fist icon; 2 rooftop signs reading &amp;#34;未来研究所&amp;#34; on separate buildings; a large right billboard with Japanese text about coexistence and silhouettes of different beings; and 1 vertical banner with Japanese text on a nearby building. Emphasize the theme of coexistence between ordinary modern city life and hidden fantasy societies. Crisp anime linework, polished light novel key visual rendering, rich textures, soft sunlight, subtle atmospheric perspective, vibrant but believable colors, intricate clothing details, and a sense of awe, everyday bustle, and worldbuilding depth.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;亲子误解信息图&#34;&gt;亲子误解信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sarinaashapi/status/2048307780864606708&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sarinaashapi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sarinaashapi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/085.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/085_hu_26d0e5c826e59305.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/085_hu_fa7e495c6ca472c4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;亲子误解信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;Japanese infographic&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;simple, easy-to-understand flat vector diagram, clean white background, rounded light-gray outer frame, minimal pastel color palette, presentation-slide design, clear hierarchy, lots of whitespace, modern sans-serif Japanese typography&amp;#34;,&amp;#34;canvas&amp;#34;:{&amp;#34;aspect_ratio&amp;#34;:&amp;#34;16:9&amp;#34;},&amp;#34;headline&amp;#34;:{&amp;#34;text&amp;#34;:&amp;#34;{argument name=\&amp;#34;headline text\&amp;#34; default=\&amp;#34;親子のすれ違いは、記録があるかないかで起こる\&amp;#34;}&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top center&amp;#34;,&amp;#34;size&amp;#34;:&amp;#34;large bold black&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;structure&amp;#34;:&amp;#34;2 side-by-side rounded panels beneath the headline&amp;#34;,&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;記録がない場合(ズレる)&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;left&amp;#34;,&amp;#34;count&amp;#34;:8,&amp;#34;header_color&amp;#34;:&amp;#34;muted blue-gray&amp;#34;,&amp;#34;panel_border&amp;#34;:&amp;#34;light gray&amp;#34;,&amp;#34;labels&amp;#34;:[&amp;#34;親の記憶&amp;#34;,&amp;#34;子どもの記憶&amp;#34;,&amp;#34;あのとき決まったよね&amp;#34;,&amp;#34;まだ考えてたのに&amp;#34;,&amp;#34;ズレが大きくなる&amp;#34;,&amp;#34;志望校がコロコロ変わる&amp;#34;,&amp;#34;理由が『なんとなく』&amp;#34;,&amp;#34;言ってることが違う&amp;#34;,&amp;#34;関係がギクシャク&amp;#34;,&amp;#34;現実を見てほしい&amp;#34;,&amp;#34;ちゃんと決めてほしい&amp;#34;,&amp;#34;口を出しすぎると関係が悪くなる&amp;#34;],&amp;#34;contents&amp;#34;:{&amp;#34;top_left&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;parent icon with thought bubble&amp;#34;,&amp;#34;icon_color&amp;#34;:&amp;#34;blue&amp;#34;,&amp;#34;caption&amp;#34;:&amp;#34;親の記憶&amp;#34;,&amp;#34;bubble_text&amp;#34;:&amp;#34;あのとき\n決まったよね&amp;#34;},&amp;#34;top_right&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;child icon with thought bubble&amp;#34;,&amp;#34;icon_color&amp;#34;:&amp;#34;pink&amp;#34;,&amp;#34;caption&amp;#34;:&amp;#34;子どもの記憶&amp;#34;,&amp;#34;bubble_text&amp;#34;:&amp;#34;まだ考えてたのに&amp;#34;},&amp;#34;center&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;horizontal double-headed arrow&amp;#34;,&amp;#34;color&amp;#34;:&amp;#34;blue-gray&amp;#34;},&amp;#34;bottom_center&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;downward arrow leading to burst shape&amp;#34;,&amp;#34;color&amp;#34;:&amp;#34;light gray&amp;#34;,&amp;#34;burst_text&amp;#34;:&amp;#34;ズレが\n大きくなる&amp;#34;},&amp;#34;bottom_left&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;rounded note box&amp;#34;,&amp;#34;bullet_count&amp;#34;:4,&amp;#34;bullets&amp;#34;:[&amp;#34;志望校がコロコロ変わる&amp;#34;,&amp;#34;理由が『なんとなく』&amp;#34;,&amp;#34;言ってることが違う&amp;#34;,&amp;#34;関係がギクシャク&amp;#34;]},&amp;#34;bottom_right&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;rounded note box&amp;#34;,&amp;#34;bullet_count&amp;#34;:3,&amp;#34;bullets&amp;#34;:[&amp;#34;現実を見てほしい&amp;#34;,&amp;#34;ちゃんと決めてほしい&amp;#34;,&amp;#34;口を出しすぎると関係が悪くなる&amp;#34;]}}},{&amp;#34;title&amp;#34;:&amp;#34;記録がある場合(ズレにくい)&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;right&amp;#34;,&amp;#34;count&amp;#34;:7,&amp;#34;header_color&amp;#34;:&amp;#34;mustard yellow&amp;#34;,&amp;#34;panel_border&amp;#34;:&amp;#34;light yellow&amp;#34;,&amp;#34;labels&amp;#34;:[&amp;#34;親の認識&amp;#34;,&amp;#34;子どもの認識&amp;#34;,&amp;#34;記録&amp;#34;],&amp;#34;contents&amp;#34;:{&amp;#34;top_left&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;parent icon with thought bubble containing document symbol&amp;#34;,&amp;#34;icon_color&amp;#34;:&amp;#34;blue&amp;#34;,&amp;#34;caption&amp;#34;:&amp;#34;親の認識&amp;#34;},&amp;#34;top_right&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;child icon with thought bubble containing document symbol&amp;#34;,&amp;#34;icon_color&amp;#34;:&amp;#34;pink&amp;#34;,&amp;#34;caption&amp;#34;:&amp;#34;子どもの認識&amp;#34;},&amp;#34;center&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;horizontal double-headed arrow&amp;#34;,&amp;#34;color&amp;#34;:&amp;#34;mustard yellow&amp;#34;},&amp;#34;bottom_center&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;circular record icon with document symbol&amp;#34;,&amp;#34;outline_color&amp;#34;:&amp;#34;mustard yellow&amp;#34;,&amp;#34;text&amp;#34;:&amp;#34;記録&amp;#34;},&amp;#34;bottom_left_connector&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;curved arrow from parent to record&amp;#34;,&amp;#34;color&amp;#34;:&amp;#34;blue&amp;#34;},&amp;#34;bottom_right_connector&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;curved arrow from child to record&amp;#34;,&amp;#34;color&amp;#34;:&amp;#34;pink&amp;#34;}}}],&amp;#34;spacing&amp;#34;:&amp;#34;balanced, symmetrical&amp;#34;},&amp;#34;visual_language&amp;#34;:{&amp;#34;icons&amp;#34;:&amp;#34;generic human bust icons and simple document line icons&amp;#34;,&amp;#34;emphasis&amp;#34;:&amp;#34;contrast the left panel&amp;#39;s misunderstanding with the right panel&amp;#39;s shared record&amp;#34;,&amp;#34;mood&amp;#34;:&amp;#34;educational, calm, practical&amp;#34;},&amp;#34;text_language&amp;#34;:&amp;#34;Japanese&amp;#34;,&amp;#34;render_quality&amp;#34;:&amp;#34;crisp vector edges, infographic suitable for social media educational posts&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;好洗澡日编辑风海报&#34;&gt;好洗澡日编辑风海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Kazuch75240438/status/2048205418238030327&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Kazuch75240438&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Kazuch75240438&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/086.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/086_hu_d9cf8eee6ceebcb6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/086_hu_86ce7cfe747e2670.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;好洗澡日编辑风海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a soft editorial lifestyle poster for {argument name=&amp;#34;event date&amp;#34; default=&amp;#34;4.26&amp;#34;} celebrating Japanese bath culture, designed like a refined magazine feature page in portrait orientation. The layout is split into two main columns with a pale cream and warm gray background, thin divider lines, elegant serif typography, and muted sage-green accents. At the top left, include the small heading “LIFESTYLE / FEATURE”, then a large date line reading “{argument name=&amp;#34;event date&amp;#34; default=&amp;#34;4.26&amp;#34;} EVENT”, followed by the large Japanese title “よい風呂の日” and the subtitle “特集” in sage green, with a small bathtub icon nearby. Beneath that, add the Japanese tagline “心も体も、ととのう時間。” and several short body-text blocks in Japanese explaining the meaning of Good Bath Day, including references to “4(よ)2(ふ)6(ろ)” and the benefits of bathing for body and mind. On the right side, show a bright, airy bathroom interior lit by soft natural morning light from a window, with beige and off-white tones, a wooden counter, folded white towels, a pump bottle, a sponge, woven baskets, and a few green plants. In front of the bathroom scene, place a youthful anime-style person with {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;soft medium brown&amp;#34;} tousled short hair, fair skin, and a relaxed expression, standing in a casual post-bath pose. The character wears a loose white T-shirt with a tiny dark square chest logo and light brown drawstring lounge pants, one hand in a pocket and the other holding a white towel up near the face and shoulder, conveying a fresh, just-bathed feeling. Near the character, include the handwritten-style Japanese side note “湯上がりの、リラックスタイム。” Add an oval badge on the lower right of the main image area with the English heading “GOOD BATH DAY” and Japanese explanatory text inside, plus a small bathtub icon. Below the main feature, include exactly 2 small inset images of the same character in the bathroom, each framed as rectangular mini-panels with narrow vertical Japanese captions beside them. At the bottom, create exactly 4 rounded rectangular information cards in a row: card 1 labeled “POINT 01” with the heading “お風呂の基本” and text about soaking in lukewarm water around 38–40°C; card 2 labeled “POINT 02” with the heading “日常でできること” and text about making bathing part of a routine instead of only showering; card 3 labeled “POINT 03” with the heading “楽しみ方・取り入れ方” and text about bath salts, scents, music, and lighting; card 4 labeled “まとめ” with concluding Japanese text about sustainable self-care. Decorate the cards with small illustrated elements such as leaves, a bathtub, a candle, a bottle, lavender sprigs, and a basket of folded towels. Along the very bottom, add a horizontal green tip strip labeled “今日からできる TIP” with exactly 3 checklist items: “就寝の1〜2時間前に入浴する”, “スマホは浴室に持ち込まない”, and “水分補給を忘れずに”. Place a final handwritten-style Japanese phrase at the lower right reading “自分をいたわる時間を。” The overall look should be clean, gentle, wellness-focused, feminine-neutral, and polished like a Japanese seasonal magazine infographic, with delicate anime illustration, soft shadows, subtle textures, and calm spa-like atmosphere.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;日式科幻换装流程板&#34;&gt;日式科幻换装流程板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/yy7482933910896/status/2048192904922075161&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/yy7482933910896&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@yy7482933910896&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/087.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/087_hu_b07edc1e2ab93dae.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/087_hu_7eadfa0842e62977.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;日式科幻换装流程板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;Japanese sci-fi armor dressing-process infographic&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;cinematic live-action tokusatsu-inspired promotional board, realistic industrial lighting, polished metal surfaces, sharp photographic detail&amp;#34;,&amp;#34;theme&amp;#34;:&amp;#34;manual pre-battle suit-up sequence for a female hero in a red, silver, black, and blue protector suit&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;character&amp;#34;:{&amp;#34;gender&amp;#34;:&amp;#34;female&amp;#34;,&amp;#34;age&amp;#34;:&amp;#34;young adult&amp;#34;,&amp;#34;identity&amp;#34;:&amp;#34;helmetless heroine during assembly, face intentionally obscured or anonymized in every unhelmeted panel&amp;#34;,&amp;#34;hair&amp;#34;:&amp;#34;dark brown to black hair tied in a high ponytail with bangs&amp;#34;,&amp;#34;undersuit&amp;#34;:&amp;#34;glossy black skintight inner suit with silver chest panel and white neck ring&amp;#34;,&amp;#34;armor&amp;#34;:&amp;#34;retro-futuristic protector armor with red shoulder and arm plates, silver breastplate and torso plating, circular blue chest core, red waist unit, white gloves, red forearm guards with yellow stripe accents&amp;#34;,&amp;#34;helmet&amp;#34;:&amp;#34;round red-and-silver helmet with black visor&amp;#34;},&amp;#34;environment&amp;#34;:{&amp;#34;location&amp;#34;:&amp;#34;high-tech industrial hangar or armor bay&amp;#34;,&amp;#34;background elements&amp;#34;:[&amp;#34;metal framework&amp;#34;,&amp;#34;robotic equipment&amp;#34;,&amp;#34;tool benches&amp;#34;,&amp;#34;armor racks&amp;#34;,&amp;#34;computer monitors&amp;#34;,&amp;#34;workshop lighting&amp;#34;,&amp;#34;bay corridor marked BAY-07 in final panel&amp;#34;]}},&amp;#34;layout&amp;#34;:{&amp;#34;header&amp;#34;:{&amp;#34;count&amp;#34;:2,&amp;#34;labels&amp;#34;:[&amp;#34;ソルジャンヌ・スーツ 手動装着プロセス&amp;#34;,&amp;#34;専用プロテクタースーツ『ソルジャンヌ』を、戦闘前に手動で装着する様子。各ユニットを確実に装着し、システムを起動する。&amp;#34;],&amp;#34;design&amp;#34;:&amp;#34;wide black-to-red gradient banner across top, large bold white Japanese text, diagonal red accent&amp;#34;},&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;1 インナースーツの確認&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top-left&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;各部のセンサーとコネクタをチェック。戦闘に備え、身体の状態を最終認する。&amp;#34;],&amp;#34;image&amp;#34;:&amp;#34;three-quarter view of the heroine in only the black glossy inner suit, looking down while checking or tightening a wrist connector&amp;#34;},{&amp;#34;title&amp;#34;:&amp;#34;2 胸部・肩部アーマーの装着&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top-center&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;胸部ユニットと肩部プロテクターを装着。コネクタを接続し、ロックを固定する。&amp;#34;],&amp;#34;image&amp;#34;:&amp;#34;mid shot with chest armor and red shoulder plates installed, heroine fastening the front torso area with both hands&amp;#34;},{&amp;#34;title&amp;#34;:&amp;#34;3 腰部ユニット・ベルトの固定&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top-right&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;ウエストユニットを装着し、各部のロックを確認。可動部の動作チェックを行う。&amp;#34;],&amp;#34;image&amp;#34;:&amp;#34;mid shot with torso armor completed, heroine tightening or checking the waist belt and side locks&amp;#34;},{&amp;#34;title&amp;#34;:&amp;#34;4 ヘルメットの準備&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom-left&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;ヘルメットのバイザーと内部システムをチェック。ヘッドセットとの同期を確認する。&amp;#34;],&amp;#34;image&amp;#34;:&amp;#34;heroine holding the red helmet in both hands at chest height, showing the glossy black visor&amp;#34;},{&amp;#34;title&amp;#34;:&amp;#34;5 ヘルメットの装着・システム起動&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom-center&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;ヘルメットを装着し、直上のコネクタをロック。全身のシステムが起動し、胸部コアが発光する。&amp;#34;],&amp;#34;image&amp;#34;:&amp;#34;heroine placing the helmet onto her head with both hands; blue chest core glowing brightly&amp;#34;},{&amp;#34;title&amp;#34;:&amp;#34;6 装着完了&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom-right&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;全システムの最終チェックを行い、戦闘モードへ。ソルジャンヌ、出撃準備完了!&amp;#34;],&amp;#34;image&amp;#34;:&amp;#34;full-body frontal hero pose in a futuristic corridor, fully suited with helmet on, arms relaxed at sides&amp;#34;}],&amp;#34;footer&amp;#34;:{&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;一つ一つの装着が、命を守り、力を引き出す。 ソルジャンヌの戦いは、ここから始まる。&amp;#34;],&amp;#34;design&amp;#34;:&amp;#34;dark red cinematic footer strip with centered white Japanese slogan&amp;#34;},&amp;#34;grid&amp;#34;:{&amp;#34;rows&amp;#34;:2,&amp;#34;columns&amp;#34;:3,&amp;#34;panel_count&amp;#34;:6,&amp;#34;panel_borders&amp;#34;:&amp;#34;thin white dividers&amp;#34;,&amp;#34;number_badges&amp;#34;:6}},&amp;#34;text_rendering&amp;#34;:{&amp;#34;language&amp;#34;:&amp;#34;Japanese&amp;#34;,&amp;#34;font&amp;#34;:&amp;#34;bold sans-serif headline with smaller sans-serif body text&amp;#34;,&amp;#34;colors&amp;#34;:&amp;#34;white text on black, red, and white info bars; red numbered squares with white numerals&amp;#34;},&amp;#34;composition&amp;#34;:&amp;#34;16:9 wide infographic board, six equal photo panels arranged in a 3-by-2 grid, each panel captioned below with a red numbered box from 1 to 6&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;moody workshop lighting with metallic reflections and red accent lights, realistic shadows, cinematic sci-fi atmosphere&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;梦幻涩谷泡泡少女&#34;&gt;梦幻涩谷泡泡少女
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/terunari/status/2048308270914490666&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/terunari&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@terunari&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/088.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/088_hu_ac2ca09b4bcbac9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/088_hu_d945777b617775df.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;梦幻涩谷泡泡少女&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dreamy anime-style full-body illustration of a fashionable young woman standing in the middle of the Shibuya scramble crossing in Tokyo on a bright clear day, with the iconic cylindrical SHIBUYA 109 building centered in the background and recognizable commercial billboards surrounding it, including signs resembling H&amp;amp;M, DHC, DMM TV, Big Echo, and other dense Japanese city advertisements. She is the single main subject, posed gracefully as if floating or weightless, standing on top of one giant iridescent translucent soap bubble beneath her skirt. Her face is softly obscured and de-emphasized, while her long dark violet-black hair flows dramatically in the wind, with soft bangs and a pink floral headband accessory with ribbon on one side. She wears a sweet feminine spring outfit in pastel pink: a long-sleeved frilled blouse under a sleeveless pink dress with a ribbon tie at the chest, a tan belt at the waist, layered ruffles at the hem, and subtle sakura flower embroidery near the lower skirt. Her expression and body language should feel gentle, elegant, whimsical, and slightly magical. One hand is raised with her index finger pointing upward toward a floating bubble that contains 1 smartphone; her other hand holds a loop handle attached to a large transparent iridescent shopping-bag-like bubble containing 3 visible items: 1 SHIBUYA 109 paper shopping bag, 1 pink shopping bag or package, and 1 small pink bunny-faced pouch. Also include 1 separate floating smartphone/tablet-like device outside the bubbles near the lower left side, and 1 floating bubble on the lower right containing 1 compact camera. Surround her with many soap bubbles of different sizes, all highly reflective with rainbow highlights and delicate transparency, creating a soft sparkling atmosphere. The city scene should be busy but slightly softened, with pedestrians in the far background, crosswalk stripes in the foreground, and warm sunlight filtering through the urban canyon. Use polished high-detail anime illustration rendering, luminous pastel colors, glossy reflections, soft bloom, a romantic spring palette, and a magical everyday Tokyo aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;暴风雨热带城市与屋顶飞机&#34;&gt;暴风雨热带城市与屋顶飞机
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Gerry/status/2048303505702629537&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Gerry&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Gerry&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/089.webp&#34;
	width=&#34;1199&#34;
	height=&#34;678&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/089_hu_8c85bf73daf63068.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/089_hu_e78d6f4e7fd96e6f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;暴风雨热带城市与屋顶飞机&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;176&#34;
		data-flex-basis=&#34;424px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic wide aerial view of a tropical coastal city at sunset during a violent storm, split dramatically between dark storm clouds on the left and blazing golden sunlight on the right. In the foreground, a small single-engine light airplane with a high wing and visible tail is parked or perched precariously on a flat rooftop, seen from behind and slightly above, centered near the bottom of the frame. To the left midair, 1 helicopter flies low over the city with its searchlight cast downward. In the sky, include 1 faint lightning bolt on the far left. The city below is dense with wet streets, reflective pavement, low-rise commercial buildings, and a few taller modern towers, including 1 prominent striped high-rise near the center. A glowing red circular neon sign is visible near the middle distance. On the right side, a calm bay or inlet curves through the city, lined with 1 row of tall palm trees along the waterfront road, and crossed by 1 long low bridge in the distance. The water and streets glisten from recent rain, reflecting the orange sunlight breaking through the clouds. Mood is tense, dramatic, and slightly surreal, like a movie still from an urban disaster thriller. Photorealistic, ultra-detailed, high dynamic range lighting, volumetric sun rays, storm atmosphere, wet surfaces, rich contrast, deep shadows, golden highlights, wide-angle lens, epic composition.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;户外运动服饰网格广告&#34;&gt;户外运动服饰网格广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07/status/2049081198211736062&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SPEEDAI07&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/090.webp&#34;
	width=&#34;896&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/090_hu_f1558c734cabdcd9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/090_hu_b0414569d42985bc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;户外运动服饰网格广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dynamic 2×2 grid collage of modern outdoor sportswear advertising posters, each panel representing a different adventure lifestyle brand. High-energy, editorial-style composition with bold typography and textured graphic design.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Top-left panel:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Athletic male model in a bright blue insulated winter jacket, black snow pants, gloves, and sunglasses, stepping forward in a snowy environment. Snow particles flying, dramatic motion. Background features rough blue paint brush strokes. Bold distressed typography reads: “NEVER STOP EXPLORING.” Additional small text: “Built for extremes.” High contrast, rugged winter exploration theme.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Top-right panel:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Fit male hiker climbing rocky terrain, wearing an olive green shirt, black trekking pants, and a large black backpack with orange straps. Dust and debris kicking up from the ground. Background includes orange paint strokes and sketched mountain graphics. Bold text: “BUILT FOR HERE – INDIA TESTED.” Handwritten Hindi accents and arrows. Warm earthy tones.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Bottom-left panel:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Calm outdoor scene with a male model sitting on a rock, wearing a green jacket, beanie, sunglasses, and hiking shoes. Minimal scenic mountain illustration in the background with soft green tones. Typography reads: “ESCAPE THE NOISE – JUST GO OUTSIDE.” Clean, relaxed, nature-focused aesthetic with subtle graphic elements.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Bottom-right panel:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Energetic female runner in motion wearing a purple athletic t-shirt, black shorts, and running shoes. Bright, playful background with purple and yellow paint splashes, doodles, arrows, and sun illustration. Bold typography: “READY FOR EVERYONE – START YOUR JOURNEY.” Youthful, vibrant fitness energy.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Overall style:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-resolution, photorealistic sportswear campaign
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Bold brushstroke textures and grunge overlays
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mixed typography: distressed, handwritten, and modern sans-serif
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Strong color blocking per panel (blue, orange, green, purple)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Dynamic poses conveying motion, strength, and adventure
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Clean grid layout with balanced spacing
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Commercial advertising / brand campaign aesthetic (Nike, Decathlon style)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: Professional, cinematic lighting with sharp detail and contrast
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mood: Energetic, adventurous, motivational
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Aspect ratio: 1:1 (square collage)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;地形字母卫星图面板&#34;&gt;地形字母卫星图面板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/madpencil_/status/2049080259476349218&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/madpencil_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@madpencil_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/091.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/091_hu_62b8746b955a3fad.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/091_hu_bbe920a4698343b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;地形字母卫星图面板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ultra-realistic satellite view from space, a clean modern editorial layout of 9 vertical panels arranged side-by-side on a white background, together forming the word &amp;#34;MADPENCIL&amp;#34;, each panel containing one letter created entirely from natural Earth topography, no artificial text overlays:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 1 (M): rugged mountain ranges and deep valleys forming a sharp, angular &amp;#34;M&amp;#34;, rocky textures, high elevation shadows
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 2 (A): winding river cutting through dense green forest forming an organic &amp;#34;A&amp;#34;, strong contrast between water and vegetation
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 3 (D): desert dunes and wind-sculpted sand patterns shaping a smooth &amp;#34;D&amp;#34;, warm tones, soft gradients
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 4 (P): agricultural farmland grids and patchwork fields forming a structured &amp;#34;P&amp;#34;, geometric patterns clearly visible
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 5 (E): glacier and ice formations carving a crisp &amp;#34;E&amp;#34;, bright whites and icy blues, fractured textures
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 6 (N): braided river system across floodplains forming &amp;#34;N&amp;#34;, branching channels with natural flow lines
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 7 (C): coastal shoreline and ocean edge shaping a curved &amp;#34;C&amp;#34;, waves and sediment gradients visible
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 8 (I): narrow canyon or straight river cutting through terrain forming a minimal &amp;#34;I&amp;#34;, strong vertical emphasis
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 9 (L): volcanic terrain with lava flows forming an &amp;#34;L&amp;#34;, dark rock with glowing red/orange lava accents
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;top-down satellite perspective, NASA Earth observation style, hyper-detailed textures, realistic geography, consistent scale and lighting across all panels, minimal clouds, high contrast, sharp focus, subtle atmospheric haze, natural color grading, ultra high resolution 8K, clean spacing between panels, modern gallery-style composition, visually cohesive but each panel distinctly different biome, letters clearly readable yet organically integrated into terrain
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;冰咖啡产品信息图&#34;&gt;冰咖啡产品信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X/status/2049082049995362785&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Strength04_X&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/092.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/092_hu_f430dbb0b53aa34d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/092_hu_bfc913c0d69a3a17.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;冰咖啡产品信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-end café-style product photograph of a transparent glass filled with iced coffee, centered against a soft beige and cream seamless studio background. The drink shows a rich dark coffee base blending with creamy milk swirls, creating a smooth gradient effect. Several clear ice cubes are visible with realistic transparency and light refraction. The glass has subtle condensation droplets, adding freshness. Soft natural studio lighting creates delicate highlights and a clean shadow beneath the glass. Ultra-sharp focus, premium beverage advertisement style, DSLR macro photography, hyper realistic, 8K.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PROMPT 2 - Create a hyper-realistic exploded vertical infographic composition of an iced coffee.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Top → Bottom structure:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Foam Layer (light creamy foam with soft airy texture)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Coffee Liquid (rich dark espresso layer with smooth gradient)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Ice Cubes (transparent cubes with sharp edges and reflections)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Milk Layer (soft creamy white layer with smooth blend effect)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Glass Base (clear minimal glass structure)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;All elements must be perfectly centered, evenly spaced, and aligned vertically. Use a soft beige seamless background with clean café-style lighting and subtle realistic shadows beneath each floating element. The composition should feel like a premium beverage ad combined with a clean infographic layout.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Add clean minimalist text labels with thin pointer lines using these exact labels:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;“Foam”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;“Coffee”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;“Ice”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;“Milk”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;“Glass”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ultra-realistic liquid detail, sharp reflections, premium commercial photography, 8K.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;时尚连衣裙系列信息图&#34;&gt;时尚连衣裙系列信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/cellinlab/status/2049073530738754042&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/cellinlab&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@cellinlab&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/093.webp&#34;
	width=&#34;819&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/093_hu_47c6ab77e8e2fa59.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/093_hu_9d02d9742ac6b6c1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;时尚连衣裙系列信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;79&#34;
		data-flex-basis=&#34;191px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;image_type&amp;#34;: &amp;#34;Commercial Fashion Infographic&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;subject&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;model&amp;#34;: &amp;#34;Young Asian woman with elegant features and dark hair tied in a loose bun&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;attire&amp;#34;: &amp;#34;Satin midi dress with spaghetti straps and a draped cowl neckline&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;fit&amp;#34;: &amp;#34;Bodycon / slim fit with side ruching and a subtle leg slit&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout_structure&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;composition&amp;#34;: &amp;#34;Multi-panel editorial layout&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;header&amp;#34;: &amp;#34;Bold serif typography reading &amp;#39;DRESS COLLECTION&amp;#39;&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;main_feature&amp;#34;: &amp;#34;Large centered portrait of the model, a young Asian woman, wearing a wine-red satin dress&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;secondary_panels&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;Dress Features grid with minimalist icons&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;Dress Guide sidebar detailing neckline, sleeve, and length&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;Color Collection row showing the dress in Black, Emerald Green, Navy, Champagne, and Royal Blue&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;Dress Style Guide footer featuring the model in various atmospheric evening settings&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;aesthetic_style&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;color_palette&amp;#34;: &amp;#34;Deep jewel tones (Wine Red, Emerald, Navy, Royal Blue) contrasted with Champagne and Black against a warm cream or beige background&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;lighting&amp;#34;: &amp;#34;Soft studio lighting with elegant highlights on the satin fabric texture&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;vibe&amp;#34;: &amp;#34;Luxurious, timeless, and sophisticated commercial advertising&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;typography&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;primary&amp;#34;: &amp;#34;Classic Serif for titles&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;secondary&amp;#34;: &amp;#34;Clean Sans-Serif for body text and technical details&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;单色时尚封面&#34;&gt;单色时尚封面
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sha_zdiii/status/2049088961008848905&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sha_zdiii&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sha_zdiii&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/094.webp&#34;
	width=&#34;670&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/094_hu_f5db21fbfc89aec1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/094_hu_7eb4175a44dfb464.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;单色时尚封面&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;55&#34;
		data-flex-basis=&#34;134px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ultra-realistic high-fashion magazine cover, black and white cinematic portrait of a confident young female model, slightly messy wet-look hair, sharp jawline, intense gaze, natural glossy lips, wearing a premium black leather trench coat over a minimal outfit.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The model is posing slightly tilted forward with attitude, hands adjusting the coat, accessorized with multiple rings, ear piercings, and layered chain necklaces.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting is dramatic studio lighting with soft shadows, high contrast, editorial Vogue-style aesthetic, ultra-detailed skin texture, 8K resolution, sharp focus.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Background is minimal gradient grey with soft light streaks for depth.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Magazine cover layout included:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Large bold serif title at top: “VOID ELITE”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Subtitle small: “Edition 07 / 2026”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Left text: “NOT BUILT TO FOLLOW — BUILT TO DOMINATE”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Bottom left: “HIGH-FASHION STREET LUXURY”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Right vertical text: “UNTOUCHABLE PRESENCE”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Bottom right: “SILENCE IS POWER”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Add a small holographic glitch-style label over the eyes with text “ICON”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style: luxury fashion editorial, Vogue, Harper’s Bazaar, monochrome aesthetic, modern typography, clean layout, ultra premium branding
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--ar 2:3 --style raw --quality 2 --sharp focus --photorealistic
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;快餐角色海报&#34;&gt;快餐角色海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/LoovaAI/status/2049085173015425354&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/LoovaAI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@LoovaAI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/095.webp&#34;
	width=&#34;880&#34;
	height=&#34;1168&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/095_hu_4c7f3d39e545b335.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/095_hu_7ced76a3701ab5be.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;快餐角色海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use the character in image 1 as the main subject. Create a vertical poster ad in American fast food diner style. Low angle, wide lens. Red / yellow / white palette with ketchup splashes, melting cheese graphics, comic burst shapes, retro diner typography, and bold fast food poster collage aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;跨越两个世纪的纽约电影感海报&#34;&gt;跨越两个世纪的纽约电影感海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010/status/2049460661109879022&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Shinning1010&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/096.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/096_hu_712435186164880e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/096_hu_40c0d17ec5a1c06c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;跨越两个世纪的纽约电影感海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a cinematic 3:4 vertical poster of New York City that feels truly epic and unconventional, showing the passage from the 20th century to the 21st century in one seamless image. Place a lone figure at the center of the composition, standing in the middle of the street and looking forward as if witnessing New York across time. The left side should depict 20th-century New York with warm sepia atmosphere, vintage taxis, old newsstands, retro lamps, and landmarks like the Chrysler Building and Empire State Building. The right side should depict 21st-century New York with glass skyscrapers, One World Trade Center, digital billboards, and modern urban energy. Make the transition natural rather than split-screen, with coherent perspective, wet reflective pavement, realistic textures, atmospheric depth, and no text.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;蓝眼泪鸡尾酒教程信息图海报&#34;&gt;蓝眼泪鸡尾酒教程信息图海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/cellinlab/status/2049460927121244510&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/cellinlab&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@cellinlab&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/097.webp&#34;
	width=&#34;1067&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/097_hu_9c4415e7dcaa1d2c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/097_hu_a9eaadf9e22e347a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;蓝眼泪鸡尾酒教程信息图海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;88&#34;
		data-flex-basis=&#34;213px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;试着帮我生成调制一杯蓝色眼泪鸡尾酒（配料流程你自己发挥想象，但是要写清楚确保可复现）的流程教学图和概念设计宣传图，轻奢酒咖海报风格，横版。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ascii-登革热信息图&#34;&gt;ASCII 登革热信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mapasbr/status/2049458767520051448&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mapasbr&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mapasbr&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/098.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/098_hu_17f07d5693cbf7c6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/098_hu_8e33f45aa7a814cd.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;ASCII 登革热信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;infográfico ASCII DENGUE
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;カテゴリナビ: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;総目次&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;EC メインビジュアル&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;広告クリエイティブ&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;ポートレート写真&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;ポスターイラスト&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;キャラクターデザイン&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI とソーシャルメディア&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;元リポジトリリンク&#34;&gt;元リポジトリリンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;プロジェクトホーム&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/poster.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元カテゴリファイル&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT-Image 2 プロンプトライブラリ：広告クリエイティブ事例</title>
        <link>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/</guid>
        <description>&lt;p&gt;このページでは &lt;code&gt;広告クリエイティブ&lt;/code&gt; カテゴリの 19 件の事例を収録しています。各項目には元事例リンク、作者、生成画像、完全なプロンプトを残しています。&lt;/p&gt;
&lt;p&gt;カテゴリナビ: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;総目次&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;EC メインビジュアル&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;広告クリエイティブ&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;ポートレート写真&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;ポスターイラスト&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;キャラクターデザイン&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI とソーシャルメディア&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;広告クリエイティブ&#34;&gt;広告クリエイティブ
&lt;/h2&gt;&lt;h3 id=&#34;四宫格日式数字广告横幅&#34;&gt;四宫格日式数字广告横幅
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/makaneko_AI/status/2045764016858087720&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/makaneko_AI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@makaneko_AI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/000.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/000_hu_b4b22c98e45c267c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/000_hu_b3b79859672a67c1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;四宫格日式数字广告横幅&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;85
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;86
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;87
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;88
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;89
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;90
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;91
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;92
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;93
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;94
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;95
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;96
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;2x2 grid of Japanese digital advertisement banners&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;structure&amp;#34;: &amp;#34;4 equal quadrants&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;quadrants&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;top-left&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;theme&amp;#34;: &amp;#34;Travel&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;subject&amp;#34;: &amp;#34;A couple holding hands on a white sand beach, looking out at turquoise ocean water under a bright blue sky.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;red hibiscus flower in bottom left corner&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;text_labels&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;今年こそ、解き放て。&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;{argument name=\&amp;#34;travel destination\&amp;#34; default=\&amp;#34;沖縄旅行\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;3日間の癒やし旅&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;航空券+ホテル&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;39,800円〜&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;絶景、グルメ、体験 ぜんぶ叶う!&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;icons&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;count&amp;#34;: 3,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;descriptions&amp;#34;: [&amp;#34;airplane&amp;#34;, &amp;#34;hotel building&amp;#34;, &amp;#34;car&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;top-right&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;theme&amp;#34;: &amp;#34;Skincare&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;subject&amp;#34;: &amp;#34;Close-up portrait of a young woman with glowing, dewy skin, eyes closed, gently touching her cheeks.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;soft pink gradient background&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;dynamic water splash effects&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;pink cosmetic jar labeled &amp;#39;{argument name=\&amp;#34;skincare product name\&amp;#34; default=\&amp;#34;LUMIÈRE\&amp;#34;} Brightening Gel&amp;#39;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;text_labels&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;毛穴・くすみ卒業!&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;透明感あふれる&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;水光肌へ&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;新感覚スキンケア&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;初回限定 78%OFF&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;{argument name=\&amp;#34;discount price\&amp;#34; default=\&amp;#34;1,980円\&amp;#34;}&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;badges&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;count&amp;#34;: 3,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;style&amp;#34;: &amp;#34;gold circular&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;labels&amp;#34;: [&amp;#34;毛穴ケア&amp;#34;, &amp;#34;高保湿&amp;#34;, &amp;#34;ハリ・ツヤ&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;bottom-left&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;theme&amp;#34;: &amp;#34;Gourmet Food&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;subject&amp;#34;: &amp;#34;Thick, sliced, medium-rare steak sizzling on a dark grill plate.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;garlic chips&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;rosemary sprig&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;dark background with smoke and glowing embers&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;text_labels&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;とろける旨さ!&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;{argument name=\&amp;#34;food item\&amp;#34; default=\&amp;#34;黒毛和牛\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;贅沢ステーキ&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;期間限定&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;特別価格&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;通常価格 8,980円&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;4,980円&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;badges&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;count&amp;#34;: 1,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;style&amp;#34;: &amp;#34;red circular&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;labels&amp;#34;: [&amp;#34;A4 A5等級&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;bottom-right&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;theme&amp;#34;: &amp;#34;Online Education&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;subject&amp;#34;: &amp;#34;Young man in a blue shirt studying at a desk, writing in a notebook next to an open laptop.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;bright indoor lighting&amp;#34;, &amp;#34;desk environment&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;text_labels&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;スキマ時間で&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;{argument name=\&amp;#34;education goal\&amp;#34; default=\&amp;#34;最短合格!\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;オンライン資格講座&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;スマホで完結&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;効率学習で差がつく!&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;今だけ! 受講料 20%OFF&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;badges&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;count&amp;#34;: 1,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;style&amp;#34;: &amp;#34;blue circular&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;labels&amp;#34;: [&amp;#34;受講者数 10万人 突破!&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;icons&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;count&amp;#34;: 2,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;descriptions&amp;#34;: [&amp;#34;smartphone&amp;#34;, &amp;#34;open book&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;动漫角色品牌识别与周边展示板&#34;&gt;动漫角色品牌识别与周边展示板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/chi_vc_/status/2046061073720369228&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/chi_vc_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@chi_vc_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/001.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/001_hu_6a8012585d54d59a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/001_hu_e92905938aad48d5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫角色品牌识别与周边展示板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;brand identity and merchandise design board&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;theme&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;color_palette&amp;#34;: &amp;#34;{argument name=\&amp;#34;theme color\&amp;#34; default=\&amp;#34;pastel pink\&amp;#34;} and white&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;motif&amp;#34;: &amp;#34;{argument name=\&amp;#34;motif\&amp;#34; default=\&amp;#34;cherry blossoms\&amp;#34;} and pink hearts&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;character&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;description&amp;#34;: &amp;#34;anime girl with short brown bob hair, pink eyes, wearing a white hoodie, gentle smile&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;branding&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;main_logo&amp;#34;: &amp;#34;{argument name=\&amp;#34;character name\&amp;#34; default=\&amp;#34;癒音ちー\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;sub_logo&amp;#34;: &amp;#34;{argument name=\&amp;#34;character subtext\&amp;#34; default=\&amp;#34;ゆおんちー\&amp;#34;}&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;sections&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;type&amp;#34;: &amp;#34;header banner&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;top&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;large main logo&amp;#34;, &amp;#34;sub logo&amp;#34;, &amp;#34;cherry blossom graphics&amp;#34;, &amp;#34;character portrait on the right&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;type&amp;#34;: &amp;#34;product packaging&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;middle left&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;1 square box with heart-shaped transparent window showing pink heart candies&amp;#34;, &amp;#34;character illustration on box&amp;#34;, &amp;#34;2 individual candy wrappers&amp;#34;, &amp;#34;5 scattered heart candies&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;type&amp;#34;: &amp;#34;promotional poster&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;middle right&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;character portrait&amp;#34;, &amp;#34;heart-shaped candy bowl&amp;#34;, &amp;#34;main logo&amp;#34;, &amp;#34;text &amp;#39;4.26 NEW OPEN&amp;#39;&amp;#34;, &amp;#34;text &amp;#39;{argument name=\&amp;#34;social handle\&amp;#34; default=\&amp;#34;@yuonchii\&amp;#34;}&amp;#39;&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;type&amp;#34;: &amp;#34;horizontal web banner&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;lower middle&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;main logo&amp;#34;, &amp;#34;cherry blossoms&amp;#34;, &amp;#34;character portrait on the right&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;type&amp;#34;: &amp;#34;social media profile mockup&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;bottom left&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;header image with logo&amp;#34;, &amp;#34;1 circular profile picture&amp;#34;, &amp;#34;handle &amp;#39;{argument name=\&amp;#34;social handle\&amp;#34; default=\&amp;#34;@yuonchii\&amp;#34;}&amp;#39;&amp;#34;, &amp;#34;1 follow button&amp;#34;, &amp;#34;mock bio text&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;type&amp;#34;: &amp;#34;merchandise collection&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;bottom right&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;count&amp;#34;: 9,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;items&amp;#34;: [&amp;#34;1 white t-shirt with logo&amp;#34;, &amp;#34;1 white mug with character&amp;#34;, &amp;#34;4 round pin badges&amp;#34;, &amp;#34;1 acrylic keychain&amp;#34;, &amp;#34;2 candy packets&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;深色模式营销案例-ui&#34;&gt;深色模式营销案例 UI
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/IndieDevHailey/status/2044974254769463312&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/IndieDevHailey&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@IndieDevHailey&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/002.webp&#34;
	width=&#34;569&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/002_hu_7b2c77f5b4960ac5.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/002_hu_6146746c8fe8f5d5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;深色模式营销案例 UI&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;47&#34;
		data-flex-basis=&#34;113px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;68
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;UI/UX landing page mockup&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;theme&amp;#34;: &amp;#34;dark mode, sleek modern aesthetic, glassmorphism, {argument name=\&amp;#34;primary accent color\&amp;#34; default=\&amp;#34;neon purple and blue\&amp;#34;} glowing accents&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;header&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;logo&amp;#34;: &amp;#34;{argument name=\&amp;#34;brand name\&amp;#34; default=\&amp;#34;goViralX\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;top_right_tag&amp;#34;: &amp;#34;VIRAL CAMPAIGN CASE STUDY&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;sections&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;name&amp;#34;: &amp;#34;Hero&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;headline&amp;#34;: &amp;#34;{argument name=\&amp;#34;hero headline\&amp;#34; default=\&amp;#34;How We Created 10M+ Viral Impact\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;subheadline&amp;#34;: &amp;#34;3天引爆全网, 助力品牌实现指数级增长&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;stats_row&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;count&amp;#34;: 4,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;labels&amp;#34;: [&amp;#34;总播放量&amp;#34;, &amp;#34;互动率&amp;#34;, &amp;#34;转化咨询&amp;#34;, &amp;#34;执行周期&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;values&amp;#34;: [&amp;#34;{argument name=\&amp;#34;main statistic\&amp;#34; default=\&amp;#34;10,240,000+\&amp;#34;}&amp;#34;, &amp;#34;18.7%&amp;#34;, &amp;#34;3,200+&amp;#34;, &amp;#34;72小时&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;visual&amp;#34;: &amp;#34;cinematic shot of a person in a hoodie looking at glowing digital screens and graphs, large play button overlay&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;name&amp;#34;: &amp;#34;Strategy&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;Our 3-Day Execution Strategy&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;layout_type&amp;#34;: &amp;#34;vertical timeline&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;steps_count&amp;#34;: 3,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements_per_step&amp;#34;: [&amp;#34;timeline node&amp;#34;, &amp;#34;title&amp;#34;, &amp;#34;bullet points&amp;#34;, &amp;#34;video thumbnail with play button&amp;#34;, &amp;#34;description box&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;name&amp;#34;: &amp;#34;Performance&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;Data-Driven Performance&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;left_column&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;stat_cards_count&amp;#34;: 4,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;values&amp;#34;: [&amp;#34;10M+&amp;#34;, &amp;#34;43%&amp;#34;, &amp;#34;28,000+&amp;#34;, &amp;#34;3,200+&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;right_column&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;charts_count&amp;#34;: 2,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;chart_1&amp;#34;: &amp;#34;line graph showing 7-day growth peaking at Day 3&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;chart_2&amp;#34;: &amp;#34;horizontal segmented bar chart showing platform distribution (TikTok 52%, Instagram 24%, X 15%, YouTube 9%)&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;name&amp;#34;: &amp;#34;Keys to Success&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;The 3 Keys to Viral Success&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;cards_count&amp;#34;: 3,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;card_elements&amp;#34;: [&amp;#34;glowing icon (fire, target, antenna)&amp;#34;, &amp;#34;title&amp;#34;, &amp;#34;description&amp;#34;, &amp;#34;VIEW DETAIL link&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;name&amp;#34;: &amp;#34;Social Proof&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;TRUSTED BY CREATORS &amp;amp; BRANDS&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;left_column&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;logos_count&amp;#34;: 8,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;grid&amp;#34;: &amp;#34;2x4&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;brands&amp;#34;: [&amp;#34;SHEIN&amp;#34;, &amp;#34;SHOPLINE&amp;#34;, &amp;#34;Blueglass&amp;#34;, &amp;#34;instacart&amp;#34;, &amp;#34;lemon8&amp;#34;, &amp;#34;mi&amp;#34;, &amp;#34;CIDER&amp;#34;, &amp;#34;bellroy&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;right_column&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;testimonial_cards_count&amp;#34;: 2,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;elements&amp;#34;: [&amp;#34;quote&amp;#34;, &amp;#34;author title (SaaS Founder, Growth Manager)&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;name&amp;#34;: &amp;#34;Call to Action&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;READY TO GO VIRAL?&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;interactive_elements&amp;#34;: [&amp;#34;text input field&amp;#34;, &amp;#34;glowing button with text &amp;#39;{argument name=\&amp;#34;call to action text\&amp;#34; default=\&amp;#34;获取专属增长方案 -&amp;gt;\&amp;#34;}&amp;#39;&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;visual&amp;#34;: &amp;#34;3D render of a rocket ship taking off with purple and blue flames&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;18-页吉祥物品牌识别文档&#34;&gt;18 页吉祥物品牌识别文档
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Colin_Leeee/status/2044802802149650631&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Colin_Leeee&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Colin_Leeee&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/003.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/003_hu_38654e96cad54ea8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/003_hu_b4c26ee66844dace.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;18 页吉祥物品牌识别文档&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;85
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;86
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;18-panel brand identity and character design document&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;brand&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;name&amp;#34;: &amp;#34;{argument name=\&amp;#34;brand name\&amp;#34; default=\&amp;#34;沐阳 MUYANG TEA\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;industry&amp;#34;: &amp;#34;{argument name=\&amp;#34;industry\&amp;#34; default=\&amp;#34;tea shop\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;colors&amp;#34;: [&amp;#34;{argument name=\&amp;#34;primary color\&amp;#34; default=\&amp;#34;yellow\&amp;#34;}&amp;#34;, &amp;#34;{argument name=\&amp;#34;secondary color\&amp;#34; default=\&amp;#34;green\&amp;#34;}&amp;#34;, &amp;#34;white&amp;#34;, &amp;#34;brown&amp;#34;, &amp;#34;dark green&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;subject&amp;#34;: &amp;#34;{argument name=\&amp;#34;character description\&amp;#34; default=\&amp;#34;3D rendered cute Shiba Inu mascot wearing a green apron\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;grid&amp;#34;: &amp;#34;3 columns by 6 rows&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;sections&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;01 品牌DNA分析 / BRAND DNA ANALYSIS&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;logo&amp;#34;, &amp;#34;5 color swatches&amp;#34;, &amp;#34;6 icons&amp;#34;, &amp;#34;target audience charts&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;02 概念构思 / CONCEPT MOODBOARD&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;5 photo references&amp;#34;, &amp;#34;4 mood icons&amp;#34;, &amp;#34;design equation&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;03 形态研究 / FORM STUDY&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;4 logo anatomy icons&amp;#34;, &amp;#34;4 evolution steps&amp;#34;, &amp;#34;4 silhouettes&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;04 概念探索 / CONCEPT EXPLORATION&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;12 line-art character sketches&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;05 精细线稿 / REFINED LINE ART&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;3 rows of front and side line art with proportion guides&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;06 细节精修 / DETAIL REFINEMENT&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;2 full-body renders with labels&amp;#34;, &amp;#34;4 circular close-ups&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;07 表情设定 / EXPRESSION SHEET&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;11 3D rendered head expressions&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;08 姿势库 / POSE LIBRARY&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;9 full-body 3D rendered poses&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;09 转身视图 / TURNAROUND VIEW&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;5 full-body 3D renders&amp;#34;, &amp;#34;5 matching line-art views&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;10 色彩开发 / COLOR DEVELOPMENT&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;5 rows of 5-color palettes&amp;#34;, &amp;#34;color psychology text&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;11 材质规格 / MATERIAL SPECIFICATION&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;5 texture swatches&amp;#34;, &amp;#34;property sliders&amp;#34;, &amp;#34;4 manufacturing icons&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;12 色彩应用 / COLOR APPLICATION&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;4 color variant renders&amp;#34;, &amp;#34;2 light/dark renders&amp;#34;, &amp;#34;4 contrast rating circles&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;13 构造指南 / CONSTRUCTION GUIDE&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;2 line-art diagrams for geometry and grid&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;14 设计系统规则 / DESIGN SYSTEM RULES&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;minimum size icons&amp;#34;, &amp;#34;clear space diagram&amp;#34;, &amp;#34;4 usage examples&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;15 资产变体 / ASSET VARIANTS&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;3 size variants&amp;#34;, &amp;#34;3 line-art variants&amp;#34;, &amp;#34;3 simplified flat heads&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;16 数字应用 / DIGITAL APPLICATIONS&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;1 app icon&amp;#34;, &amp;#34;2 social avatars&amp;#34;, &amp;#34;UI elements&amp;#34;, &amp;#34;3-step animation cycle&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;17 实物应用 / PHYSICAL APPLICATIONS&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;plush toy mockup&amp;#34;, &amp;#34;packaging mockup&amp;#34;, &amp;#34;merchandise mockup&amp;#34;, &amp;#34;storefront mockup&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;18 最终主视觉 / FINAL RENDERING&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;large high-res 3D render of mascot holding tea&amp;#34;, &amp;#34;logo&amp;#34;, &amp;#34;file format list&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;日式中餐外卖传单&#34;&gt;日式中餐外卖传单
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/xc5_/status/2048310696686014935&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/xc5_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@xc5_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/004.webp&#34;
	width=&#34;896&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/004_hu_1975f05f33c39ac1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/004_hu_52b41b2a6d938981.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;日式中餐外卖传单&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A Japanese neighborhood Chinese restaurant delivery flyer for mailbox posting (3:4 aspect ratio). Designed to look like a double-sided B5 print.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Flyer characteristics (following the grammar of real delivery flyers):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Flashy red and yellow color scheme.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Large text at the top: &amp;#34;Delivery Available! {argument name=&amp;#34;shop name&amp;#34; default=&amp;#34;Mona-Hanten&amp;#34;}&amp;#34; (shadowed Gothic font).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- An illustration of a {argument name=&amp;#34;character&amp;#34; default=&amp;#34;Chinese girl in a red cheongsam with a brown short bob&amp;#34;} holding ramen and saying &amp;#34;Welcome!&amp;#34; in a speech bubble.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- A menu photo grid (4x3) featuring various dishes: different types of ramen, fried rice, gyoza, sweet and sour pork, shrimp in chili sauce, mapo tofu, liver and leek stir-fry, tenshinhan, twice-cooked pork, spring rolls, annin tofu, and fried rice sets.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Names and prices for each dish.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- A large yellow banner saying &amp;#34;Free delivery on all menu items over ¥1,000!&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- &amp;#34;Order by phone! ☎ 072-XX-XXXX&amp;#34; emphasized with a red circle.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Business hours &amp;#34;11:00-22:00 (Closed on Tuesdays)&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Delivery area map (simple schematic map).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Coupon (perforated line for clipping): &amp;#34;One free plate of gyoza with this flyer!&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Texture of cheap paper printing. Includes fold marks. Precision that could be mistaken for a real Japanese delivery flyer.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;粉彩水母房间商品海报&#34;&gt;粉彩水母房间商品海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Ayu_AI_0912/status/2048309565817766139&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Ayu_AI_0912&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Ayu_AI_0912&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/005.webp&#34;
	width=&#34;898&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/005_hu_f904a82df3a72a81.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/005_hu_b36028bbd48c5f54.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;粉彩水母房间商品海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;pastel lifestyle poster / character room-goods feature sheet&amp;#34;,&amp;#34;theme&amp;#34;:&amp;#34;soft dreamy lavender jellyfish aesthetic&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;Japanese cute editorial graphic, airy white background, pastel lilac palette, delicate handwritten notes, sparkles and tiny doodles, soft product photography mixed with magazine layout&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;character&amp;#34;:{&amp;#34;name&amp;#34;:&amp;#34;{argument name=\&amp;#34;character name\&amp;#34; default=\&amp;#34;くらげちゃん\&amp;#34;}&amp;#34;,&amp;#34;appearance&amp;#34;:&amp;#34;young woman with a short platinum-blonde bob haircut, wearing a fluffy pale-lavender zip hoodie over a white inner top, shown from chest up on the lower right, face intentionally obscured with a plain beige rectangle&amp;#34;}},&amp;#34;layout&amp;#34;:{&amp;#34;orientation&amp;#34;:&amp;#34;vertical poster&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;clean white with faint pastel doodles of stars, bubbles, tiny jellyfish, and musical notes&amp;#34;,&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;header&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top&amp;#34;,&amp;#34;count&amp;#34;:5,&amp;#34;labels&amp;#34;:[&amp;#34;speech bubble intro&amp;#34;,&amp;#34;main title&amp;#34;,&amp;#34;small subtitle GOODS&amp;#34;,&amp;#34;horizontal lavender ribbon tagline&amp;#34;,&amp;#34;round badge on the top right&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;featured goods grid&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper and middle left&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;ゆらゆらくらげランプ&amp;#34;,&amp;#34;くらげと夢見るベッドリネン&amp;#34;,&amp;#34;くらげシェルミラー&amp;#34;,&amp;#34;くらげグラデマグ&amp;#34;,&amp;#34;くらげのときめき収納ボックス&amp;#34;,&amp;#34;くらげふわもこマット&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;side handwritten note&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper right&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;みんなも くらげちゃんRoomで いっしょに まったりしよー♡♡&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;room concept box&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;lower left&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;くらげちゃんの お部屋作りのこだわり&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;pick up circle&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;lower center-left&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;Pick up!&amp;#34;]}],&amp;#34;product_images&amp;#34;:{&amp;#34;count&amp;#34;:6,&amp;#34;items&amp;#34;:[{&amp;#34;name&amp;#34;:&amp;#34;ゆらゆらくらげランプ&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;small translucent jellyfish-shaped lamp on a white base, glowing softly in pale blue-lavender&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;くらげと夢見るベッドリネン&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;plush pastel-lavender bed with fluffy comforter and pillows, dreamy cozy bedroom styling&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;くらげシェルミラー&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;small tabletop mirror with a puffy shell-like pastel-lilac frame and rounded base&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;くらげグラデマグ&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;ceramic mug with lavender-to-pink gradient and a simple jellyfish illustration&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;くらげのときめき収納ボックス&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;pastel storage box holding cosmetics and small bottles, decorated with a jellyfish emblem&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;くらげふわもこマット&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;small fluffy cloud-like or jellyfish-like mat in pale lavender and white&amp;#34;}]},&amp;#34;text_elements&amp;#34;:{&amp;#34;main_title&amp;#34;:&amp;#34;{argument name=\&amp;#34;headline text\&amp;#34; default=\&amp;#34;くらげちゃんの お部屋アイテム\&amp;#34;}&amp;#34;,&amp;#34;badge_text&amp;#34;:&amp;#34;くらげちゃんの Room お部屋作りの こだわりポイントも 教えちゃうよ。&amp;#34;,&amp;#34;tagline&amp;#34;:&amp;#34;ふわふわで甘くて、ちょっぴり夢みたいな私のお部屋へようこそ♡&amp;#34;,&amp;#34;speech_bubble&amp;#34;:&amp;#34;くらげちゃんの お気に入りだけ集めた お部屋アイテムを紹介するよ♪&amp;#34;,&amp;#34;concept_points&amp;#34;:{&amp;#34;count&amp;#34;:3,&amp;#34;items&amp;#34;:[&amp;#34;色は白とラベンダーで統一!&amp;#34;,&amp;#34;光が集まるふわっとした空間に&amp;#34;,&amp;#34;お友達入りのアイテムに囲まれて 自分らしくいられる空間を大切にしてるよ♪&amp;#34;]},&amp;#34;product_blurbs&amp;#34;:&amp;#34;each product has a short handwritten Japanese description in a cute casual font beside or below the image&amp;#34;},&amp;#34;composition&amp;#34;:&amp;#34;the poster is left-heavy with product cards and text, while the character portrait occupies the lower right third, slightly overlapping the layout&amp;#34;,&amp;#34;color_palette&amp;#34;:{&amp;#34;count&amp;#34;:5,&amp;#34;colors&amp;#34;:[&amp;#34;white&amp;#34;,&amp;#34;pastel lavender&amp;#34;,&amp;#34;soft lilac&amp;#34;,&amp;#34;pale gray-violet&amp;#34;,&amp;#34;touches of pastel blue-pink gradient&amp;#34;]},&amp;#34;rendering_notes&amp;#34;:&amp;#34;keep everything very soft, feminine, and cozy; rounded corners on all product photos; mix of bold Japanese headline typography and light handwritten annotations; subtle shadows; clean high-key lighting; social-media-ready editorial collage aesthetic&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;魔法种子包装微缩场景&#34;&gt;魔法种子包装微缩场景
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AllaAisling/status/2048156345518768190&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AllaAisling&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AllaAisling&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/006.webp&#34;
	width=&#34;1200&#34;
	height=&#34;801&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/006_hu_444babc81c045359.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/006_hu_b9411ae15ce3b04.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;魔法种子包装微缩场景&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;149&#34;
		data-flex-basis=&#34;359px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Epic 3D scene: a weathered seed packet lying open on a potting bench, its promise erupting into the garden it describes. The illustration on the front becomes real. {argument name=&amp;#34;plant type&amp;#34; default=&amp;#34;[PLANT / FLOWER]&amp;#34;} growing at full scale from the paper, roots visible through the packet&amp;#39;s base pushing into soil below.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;detail left&amp;#34; default=&amp;#34;[DETAIL 1]&amp;#34;} in full bloom at one corner. {argument name=&amp;#34;detail right&amp;#34; default=&amp;#34;[DETAIL 2]&amp;#34;} mid-growth at the other, not yet what it will be.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Tiny insects that belong to this plant, {argument name=&amp;#34;insect type&amp;#34; default=&amp;#34;[BEE / BUTTERFLY / BEETLE]&amp;#34;}, hovering at correct scale.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The written instructions on the back become garden calendar, &amp;#34;sow in spring&amp;#34; manifests as actual spring light. &amp;#34;full sun&amp;#34; manifests as a single shaft of it, hitting the tallest bloom perfectly.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Scattered seeds between packet and soil each showing their germination stage, split coat, first root, first shoot, first leaf.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The packet&amp;#39;s torn top edge becomes a treeline.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Potting bench surface with soil scatter and water droplets.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Tilt-shift depth of field, greenhouse morning light, the packet as the garden it always intended.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;奢华计时腕表广告&#34;&gt;奢华计时腕表广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AlwaveNazca/status/2048147643809865950&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AlwaveNazca&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AlwaveNazca&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/007.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/007_hu_53f7b8075433d847.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/007_hu_6b013650585f2bb7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;奢华计时腕表广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dramatic luxury product advertising image for a motorsport-inspired chronograph wristwatch in a dark studio. Center-left foreground, show a single stainless steel chronograph watch standing upright at a slight three-quarter angle, with a black dial, two red-accent subdials, slim silver hour markers, a tachymeter bezel, and visible crown and pushers on the right side. The watch has a black leather strap with bold red stitching along both edges and a sporty premium finish. To the right of the watch, place one black square presentation box slightly behind it, textured like leather, with red stitching around the lid and a silver embossed eye-shaped logo above the text “NESS STUDIO” and smaller red text “TRACK SURFACE.” At the top center of the composition, add the same silver eye logo with the words “NESS STUDIO” and smaller “BY NICOLAS.” Across the background, place one oversized blurred word, {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;PRECISION&amp;#34;}, in large gray capital letters spanning nearly the full width. The scene is set against a deep black background with cinematic red and white horizontal light streaks crossing behind the products from left to right, suggesting speed and racetrack energy. Use a glossy wet ground plane with reflective texture, catching red highlights and mirrorlike reflections beneath the watch and box. At the bottom center, add the text “CHRONOGRAPH SERIES” in clean white spaced capitals with thin red horizontal lines extending on both sides, and below it smaller red capitals reading {argument name=&amp;#34;tagline text&amp;#34; default=&amp;#34;ALSACE MADE&amp;#34;}. Color palette: black, charcoal gray, silver steel, vivid racing red, and a touch of white. Lighting should be high-contrast and premium, with crisp specular highlights on the metal case, subtle soft fill on the box, and moody shadows. Overall style: ultra-polished commercial product photography, luxury watch campaign, sharp focus on the products, sleek branding, high-end automotive aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;霓虹-nike-lumina-广告海报&#34;&gt;霓虹 Nike Lumina 广告海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AlwaveNazca/status/2048147643809865950&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AlwaveNazca&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AlwaveNazca&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/008.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/008_hu_3e7d872b50e43c6a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/008_hu_2465c5288bde964a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;霓虹 Nike Lumina 广告海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-energy vertical Nike fashion campaign poster featuring a single athletic young woman mid-jump against a futuristic neon studio background. She is captured in a dynamic airborne pose with one knee bent up, the other leg folded back, one arm extended outward and the other bent near her chest, conveying motion and power. Her face is obscured by a clean rectangular blur block centered over the face. She wears a cropped iridescent white hooded windbreaker with a black zipper and small Nike logo on the chest, holographic metallic lavender-blue leggings with a subtle Nike swoosh on the thigh, a black branded waistband visible above the leggings, and white chunky Nike sneakers. Her brown hair is tied in a high ponytail flying outward with the jump. Behind her, enormous glowing white serif letters spell “NIKE” across the upper half, with a small white Nike swoosh centered above the word. Across the middle background, the phrase “LUMINA” appears once in wide bold glowing letters with a horizontal glitch and scanline distortion effect, partially obscured by the model. The color palette is saturated magenta, violet, cyan, and electric blue with strong bloom, glossy highlights, lens flares, and chromatic aberration. Add sweeping circular light trails wrapping around the model’s legs and body, suggesting speed and motion. The overall style is premium sportswear advertising, ultra-polished, cinematic, high contrast, hyperreal retouching, crisp product detail, dramatic rim lighting, and a luminous holographic aesthetic. Place 2 small text lines at the bottom: bottom left reads {argument name=&amp;#34;tagline text&amp;#34; default=&amp;#34;LIGHT. MOTION. ENERGY.&amp;#34;}, bottom right reads {argument name=&amp;#34;collection name&amp;#34; default=&amp;#34;NIKE LUMINA COLLECTION&amp;#34;} followed by a small Nike swoosh. Include exactly 3 visible Nike swooshes total: 1 above the large NIKE headline, 1 on the jacket chest, and 1 on the leggings.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;街头潮鞋广告海报&#34;&gt;街头潮鞋广告海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AlwaveNazca/status/2048147643809865950&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AlwaveNazca&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AlwaveNazca&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/009.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/009_hu_b072e862c874c197.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/009_hu_f2d16261ff61d346.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;街头潮鞋广告海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a bold streetwear poster advertisement for {argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;NESS STUDIO&amp;#34;} featuring a young adult model seated casually on the ground in a low-angle fashion pose, one knee raised and one leg extended toward the camera so the sneaker in front appears oversized and dominant. The model wears a dark brown oversized leather bomber jacket, a black shirt, light blue loose-fit jeans, white socks, and chunky black-white-gray sneakers with a red accent in the sole and the {argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;NESS STUDIO&amp;#34;} logo visible on the shoe side and tongue. The face is intentionally obscured by a soft rectangular blur block centered over the face. Use an off-white textured paper background with distressed grunge design elements and collage layering. Behind the model, place a large rough red paint brushstroke shape spanning diagonally across the center. Add black ink splatters, sketch circles, torn paper scraps, and hand-painted graffiti accents. Include 4 major graphic doodles: a large black X in the upper right, a hand-drawn upward arrow in the lower left, a rough crown sketch in the lower right, and a circular scribble near the top center. In the upper left, place a stylized eye logo above the text &amp;#34;{argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;NESS STUDIO&amp;#34;}&amp;#34; and a smaller tagline below reading &amp;#34;A MOMENT OF YOUR STYLE&amp;#34;. On the left middle area, add the handwritten slogan &amp;#34;INNOVATE CREATE INSPIRE&amp;#34; in stacked black brush lettering. On the right middle area, place a torn black paper patch with the handwritten white slogan &amp;#34;BUILT DIFFERENT MOVE DIFFERENT&amp;#34; and a red underline stroke. In the lower left near the shoe, add a black distressed label sticker containing a globe scribble, the text &amp;#34;{argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;NESS STUDIO&amp;#34;}&amp;#34;, and a barcode. Along the bottom footer, create a clean horizontal strip with 3 social media icons and handles separated by thin vertical dividers: Instagram, Facebook, and Twitter, each followed by &amp;#34;@NESS.STUDIO&amp;#34;. The overall style should be edgy, urban, youthful, high-contrast, editorial street fashion, mixing product advertising photography with graffiti poster design, collage textures, and dynamic branding.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;编辑风-osaka-six-卫衣广告&#34;&gt;编辑风 Osaka Six 卫衣广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/_LaurentB/status/2048126606313464040&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/_LaurentB&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@_LaurentB&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/010.webp&#34;
	width=&#34;675&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/010_hu_7de8847fc2baaabb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/010_hu_78efa95ff3f40433.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;编辑风 Osaka Six 卫衣广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A clean editorial fashion advertisement poster on a pale powder-blue studio background with a glossy reflective floor. The composition is vertical and minimal, dominated by oversized bold white condensed sans-serif typography in the background reading “OSAKA SIX:” on the top line and “006 REMAINS” below, filling most of the upper half behind the subject. In the top right corner, small white branding text reads “Designed by ARTTEESHOW.” Centered in the lower middle is an oversized forest-green crewneck sweatshirt standing upright like a sculptural object, with soft heavy cotton fabric, dropped shoulders, extra-long sleeves pooled on the floor, and a small black neck label that reads ARTTEESHOW. On the chest of the sweatshirt is a large abstract collage print made from torn paper fragments in beige, tan, black, gray, white, and vivid red, arranged vertically like layered scraps. Leaning against the right side of the giant sweatshirt is a slim female fashion model with long straight black hair, wearing a matching {argument name=&amp;#34;sweatshirt color&amp;#34; default=&amp;#34;forest green&amp;#34;} sweatshirt and relaxed wide-leg sweatpants with clean white low-top sneakers. She is posed in profile with a calm detached editorial attitude, one hand in her pocket, her body reclining diagonally against the giant garment, legs extended forward; her face is obscured by a soft rectangular blur for an anonymous art-fashion look. The smaller worn sweatshirt has the same abstract torn-paper collage graphic centered on the chest. At the bottom center, add 2 lines of small white copy text: “Made for comfort, worn for confidence.” and “Because life feels better when someone’s carrying the weight of the world.” The image should feel like a premium conceptual streetwear campaign from the early 1990s reimagined as contemporary luxury advertising, with crisp studio lighting, soft shadows, subtle floor reflections, precise product focus, surreal scale contrast between the oversized sweatshirt and the model, and a polished magazine-poster aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;editorial-perfume-shot-on-moss&#34;&gt;Editorial Perfume Shot on Moss
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Salmaaboukarr/status/2048103506125463983&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Salmaaboukarr&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Salmaaboukarr&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/011.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/011_hu_58556ac875587cf0.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/011_hu_37ab90329d9dc54.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Editorial Perfume Shot on Moss&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-end editorial product photograph of a single luxury perfume bottle centered in a warm earthy still-life scene. The product is a clear rectangular glass bottle filled with golden amber liquid, topped with a glossy rounded black cap, with a clean white front label that reads &amp;#34;BYREDO&amp;#34;, &amp;#34;BAL D’AFRIQUE&amp;#34;, and &amp;#34;EAU DE PARFUM&amp;#34;. Place the bottle upright on 1 curved piece of pale weathered driftwood, surrounded by a dense carpet of 1 layer of rich green moss covering the foreground and lower frame. Use a minimal studio composition with the product isolated against a smooth warm brown-to-amber gradient background, softly illuminated like sunset light. Light the scene with dramatic directional warm light from the upper right, creating a bright glow on the background, a crisp highlight on the cap, soft reflections in the glass, and gentle shadows across the wood and moss. Keep the framing vertical, the bottle centered slightly low in the composition with generous negative space above, and the overall mood natural, luxurious, earthy, cinematic, and polished like a premium fragrance campaign shot.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;金色皮草中的编辑风香水瓶&#34;&gt;金色皮草中的编辑风香水瓶
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Salmaaboukarr/status/2048103506125463983&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Salmaaboukarr&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Salmaaboukarr&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/012.webp&#34;
	width=&#34;420&#34;
	height=&#34;525&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/012_hu_73064ca43b4caaf4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/012_hu_9004ce57fc60b92a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;金色皮草中的编辑风香水瓶&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A luxurious editorial product photograph of a single perfume bottle nestled into dense, plush faux fur in rich golden caramel and honey-brown tones. Center the composition on one clear oval glass bottle filled with warm amber liquid, with a glossy rounded black cap and a clean white rectangular label. The label text should read {argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;BYREDO&amp;#34;} at the top, {argument name=&amp;#34;product name&amp;#34; default=&amp;#34;BAL D’AFRIQUE&amp;#34;} large in the middle, and {argument name=&amp;#34;product type&amp;#34; default=&amp;#34;EAU DE PARFUM&amp;#34;} in small text near the bottom. Shoot it as a close-up still life with soft studio lighting, subtle highlights on the glass and cap, gentle shadows in the folds of the fur, and a warm cinematic color palette. The bottle should sit slightly embedded in the fur so the surrounding texture frames it from all sides, creating a premium fashion editorial mood, minimal composition, shallow depth of field, crisp focus on the label, and a high-end beauty campaign aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;奢华-miniature-dubai-city-model&#34;&gt;奢华 Miniature Dubai City Model
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/silentempiredev/status/2048086378383384773&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/silentempiredev&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@silentempiredev&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/013.webp&#34;
	width=&#34;1199&#34;
	height=&#34;685&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/013_hu_bd1831eec05090ea.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/013_hu_57037a0472ed195f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;奢华 Miniature Dubai City Model&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;175&#34;
		data-flex-basis=&#34;420px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A hyper-detailed cinematic isometric miniature city model of {argument name=&amp;#34;landmark tower&amp;#34; default=&amp;#34;Burj Khalifa&amp;#34;} rising dramatically from the center of a square architectural master-plan board, presented like a luxury urban planning maquette on a black background. The composition shows one dominant ultra-tall silver skyscraper in the exact center, surrounded by a dense ring of modern high-rise towers, illuminated roads, bridges, and glowing warm city lights. Curving turquoise-blue water features and artificial lakes wrap around the central district in multiple connected pools and canals, with one large circular fountain-like feature near the tower base and several small island shapes visible in the water. In the lower right quadrant, include a large low-rise complex with rounded geometric roofs and subtle green-lit sections, connected by multilane roads and looping interchanges. The entire city sits on one square beige map board engraved with faint street grids and planning lines, with the board edges clearly visible and slightly raised. Viewpoint is a high three-quarter isometric angle, centered and symmetrical, with the tower extending far upward into negative space. Lighting is dramatic and luxurious: warm golden edge lights on buildings and roads, cool reflections in the water, crisp metallic highlights on the central tower, and a deep black void surrounding the model. Style should feel like a photorealistic architectural visualization mixed with a premium collectible scale model, extremely intricate, sharp, polished, and elegant.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;戏仿奢侈品广告&#34;&gt;戏仿奢侈品广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/tonysimons_/status/2048057490940596595&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/tonysimons_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@tonysimons_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/014.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/014_hu_9f0c8e2d76f0f3a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/014_hu_580b634c7e74ca8c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;戏仿奢侈品广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-impact parody e-commerce infographic for “{argument name=&amp;#34;product&amp;#34; default=&amp;#34;Four Loko&amp;#34;}” malt beverage. Foreground: An extreme close-up of a rough, weathered hand holding a tall, brightly colored can of {argument name=&amp;#34;product&amp;#34; default=&amp;#34;Four Loko&amp;#34;} toward the camera. The can is slightly cold with visible condensation droplets and a loud, chaotic flavor design. The hand and can have a slight macro-lens blur for depth, with the can still reading clearly as the hero product. Central Subject: In the mid-ground, a funny, disheveled {argument name=&amp;#34;subject&amp;#34; default=&amp;#34;homeless-looking man&amp;#34;} sitting casually on a milk crate in an urban alley. He has a scruffy beard, messy hair, layered worn clothing, and a huge unbothered grin. He should look chaotic but oddly charismatic, like the accidental king of bad decisions. He is posed like a confident lifestyle-ad model, proudly showing off the can. Background &amp;amp; Lighting: A ridiculously polished ad-style backdrop mixed with a grimy city alley setting. Soft-focus urban textures, dumpster shapes, graffiti hints, and scattered clutter in the distance. Add dramatic studio lighting, soft glow, rainbow prism flares, and subtle light leaks to make the whole thing look way too premium for the subject matter. A few blurred {argument name=&amp;#34;product&amp;#34; default=&amp;#34;Four Loko&amp;#34;} cans can float artistically in the background for extra absurdity. Typography &amp;amp; Layout (Bold sans-serif, white and neon accent styling): Top Center (Background): Massive, bold text reading “{argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;FOUR LOKO&amp;#34;}” positioned behind the subject. Top Right: Bold text reading “The Champagne of Bad Ideas”. Mid-Left: “Premium chaos and zero self-control” Mid-Right: Large, bold “23” with the text “ounces of terrible decisions.” Bottom-Right: Large, bold “1&amp;#34; with the text “can to ruin tomorrow.” Optional small callout text near the bottom: “Now with more regret.” Style: Ultra-detailed, 8k parody commercial photography, sharp focus on the can, shallow depth of field, vibrant trashy color palette, clean advertising composition, exaggerated premium product-ad aesthetic, funny visual contrast between polished branding and the wrecked subject.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;vr-headset-exploded-view-海报&#34;&gt;VR Headset Exploded View 海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/wory37303852/status/2045925660401795478&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/wory37303852&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@wory37303852&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/015.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/015_hu_e4202369328020d9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/015_hu_8571ff57bc5363a0.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;VR Headset Exploded View 海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;exploded view product diagram poster&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;subject&amp;#34;: &amp;#34;VR headset&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;style&amp;#34;: &amp;#34;clean high-tech 3D render, studio lighting, glowing accents&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;background&amp;#34;: &amp;#34;{argument name=\&amp;#34;background color\&amp;#34; default=\&amp;#34;soft purple and blue gradient\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;header&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;logo&amp;#34;: &amp;#34;∞ {argument name=\&amp;#34;product name\&amp;#34; default=\&amp;#34;Meta Quest 3\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;subtitle&amp;#34;: &amp;#34;{argument name=\&amp;#34;main catchphrase\&amp;#34; default=\&amp;#34;まったく新しい現実を、まったく新しい構造から。\&amp;#34;}&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;centerpiece&amp;#34;: &amp;#34;vertically stacked exploded view of a VR headset showing 9 distinct layers of internal components: outer shell, camera sensors, motherboard with chip, pancake lenses, internal frame, battery packs, side straps, top strap, and facial interface cushion.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;callout_labels&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;count&amp;#34;: 8,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;left_side&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;Snapdragon® XR2 Gen 2\n圧倒的な処理性能でリアルタイムな体験を。&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;調整可能なIPD機構\n幅広いユーザーに快適なフィット感を。&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;精密設計されたヘッドストラップ\n快適さと安定性を追求したエルゴノミクス。&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;right_side&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;フェイスプレート\n洗練されたデザインと最適な重量バランス。&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;トラッキングカメラ\n高精度な位置トラッキングと環境認識を実現。&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;パンケーキレンズ\n薄型設計で広い視野角と鮮明な映像を提供。&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;高性能バッテリー\n長時間駆動を支える最適化された電源設計。&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;柔らかなフェイスインターフェース\n長時間でも快適な装着感を実現。&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;footer&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;left_text_block&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;headline&amp;#34;: &amp;#34;{argument name=\&amp;#34;bottom headline\&amp;#34; default=\&amp;#34;体験は、構造から進化する。\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;body&amp;#34;: &amp;#34;一つひとつのパーツに、没入体験を支える最先端テクノロジーとこだわりの設計。Meta Quest 3は、未来を感じさせる体験を内部から生み出しています。&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;right_logo&amp;#34;: &amp;#34;∞ Meta&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;虚构-ai-广告打印机奢华海报&#34;&gt;虚构 AI 广告打印机奢华海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/nijisora_yuma/status/2049462065639858687&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/nijisora_yuma&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@nijisora_yuma&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/016.webp&#34;
	width=&#34;896&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/016_hu_f1558c734cabdcd9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/016_hu_b0414569d42985bc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;虚构 AI 广告打印机奢华海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;縦型3:4の、高級商業ポスターを制作してください。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;テーマは、架空の新商品広告です。商品は「BRAND PRESS 01（ブランドプレス・ゼロワン）」という、Pollo AIを搭載した架空の広告ポスター生成プリンターです。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;この商品は、まだ存在しないブランド名・商品ジャンル・世界観・ターゲット層を入力すると、Pollo AIがコピー、ビジュアル、レイアウトまで完成された商業広告ポスターを自動生成し、高精細な印刷物としてその場で出力する未来型プリンターです。単なるAIサービスの概念広告ではなく、実際に販売されていそうな架空商品の広告として成立させてください。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;メインコンセプト: 「まだないブランドに、最初の一目惚れを。」
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;商品ビジュアル: 画面中央に実物の商品「BRAND PRESS 01」を大きく配置。未来型の高級プロ用印刷デバイスとして、黒い金属筐体、シルバーのエッジ、透明カバー、青白く発光するAIコア、精密な印刷ヘッド、ローラー、タッチパネル、排紙スロット、ポスター受けトレイを備える。排紙スロットから、架空の高級香水ブランド広告ポスターが紙として大きく出力されている構図。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;構図: ややローアングル、斜め45度。背景は暗いネイビーから黒の高級広告制作スタジオ。映画的でドラマチックな高級プロダクト広告。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;広告レイアウト: 上部に大きなキャッチコピー、中央にプリンター本体と排出中のポスター、右側に機能説明、左下に価格と発売日、下部にCTA。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;入れる文字: 「まだないブランドに、最初の一目惚れを。」 / BRAND PRESS 01 / 「Pollo AI搭載・広告ポスター生成プリンター」 / 「名前だけのアイデアを、完成された商業ポスターとして出力。」 / 「構想、コピー、ビジュアル、印刷まで。1台で。」
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;奢华-chocolate-campaign-system&#34;&gt;奢华 chocolate campaign system
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07/status/2049459155086500321&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SPEEDAI07&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/017.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/017_hu_62b8746b955a3fad.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/017_hu_bbe920a4698343b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;奢华 chocolate campaign system&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a premium, square (1:1) product advertisement for a fictional luxury chocolate brand called Noirvelle Chocolat, inspired by high-end chocolate brands. The ad should feel like a high-end editorial campaign, combining luxury food photography, refined packaging design, and cinematic lighting. Use matte black wrapper, subtle gold foil, elegant serif typography, and realistic product rendering. Generate flavor variants such as Blood Orange Noir, Salted Pistachio Muse, and Raspberry Ember with distinct mood, color palette, ingredients, headline, and supporting copy. Keep the chocolate bar as hero centerpiece with subtle reflections, shallow depth of field, luxury minimalism, and a small CTA: “Shop the drop.”
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;urban-fruit-juice-ad-海报&#34;&gt;Urban fruit juice ad 海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSarah_/status/2049452842931630202&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSarah_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIwithSarah_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/018.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/018_hu_f430dbb0b53aa34d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/018_hu_bfc913c0d69a3a17.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Urban fruit juice ad 海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a premium modern beverage advertisement poster in a vertical 3:4 format featuring a stylish young female model crouching confidently in a bright urban indoor hallway with colorful graffiti wall art on one side and clean minimal architecture on the other. In the foreground, a giant realistic fruit juice bottle is held toward the camera in forced perspective, with fictional branding like “VIVAJUICE”. Add brand logo, tagline, huge bold overlapping typography, four icon-based feature badges, and three smaller bottle variants at bottom right. Use soft natural lighting mixed with commercial studio polish, realistic shadows, shallow depth of field, glossy floor reflections, and a premium energetic eCommerce campaign aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;カテゴリナビ: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;総目次&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;EC メインビジュアル&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;広告クリエイティブ&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;ポートレート写真&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;ポスターイラスト&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;キャラクターデザイン&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI とソーシャルメディア&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;元リポジトリリンク&#34;&gt;元リポジトリリンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;プロジェクトホーム&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/ad-creative.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元カテゴリファイル&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT-Image 2 プロンプトライブラリ：比較とコミュニティ事例</title>
        <link>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/</guid>
        <description>&lt;p&gt;このページでは &lt;code&gt;比較とコミュニティ事例&lt;/code&gt; カテゴリの 48 件の事例を収録しています。各項目には元事例リンク、作者、生成画像、完全なプロンプトを残しています。&lt;/p&gt;
&lt;p&gt;カテゴリナビ: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;総目次&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;EC メインビジュアル&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;広告クリエイティブ&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;ポートレート写真&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;ポスターイラスト&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;キャラクターデザイン&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI とソーシャルメディア&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;比較とコミュニティ事例&#34;&gt;比較とコミュニティ事例
&lt;/h2&gt;&lt;h3 id=&#34;木质书架提示词测试&#34;&gt;木质书架提示词测试
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/chetaslua/status/2044331451077013749&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/chetaslua&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@chetaslua&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/000.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/000_hu_349a75f53e60885a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/000_hu_60fe6fed947c682a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;木质书架提示词测试&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A wooden bookshelf consisting of three shelves: On the top shelf, there should be one book, on the second shelf, there should be three books, and on the bottom shelf, there should be seven books.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;gpt-image-2-细节展示&#34;&gt;GPT-Image-2 细节展示
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2045000106919997637&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/001.webp&#34;
	width=&#34;456&#34;
	height=&#34;703&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/001_hu_e0b361543eb632d3.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/001_hu_8ce9a910d53d3bc2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;GPT-Image-2 细节展示&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;64&#34;
		data-flex-basis=&#34;155px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;以眼部特写图片为基础，生成3:4的四屏构图超写实眼部特写，四屏按春夏秋冬上下排序。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;第一屏：眼眸中带着绽粉樱色的美瞳，睫毛缀满迷你春花，脸颊散落樱瓣与黄蕊小花，粉蝶萦绕眉眼，浅金发丝轻垂，下方簇簇樱花怒放，画面中央&amp;#34;SPRING&amp;#34;白色艺术字点缀，风格细腻唯美，光影柔和，色彩粉嫩治愈，下面用书法体写着春；
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;第二屏：眼眸中带着着清荷色的美瞳，睫毛饰以粉莲与绿荷，脸颊挂着晶莹水珠，粉瓣、绿荷点缀其间，蜻蜓轻绕，浅金发丝若隐若现，画面中央&amp;#34;Summer&amp;#34;白色艺术字凸显，光影通透流光感，色彩清透凉爽，下面用书法体写着夏；
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;第三屏：眼眸中带着金黄红相间的美瞳，睫毛饰以橙红枫叶，脸颊散落金红秋叶，橙蝶翩跹眉眼间，浅金发丝隐约可见，画面中央&amp;#34;AUTUMN&amp;#34;白色艺术字醒目，光影暖金流光，色彩浓郁温暖，下面用书法笔写着秋；
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;第四屏：眼眸中带着雪花蓝色的美瞳，睫毛覆满冰晶雪片，脸颊散落白色雪花与红色腊梅，银白蝴蝶翩跹眉眼，浅金发丝朦胧似雪，画面中央&amp;#34;WINTER&amp;#34;白色艺术字亮眼，光影冷冽蓝白流光，色彩清透纯净，下面用书法体写着冬。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整体呈现梦幻眼眸四季交替的唯美梦幻治愈画面，微调各屏的光影强度，让画面氛围感更浓郁。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ab-测试签名输出&#34;&gt;A/B 测试签名输出
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/saskr_13/status/2044744396932079934&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/saskr_13&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@saskr_13&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/002.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/002_hu_84c99483702d69b4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/002_hu_d27853e0cb13d54a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;A/B 测试签名输出&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;私があなたをどんなふうに扱ってきたか、4 コマ漫画風に描いてください。まずは 800 字くらいのプロットをテキストで出して、私が「描いて」と言ったらプロットに沿った 4 コマ漫画を描いてください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;剪影宇宙叙事海报&#34;&gt;剪影宇宙叙事海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2045418028733538620&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/003.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/003_hu_69c60fbc35d186ac.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/003_hu_f2a47467a79d8d90.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;剪影宇宙叙事海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请根据【主题：xxx】自动生成一张高审美的“轮廓宇宙 / 收藏版叙事海报”风格作品。不要将画面局限于固定器物或常见容器，不要优先默认瓶子、沙漏、玻璃罩、怀表之类的常规载体，而是由 AI 根据主题自行判断并选择一个最契合、最有象征意义、轮廓最强、最适合承载完整叙事世界的主轮廓载体。这个主轮廓可以是器物、建筑、门、塔、拱门、穹顶、楼梯井、长廊、雕像、侧脸、眼睛、手掌、头骨、羽翼、面具、镜面、王座、圆环、裂缝、光幕、阴影、几何结构、空间切面、舞台框景、抽象符号或其他更有创意与主题代表性的视觉轮廓，要求合理布局。优先选择最能放大主题气质、最能形成强烈视觉记忆点、最能体现史诗感、神秘感、诗意感或设计感的轮廓，而不是最安全、最普通、最常见的容器。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面的核心不是简单把世界装进某个物体里，而是让完整的主题世界自然生长在这个主轮廓之中、之内、之上、之边界里或与其结构融为一体，形成一种“主题宇宙依附于一个象征性轮廓展开”的高级叙事效果。主轮廓必须清晰、优雅、有辨识度，并在整体构图中占据核心地位。轮廓内部或边界中需要自动生成与主题强绑定的完整叙事世界，内容应当丰富、饱满、层次清晰，包括最能代表主题的标志性场景、核心建筑或空间结构、象征符号与隐喻元素、角色关系或文明痕迹、远景中景近景的空间递进、具有命运感和情绪张力的氛围层次，以及门、台阶、桥梁、水面、烟雾、路径、光源、遗迹、机械结构、自然景观、抽象形态、生物或道具等叙事细节。所有元素必须统一、自然、有主次、有层级地融合，像一个完整世界真实孕育在这个轮廓结构之中，而不是简单拼贴、裁切填充、素材堆叠或模板化背景。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整体构图需要具有强烈的收藏版海报气质与高级设计感，大结构稳定，主轮廓强烈明确，内部世界具有纵深、秩序和呼吸感，细节丰富但不拥挤，内容丰满但不杂乱，可以适度加入小比例人物剪影、远处建筑、光柱、门洞、桥、阶梯、回廊、倒影、天光或远景结构来增强尺度感、故事感与史诗感。整体画面要安静、宏大、凝练、富有余味，不要平均铺满，不要廉价热闹，不要无重点堆砌。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;风格融合收藏版电影海报构图、高级叙事型视觉设计、梦幻水彩质感与纸张印刷品气质，强调纸张颗粒感、边缘飞白、水彩刷痕、轻微晕染、空气透视、柔和雾化、局部体积光、光雾穿透、大面积留白与克制版式，让画面看起来像设计师完成的高端收藏版视觉作品，而不是普通 AI 跑图。整体气质要高级、诗意、宏大、神圣、怀旧、安静、具有传说感和叙事感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;色彩由 AI 根据主题自动判断并匹配最合适的高级配色方案，但必须保持统一、克制、耐看、低饱和、高级，不要杂乱高饱和，不要廉价霓虹感，不要塑料数码感。配色可以围绕黑金灰、冷蓝灰、雾白灰、褐红米白、暗铜、旧纸色、深海蓝、暮色紫、银灰等体系自由变化，但必须始终服务主题，并保持海报级审美与整体和谐。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;最终要求：第一眼有强烈的主题识别度和轮廓记忆点，第二眼有完整丰富的叙事世界，第三眼仍有细节和余味。轮廓选择必须具有创意和主题匹配度，尽量避免重复、保守、常见的容器套路，优先选择更有象征性、更有空间感、更有设计潜力的轮廓形式。不要普通背景拼接，不要生硬裁切，不要模板化奇幻素材，不要游戏宣传图感，不要过度卡通化，不要过度写实导致失去艺术感，不要形式大于内容。如果合适，可以自然加入低调克制的标题、编号、签名或落款，让它更像收藏版海报设计的一部分，但不要喧宾夺主。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;狮驼岭暗黑神话场景&#34;&gt;狮驼岭暗黑神话场景
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MANISH1027512/status/2045743158860878312&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MANISH1027512&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MANISH1027512&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/004.webp&#34;
	width=&#34;1200&#34;
	height=&#34;673&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/004_hu_f5f4bf455e2347e6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/004_hu_2545fff147bf08cb.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;狮驼岭暗黑神话场景&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;178&#34;
		data-flex-basis=&#34;427px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;中式怪异，黑暗神秘风格融合中式美学，完美细节，多重管线渲染，完美建模。西游记背景，狮驼岭，千妖万怪，坐在左边巨大王座上的大象王重甲妖精，坐在中间巨大王座上的狮王重甲妖精，坐在右边巨大王座上大鹏鸟王重甲妖精。渺小的背对镜头孙悟空肩抗金箍棒步行前进，孙悟空身穿铠甲，近地仰拍镜头，长焦镜头，强烈阴影。极致细节刻画，多次修改，正确透视和主体线条，精致细节
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;counter-strike-x-terraria-截图混搭&#34;&gt;Counter-Strike x Terraria 截图混搭
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/yssrski/status/2046410519595348397&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/yssrski&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@yssrski&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/005.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/005_hu_22dc16342dfb23c0.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/005_hu_e8fbbe23ea2f380e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Counter-Strike x Terraria 截图混搭&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;counter strike in game screenshot, mixed with Terraria
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;战前日本实验室-minecraft-截图&#34;&gt;战前日本实验室 Minecraft 截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/RitaStar1128/status/2046406024303976904&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/RitaStar1128&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@RitaStar1128&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/006.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/006_hu_b537e6a2e4d3a01c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/006_hu_1a35c7e6d109f154.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;战前日本实验室 Minecraft 截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;戦前日本の怪しげな研究所を探検しているマイクラのスクリーンショット画像を作成して
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;锻造杰作提示词测试&#34;&gt;锻造杰作提示词测试
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2046201836525302032&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/007.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/007_hu_bdee5d7a2fb77f90.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/007_hu_6ea37f78bc207883.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;锻造杰作提示词测试&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;帮我生成xxxx真迹图片
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;多概念战斗海报组&#34;&gt;多概念战斗海报组
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/joshesye/status/2046493442428039212&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/joshesye&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@joshesye&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/008.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/008_hu_5444105119fd235a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/008_hu_1b363ada840cafe7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;多概念战斗海报组&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1、生成不知火舞和貂蝉的游戏对战海报图
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2、生成一张K-pop团体时尚专辑封面
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3、请你生成 《斗破苍穹》 的关键人物关系图
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4、帮我截一张上传图片的抖音首页的女网红图
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;rust-游戏内截图&#34;&gt;Rust 游戏内截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/FixlationAI/status/2046272578705068476&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/FixlationAI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@FixlationAI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/009.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/009_hu_2f33baa8eee8a96f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/009_hu_2f3d7557f468088e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Rust 游戏内截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;an ingame screenshot of rust
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;sam-altman-熊自拍&#34;&gt;Sam Altman 熊自拍
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/JustinGorya/status/2046510831832006970&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/JustinGorya&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@JustinGorya&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/010.webp&#34;
	width=&#34;1200&#34;
	height=&#34;960&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/010_hu_cbb4341cfe620805.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/010_hu_99cec28b7bfdb7dc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Sam Altman 熊自拍&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;125&#34;
		data-flex-basis=&#34;300px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;generate image: Selfie of Sam Altman riding a bear
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Edit prompt: Remove the background make it transparent
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;among-us-写实截图&#34;&gt;Among Us 写实截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ReYYYYoking/status/2046502217843376292&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ReYYYYoking&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ReYYYYoking&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/011.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/011_hu_a07430ca8e2ce37c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/011_hu_7e0764d762a8c7b1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Among Us 写实截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;AmongUsの精密な実際のゲーム画像を生成して
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;复古编程博物馆卡通图&#34;&gt;复古编程博物馆卡通图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/XiaohuiAI666/status/2046515319947354603&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/XiaohuiAI666&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@XiaohuiAI666&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/012.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/012_hu_590bc6590b95ca8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/012_hu_9f60f996346a18fd.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;复古编程博物馆卡通图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;在计算机博物馆里,一个程序员在展厅中央,正在演示C语言编程,很多参观者在围观,屏幕上的代码清晰可见。旁边的牌子写着:古法编程,现场表演。2D卡通画风,16:9
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;第-14-维投影场景&#34;&gt;第 14 维投影场景
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/workingclassbud/status/2046506783850815703&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/workingclassbud&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@workingclassbud&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/013.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/013_hu_d98de914cb7ba1f8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/013_hu_2c2d101467fb6782.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;第 14 维投影场景&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dusk shindig  with multiple fake imagination projections all aligned in the 14th dimensions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;sam-altman-棒球转播画面&#34;&gt;Sam Altman 棒球转播画面
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/16kthir0GRXgNqn/status/2046507362266259832&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/16kthir0GRXgNqn&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@16kthir0GRXgNqn&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/014.webp&#34;
	width=&#34;1200&#34;
	height=&#34;960&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/014_hu_8bd08cc6b26c642b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/014_hu_6dacced72af126fe.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Sam Altman 棒球转播画面&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;125&#34;
		data-flex-basis=&#34;300px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;サムアルトマンがメジャーリーガーでバットを構えている。よくあるようなテレビ画面の構図
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;基于视频内容和当前帧生成-youtube-缩略图&#34;&gt;基于视频内容和当前帧生成 YouTube 缩略图&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/chatcutapp/status/2047228386117128475&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/chatcutapp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@chatcutapp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/015.webp&#34;
	width=&#34;1200&#34;
	height=&#34;635&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/015_hu_2eb49e69d901da0d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/015_hu_7ed47c8d420869e2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;基于视频内容和当前帧生成 YouTube 缩略图…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;188&#34;
		data-flex-basis=&#34;453px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Based on the video content and this current frame, use GPT to generate a YouTube thumbnail that fits the video. You can reference the style of the image I gave you, but replace the logo on the right side of AE with theChatCut logo. I&amp;#39;ll attach the logo for you.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;生成-2020-年最重大事件的图像&#34;&gt;生成 2020 年最重大事件的图像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Rufus87078959/status/2047211900769878234&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Rufus87078959&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Rufus87078959&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/016.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/016_hu_687922d1e7a63a2a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/016_hu_5b15c5c496429717.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;生成 2020 年最重大事件的图像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Generate an image of the most significant event of 2020
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;编辑图像将总金额改为-2445-泰铢&#34;&gt;编辑图像，将总金额改为 244.5 泰铢&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/elliscrosby/status/2047211507596071235&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/elliscrosby&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@elliscrosby&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/017.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/017_hu_16dc39ca901c6b82.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/017_hu_a50df358fa6989a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;编辑图像，将总金额改为 244.5 泰铢…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Edit this image so that total amount changes to 244.5 baht. You can change the quantity of each of the stacks of coins until we hit the target total.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;生成-2001-年最重大事件的图像&#34;&gt;生成 2001 年最重大事件的图像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Rufus87078959/status/2047210051216011682&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Rufus87078959&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Rufus87078959&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/018.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/018_hu_deead110f1a8dd0a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/018_hu_bd38033b18d24a88.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;生成 2001 年最重大事件的图像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Generate an image of the most significant event of 2001
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;研究-lime-药物设计并制作详细信息图&#34;&gt;研究 LIME 药物设计并制作详细信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/WillSpagnoli/status/2047172976463040851&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/WillSpagnoli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@WillSpagnoli&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/019.webp&#34;
	width=&#34;849&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/019_hu_25a4361b50c33c7d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/019_hu_47733dfbffd47eb7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;研究 LIME 药物设计并制作详细信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Research LIME Drug Design and make a detailed infographic about it
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;抖音直播带货截图&#34;&gt;抖音直播带货截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/laogeai/status/2047228458351120625&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/laogeai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@laogeai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/020.webp&#34;
	width=&#34;555&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/020_hu_f32bbd02312def58.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/020_hu_eb8b785a739867f4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;抖音直播带货截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;46&#34;
		data-flex-basis=&#34;111px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生成一个抖音直播的截图 里面是一个美女在直播，在卖丝袜和内衣，她的在线人数是99996，热度是18+，有个叫小互的大哥，给她刷了一个飞机礼物
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;社交-app-匹配成功界面&#34;&gt;社交 App 匹配成功界面
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047220490486612450&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/021.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/021_hu_923f02bf30c4aca3.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/021_hu_eae15aed44a17514.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;社交 App 匹配成功界面&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;社交App匹配成功界面，两个用户资料卡碰撞爱心特效
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;吕布-boss-设计表&#34;&gt;吕布 Boss 设计表
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047198090009190441&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/022.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/022_hu_5c8a9cf9cc09493f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/022_hu_da22a045a479988d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;吕布 Boss 设计表&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;吕布游戏Boss设定，赤兔马方天画戟，暗黑进化形态双形态对比
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;哪吒暗黑奇幻小说封面&#34;&gt;哪吒暗黑奇幻小说封面
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047196508270084104&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/023.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/023_hu_7c0698aae9a158cb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/023_hu_1562cbd59e61549a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;哪吒暗黑奇幻小说封面&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;玄幻小说封面，哪吒三头六臂悬浮虚空，火焰莲台底座，暗黑史诗风
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;新中式极简花卉插画&#34;&gt;新中式极简花卉插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2047180347448914195&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/024.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/024_hu_e1aa195cdc4af4e8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/024_hu_3b629338b5210b1a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;新中式极简花卉插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;新中式极简东方美学 × 高端商业插画，主题一花一世界，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;极简，克制，空灵，高级商业视觉，超现实东方意境，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面干净通透，无灰雾、无脏色，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一朵巨大的荷花作为空间容器，从平静水面自然生长，轻微倾斜，构图优雅留白充足，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;低饱和干净粉色，柔和胭脂调，花瓣半透明，轻盈通透，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;哑光低对比，边缘柔化 + 轻微景深，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;荷花内部为唯一视觉焦点：发光的3D微缩广州城市，包含：广州塔，珠江新城建筑群，猎德大桥，珠江水岸，少量岭南建筑，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;城市超精细结构，真实材质，极高细节清晰度，城市高光是暖金色，城市阴影是冷青蓝，形成冷暖对比，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;灯光通透有能量，局部高饱和但不泛滥，城市亮度明显高于荷花，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;水面清澈极简平静，仅少量柔和涟漪，弱反射，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;背景暖米白宣纸质感，无水墨、无笔触，大面积留白，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;中心有极轻微光晕渐变，整体通透、不灰、不闷，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面下方一艘极简小船，船上一位红衣渔女，极小比例，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;静立仰望荷花，红色为唯一高纯度点缀，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整体光线通透、干净、有层次，无灰雾、无泛白，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;高端CG商业插画，电影级真实光影，高动态范围，超精细，8K细节，ArtStation 级画质，强化分色，干净调色，青橙对比，暖高光冷暗部，仅城市灯光提亮饱和度，色调柔和通透，光影锐利明亮，无灰雾、无暗沉、无低饱和雾化。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;苏妲己古风魅惑人像&#34;&gt;苏妲己古风魅惑人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/nidiedeba/status/2047147223281270878&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/nidiedeba&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@nidiedeba&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/025.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/025_hu_57012c8d3330874.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/025_hu_10091a87be8e4b13.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;苏妲己古风魅惑人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;苏妲己古风写真，红色纱衣半透，狐耳若隐若现，媚态撩人
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;鲁迅朝花夕拾插画&#34;&gt;鲁迅《朝花夕拾》插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Aurora_62340/status/2047139992355680530&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Aurora_62340&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Aurora_62340&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/026.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/026_hu_39b845c01a0f8f13.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/026_hu_6ca7c93238508cbe.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;鲁迅《朝花夕拾》插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;结合鲁迅的《朝花夕拾》里的内容，生成一副图片，要求图片背景符合《朝花夕拾》的意境，背景图可以使用蒙版，前景是 鲁迅的全身画像位于图片左侧或右侧
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;地铁手机随拍&#34;&gt;地铁手机随拍
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AntCaveClub/status/2047136306485133428&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AntCaveClub&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AntCaveClub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/027.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/027_hu_e73df417ccc689da.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/027_hu_112ce48141e686fb.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;地铁手机随拍&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;地铁上低头看手机的美丽女人，偷拍照片。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;能免费试一次 ⬇️
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;中国航天纪念邮票张&#34;&gt;中国航天纪念邮票张
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047129703702802811&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/028.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/028_hu_eb60c01370c01934.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/028_hu_3db265d15e769808.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;中国航天纪念邮票张&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;中国航天纪念邮票小全张，火箭发射场景，烫金边框工艺
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;竖版武侠女侠人像&#34;&gt;竖版武侠女侠人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/CoderDaMing/status/2047127585256358221&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/CoderDaMing&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@CoderDaMing&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/029.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/029_hu_a8f0a65ddfdcf7b2.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/029_hu_894cf766aa61d435.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;竖版武侠女侠人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 竖版，极致武侠风，绝美东方女侠，20岁出头，冷艳锐利丹凤眼，眉宇英气逼人，肤白如玉，长直黑发湿漉漉随狂风剧烈飞舞，几缕发丝贴在脸颊和颈侧，穿着湿透的深黑改良武侠劲装，外披宽袖玄色长袍，衣袍和长袖被风吹得剧烈飘扬翻飞，紧身劲装勾勒身材，腰束软剑带，足踏长靴，右手持一把古剑，剑身散发幽蓝剑气光芒，动态姿势：身体微侧回眸，衣袂猎猎，背景为月夜雨雾笼罩的竹林古道，巨大明月高悬，石板小径，古灯笼，薄雾雨丝，戏剧性冷月光与蓝光剑气结合，湿身水光效果，超强动态感，细腻布料褶皱、头发丝飘动、真实水珠反光，电影级光影，8k，masterpiece, best quality, ultra realistic, cinematic, dramatic atmosphere
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;基于佛经的写实观音人像&#34;&gt;基于佛经的写实观音人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Zhaoge01/status/2047123570485260753&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Zhaoge01&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Zhaoge01&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/030.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/030_hu_79247bf19d7df29f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/030_hu_6564a8aaada7451c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;基于佛经的写实观音人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;根据佛经对观音菩萨的形象描述，原原本本的还原一张真实的观音菩萨形象照片，皮肤与衣服接近真实，画质iPhone 15 pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;唐代长安灯会全景&#34;&gt;唐代长安灯会全景
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047122441454096527&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/031.webp&#34;
	width=&#34;1200&#34;
	height=&#34;600&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/031_hu_134154d5364f596.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/031_hu_a01776cc2a06ae8c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;唐代长安灯会全景&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;200&#34;
		data-flex-basis=&#34;480px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;唐代长安城元宵灯会全景，万盏花灯照亮夜空，工笔重彩长卷
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;历史感杨贵妃写实人像&#34;&gt;历史感杨贵妃写实人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Zhaoge01/status/2047110776897638568&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Zhaoge01&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Zhaoge01&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/032.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/032_hu_9260a969e43c58ec.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/032_hu_7925640563d18b20.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;历史感杨贵妃写实人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;根据真实历史对杨玉环的形象描述，生成一张杨贵妃真实照片，画质为iPhone 15 pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;超现实日本未来城市插画&#34;&gt;超现实日本未来城市插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Tresmort/status/2047105322863460496&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Tresmort&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Tresmort&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/033.webp&#34;
	width=&#34;672&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/033_hu_4d3ca5a30ab2dcad.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/033_hu_2fdd875a8febb08d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;超现实日本未来城市插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;134px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;参考这张图的透视和风格，绘制一张更加精细的超高清插画，表现超现实主义的日式未来都市，要能看清很小的细节，包括街道上的传统文化游行的人，小巷里的黑帮，烟花巷的舞女，疲惫的社畜，楼房的窗户里也有各式各样的人物，学习的学生，吵架的夫妻，玩游戏的宅男，以及更多的发挥细节。讽刺现实拥挤中的无聊，都市繁华下的孤独，无意义的人生中又有一种病态的美感。画面要有极高的审美价值 ，不能因为拼内容而损失美和协调感，比例是9:16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;涂山雅雅奇幻魅力人像&#34;&gt;涂山雅雅奇幻魅力人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sdjn_wgc/status/2046981757325475954&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sdjn_wgc&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sdjn_wgc&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/034.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/034_hu_aca7edbe689ae342.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/034_hu_5a8d1598f7f60220.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;涂山雅雅奇幻魅力人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;狐妖小红娘涂山雅雅写真大片，粉色九尾狐裘紧身裙，媚眼如丝，红唇微张，极致妖媚
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;抖音直播带货截图-1&#34;&gt;抖音直播带货截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/LVWANGJI_0327/status/2046974302227206525&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/LVWANGJI_0327&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@LVWANGJI_0327&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/035.webp&#34;
	width=&#34;555&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/035_hu_babe578c9021c9eb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/035_hu_b24fa3bc309b5223.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;抖音直播带货截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;46&#34;
		data-flex-basis=&#34;111px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生成一个抖音直播的截图 里面是一个美女在直播，在卖丝袜和内衣，她的在线人数是99996，热度是18+，有个叫小互的大哥，给她刷了一个飞机礼物
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;东方奇幻女性半身像&#34;&gt;东方奇幻女性半身像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2046962895775580442&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/036.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/036_hu_a9e322f740143588.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/036_hu_b4fefc36a1f44d63.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;东方奇幻女性半身像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;东方幻想风格女性，半身肖像，回眸侧脸，气质空灵优雅，柔和神性美感，细腻五官，微垂眼神，冷白细腻肌肤，淡雅橘粉妆容，金色高光点缀
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;长发飘动，发丝中融入彩色花朵与光粒（红、蓝、橙、紫），头发具有流动感与空气感
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;身穿半透明丝绸礼服与披肩，材质轻盈通透，布料随风飘动，表面带有鎏金纹理与闪耀颗粒。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整体光影为暖金色逆光，强边缘光，体积光明显，光粒漂浮，柔光泛光，梦幻氛围
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;背景干净浅色渐变，带微光与粒子效果，整体氛围空灵、梦境、神圣
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;风格：高端CG插画，超精细，电影级光影，柔光渲染，8K细节，artstation 热门作品风格
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;竖版东方年轻女性艺术人像&#34;&gt;竖版东方年轻女性艺术人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/zhiyangzhu22222/status/2046952985562062888&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/zhiyangzhu22222&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@zhiyangzhu22222&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/037.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/037_hu_6abef56a6312093c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/037_hu_4cf6b460212173c7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;竖版东方年轻女性艺术人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 竖向构图，单人女性艺术肖像，年轻东方女生，五官清秀，脸部线条柔和，皮肤自然通透，保留真实肌理，气质安静高级，带一点疏离感和故事感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;摄影棚风格与自然光融合，柔和侧光，面部有细腻高光，阴影轻柔，整体光线通透不刺眼，带轻微黑雾滤镜效果，微朦胧、微泛光、空气感强。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;背景极简干净，奶油灰、米白、浅卡其或雾感暖灰色墙面，留有大面积负空间，整体画面简洁、有呼吸感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;模特坐在地面或低台上，一条腿自然弯曲，一条腿放松伸展，身体轻微前倾或侧倾，肩膀不对称，头部轻轻倾斜，动作自然松弛，不刻意摆拍。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;表情平静克制，眼神柔和，略微疏离，带一点若有所思的情绪，嘴唇自然微张或轻闭，状态慵懒、安静、细腻。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;发型为自然蓬松的长发，微凌乱碎发，发丝轻柔，有空气感和层次感，像刚整理过但保留自然随性感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;妆容为高级淡妆，韩系清透底妆，皮肤柔雾光泽，鼻梁与面颊有自然高光，眉形干净，眼妆淡雅但有神，睫毛纤长，唇色为低饱和玫瑰豆沙色或奶茶裸粉色。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;服装为简约高级风：米白色紧身罗纹针织背心，外搭宽松白衬衫或柔软针织开衫，下装为高腰半裙或简约短裤，布料柔软贴合身形但不过分暴露，呈现自然身体线条与文艺感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面强调细腻质感、柔和色调、轻法式与韩系杂志感结合，真实摄影感，电影级肤色，细节丰富，层次分明，构图克制，高级审美，时尚 编辑人像，柔和的电影感人像，细腻的质感，超高细节，逼真，优雅，精致，高端时尚摄影，含蓄的性感，简洁的构图。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;汽车人集结月球基地&#34;&gt;汽车人集结月球基地
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2046952548469530716&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/038.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/038_hu_fc0d03188fef8d07.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/038_hu_75e9a58aa1d6430a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;汽车人集结月球基地&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;图片1：汽车人全员月球基地集结，地球悬于身后星空，赛博坦旗帜飘扬
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;图片2：霸天虎全员列阵外星战舰甲板，威震天坐于王座俯视全军
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;自然志风食物标本剖面&#34;&gt;自然志风食物标本剖面
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/GeekCatX/status/2046939656244318676&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/GeekCatX&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@GeekCatX&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/039.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/039_hu_30825d91596e59d8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/039_hu_8224a59ff709b4cc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;自然志风食物标本剖面&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一颗/一块/一枚【食物名称】，以博物学大师发现野外标本的方式解剖。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;剖开、展开、固定——如同博物馆的珍贵藏品，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;却以卡拉瓦乔为《国家地理》掌镜时的光线照亮。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;每一个内部结构都以自身的材质真相发光。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;截面锋利得近乎暴力。内部美丽得近乎神圣。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面中呈现完整标本：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一半保持原状，展示【外表面描述：质感/颜色/纹理】；
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;另一半剖开至核心，【内部核心结构描述：最重要的1—2个内部视觉特征】清晰可见。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【补充1—2句该食物最具视觉张力的横截面细节描述】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;背景：纯粹的黑丝绒。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【食物名称】悬浮其中，如同某件珍贵而危险的事物。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;标注文字紧贴结构边缘，手写感衬线字体，绝不悬空飘浮。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面包含以下标注，每处标注三行：第一行结构名称，第二行成分数据，第三行一句人话：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【结构01名称】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【成分／数据说明】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【这个结构在做什么，为什么重要】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【结构02名称】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【成分／数据说明】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【这个结构在做什么，为什么重要】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【结构03名称】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【成分／数据说明】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【这个结构在做什么，为什么重要】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【结构04名称】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【成分／数据说明】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【这个结构在做什么，为什么重要】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【结构05名称】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【成分／数据说明】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【这个结构在做什么，为什么重要】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【结构06名称】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【成分／数据说明】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【这个结构在做什么，为什么重要】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;省略其他如果有继续保持这个格式
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;主标题，左上角，暖象牙白大写字体：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【食物名称】·解剖
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;斜体副标题紧随其下：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【一句揭示这种食物本质的话，不超过15字】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整体气质：奥杜邦博物插画×卡拉瓦乔光影×有史以来最美的科学摄影。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4K精度，标本照明，极致内部细节。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;没有任何临床感，一切都鲜活。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;写实风格，非示意图，非卡通，非简化图解。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;每一种材质都有真实的物理质感：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;粗糙的、光滑的、湿润的、干燥的、致密的、疏松的。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;宝丽来相框突破场景&#34;&gt;宝丽来相框突破场景
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MajaDesignJP/status/2047235632934928765&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MajaDesignJP&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MajaDesignJP&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/040.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/040_hu_e11ed3612b1be3e9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/040_hu_c4e74768217d3d5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;宝丽来相框突破场景&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ポラロイド写真の中に人が写っていて、その人がフレームから外に飛び出している画像。日本語が書いてある画像生成して
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;←下の画像
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPT Image-2で生成したやつ→
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;餐厅-pov-变化对比&#34;&gt;餐厅 POV 变化对比
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/chesnyfcb/status/2047714457774637213&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/chesnyfcb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@chesnyfcb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/041.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/041_hu_c3be8e5523986d4f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/041_hu_46f34758a3d6ee94.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;餐厅 POV 变化对比&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A side-by-side comparison graphic on a black background demonstrating a camera-angle change in the same restaurant scene. At the top, large white sans-serif text reads: &amp;#34;Show me the POV from someone standing behind the bar looking out over this crowded restaurant. Change NOTHING in the scene other than the pov&amp;#34;. Below, place 2 stacked rectangular photos centered vertically: the top image labeled &amp;#34;Source&amp;#34; in large white text on the left, and the bottom image labeled &amp;#34;Output&amp;#34; in large white text on the left. The top photo shows a warmly lit, upscale, crowded restaurant interior seen from the dining room side, facing a tall back bar filled with many illuminated liquor bottles on wall-to-wall shelves, with bartenders and guests in front, amber lighting, globe pendant lights, wood ceiling, beige columns, and tightly packed seated diners in the foreground. The bottom photo shows the exact same restaurant, same crowd density, same warm lighting, same decor, same bar shelving, same globe pendant lights, and same overall composition elements, but now from the point of view of someone standing behind the bar and looking outward across the crowded restaurant; the foreground includes the bar counter with glassware, metal bar tools, bottles, and a point-of-sale screen visible at the lower left, while guests and staff fill the middle ground and the dining room extends into the background. Preserve the sense that only the camera position changed between the 2 images, with no other scene alterations.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;动漫人群-pov-对比&#34;&gt;动漫人群 POV 对比
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/chesnyfcb/status/2047714457774637213&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/chesnyfcb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@chesnyfcb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/042.webp&#34;
	width=&#34;680&#34;
	height=&#34;506&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/042_hu_ed0399bfad9e8fc0.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/042_hu_f726205b2c45a4df.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫人群 POV 对比&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;134&#34;
		data-flex-basis=&#34;322px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;comparison graphic&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;anime cinematic demonstration image on a black presentation background&amp;#34;,&amp;#34;canvas&amp;#34;:{&amp;#34;aspect_ratio&amp;#34;:&amp;#34;4:3&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;solid black&amp;#34;},&amp;#34;text_elements&amp;#34;:[{&amp;#34;text&amp;#34;:&amp;#34;{argument name=\&amp;#34;headline text\&amp;#34; default=\&amp;#34;Move the camera POV to be at ground level in the crowd.\&amp;#34;}&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top center&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;large white sans-serif&amp;#34;},{&amp;#34;text&amp;#34;:&amp;#34;Source&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;left of upper image&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;large white sans-serif&amp;#34;},{&amp;#34;text&amp;#34;:&amp;#34;Output&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;left of lower image&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;large white sans-serif&amp;#34;}],&amp;#34;layout&amp;#34;:{&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;Source&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper center&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;overhead crowd scene&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;Output&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;lower center&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;ground-level crowd POV scene&amp;#34;]}],&amp;#34;image_frames&amp;#34;:2},&amp;#34;images&amp;#34;:[{&amp;#34;role&amp;#34;:&amp;#34;source image&amp;#34;,&amp;#34;composition&amp;#34;:&amp;#34;busy top-down view of a densely packed historical street crowd, seen from above&amp;#34;,&amp;#34;scene&amp;#34;:&amp;#34;a chaotic crowd gathered around a wagon and a horse-drawn carriage, people pressed shoulder to shoulder, many wearing caps and muted early-20th-century or old-European clothing, bundles and sacks visible, one brown horse at the right edge, wooden wagon wheel and cart structure partially visible&amp;#34;,&amp;#34;camera&amp;#34;:&amp;#34;high overhead bird&amp;#39;s-eye angle looking down into the crowd&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;soft daylight&amp;#34;,&amp;#34;color_palette&amp;#34;:&amp;#34;muted earthy browns, dusty blues, beige, olive, warm gray&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;hand-painted anime film still, detailed crowd illustration, slightly soft shading&amp;#34;},{&amp;#34;role&amp;#34;:&amp;#34;output image&amp;#34;,&amp;#34;composition&amp;#34;:&amp;#34;the same crowded historical street reimagined from inside the mass of people at near-ground height&amp;#34;,&amp;#34;scene&amp;#34;:&amp;#34;view from within the crowd beside a carriage wheel, bodies filling the foreground and midground, a person in dark maroon clothing bent forward at left, a crouched figure in green near the bottom center, a woman in a light blue dress at right-center turning back, tightly packed figures, horse and cart implied nearby, dramatic sense of compression and closeness&amp;#34;,&amp;#34;camera&amp;#34;:&amp;#34;very low ground-level POV from inside the crowd, upward and forward through people, emphasizing complex occlusion and depth&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;soft daylight with warm cinematic shadows&amp;#34;,&amp;#34;color_palette&amp;#34;:&amp;#34;muted earthy browns, dusty blues, beige, olive, warm gray&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;hand-painted anime film still, cinematic perspective shift, detailed character crowding, soft painterly shading&amp;#34;}],&amp;#34;overall_goal&amp;#34;:&amp;#34;show a before-and-after camera angle transformation of the same anime crowd scene, with the output moving from an overhead view to a low immersive POV inside the crowd&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;霓虹-ai-缩略图对比&#34;&gt;霓虹 AI 缩略图对比
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MoveHiro1219/status/2047698611665096732&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MoveHiro1219&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MoveHiro1219&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/043.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/043_hu_33f15e3a0c84a481.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/043_hu_175d60632bcf6b51.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;霓虹 AI 缩略图对比&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a dramatic Japanese YouTube thumbnail in a futuristic neon cyberpunk style, 16:9 landscape. Use a dark tech-city background with faint skyscrapers, digital grid lines, glowing particles, and high-contrast blue, pink, and gold lighting. In the exact center, place a young woman from the waist up with long straight pastel blue hair, wearing a plain white short-sleeve T-shirt and a light pink skirt, posing thoughtfully with one hand near her chin and the other arm folded; anonymize her face with a soft rectangular blur. Across the very top, add huge distressed bold white Japanese headline text reading 主導権が揺れた, and directly below it add large bold yellow text reading {argument name=&amp;#34;subheadline text&amp;#34; default=&amp;#34;Nano Bananaから&amp;#34;}. On the left side, create a glowing blue hexagonal-framed panel titled Nano Banana with a smaller subtitle 画像生成. Inside that panel, include exactly 4 image tiles in a 2x2 grid: 1) a fantasy floating island landscape at sunset, 2) a sunlit forest path with tall trees, 3) a neon futuristic city street at night, 4) an outer-space planet scene with stars and a spacecraft. Beneath the left panel, add a blue glowing ribbon label reading かつては優位だった. On the right side, create a glowing magenta hexagonal-framed panel titled {argument name=&amp;#34;right panel title&amp;#34; default=&amp;#34;GPT Image 2&amp;#34;} with a smaller subtitle 実務で使える出力へ. Inside it, include exactly 4 example thumbnail cards in a 2x2 grid, each featuring the same blue-haired woman with a blurred face and bold Japanese text. The 4 card labels above the tiles are: サムネイル画像, 記事のアイキャッチ画像, LPのセクション画像, SNS投稿画像. The large text inside the 4 cards should read respectively: 1) AIで変わるクリエイティブの未来, 2) AI時代のクリエイティブ戦略 成功する企業の条件, 3) AIで加速するビジネス成長, 4) 未来をつくるのは AI×あなたのアイデア. Between the left and right panels, place a bright glowing gold arrow pointing from left to right with spark-like particle trails, indicating transition or superiority shift. Along the bottom, add a very large black banner with a glowing gold border and massive bold gold text reading {argument name=&amp;#34;bottom banner text&amp;#34; default=&amp;#34;GPT Image 2へ&amp;#34;}. Overall composition should feel like a comparison graphic showing a shift from older image generation to more practical commercial output, with aggressive thumbnail typography, strong glow effects, metallic texture on major text, and polished social-media marketing visuals.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;赛博朋克-ai-工具对比海报&#34;&gt;赛博朋克 AI 工具对比海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MoveHiro1219/status/2047698611665096732&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MoveHiro1219&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MoveHiro1219&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/044.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/044_hu_e993eef1ea220a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/044_hu_6755473a85ce3e57.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;赛博朋克 AI 工具对比海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A futuristic Japanese tech comparison poster in a dark cyberpunk control-room setting, wide 16:9 composition. Large distressed white Japanese headline text at the upper left reading &amp;#34;三つ巴&amp;#34;, with a bold gold subtitle directly below reading &amp;#34;それぞれの武器&amp;#34;. Across the center-left are 3 glowing holographic comparison panels arranged horizontally and connected by neon arrows: a blue panel labeled &amp;#34;Google&amp;#34;, an amber-gold panel labeled &amp;#34;Claude&amp;#34;, and a purple-magenta panel labeled &amp;#34;OpenAI&amp;#34;. The Google panel contains 4 inner cards: 2 larger top cards labeled &amp;#34;Gemini&amp;#34; and &amp;#34;Antigravity&amp;#34;, plus 2 smaller bottom cards showing analytics/dashboard-like visuals and a blue isometric cube graphic. The Claude panel contains 4 inner cards: 1 large top card labeled &amp;#34;Claude Code&amp;#34;, plus 3 smaller bottom cards showing a network diagram, text/code list, and chart analytics. The OpenAI panel contains 5 inner cards: 2 larger top cards labeled &amp;#34;ChatGPT&amp;#34; and &amp;#34;Codex&amp;#34;, plus 3 smaller bottom cards showing interface/code windows and a geometric wireframe cube. Add glowing bidirectional arrows between Google and Claude, and between Claude and OpenAI. At the bottom center, place a large neon-framed banner with gold text reading &amp;#34;Google / Claude / OpenAI&amp;#34;. On the right side, include a young woman standing and pointing left toward the panels, with long straight split-dyed hair in pastel pink and cyan blue, a plain white t-shirt with black text reading &amp;#34;{argument name=&amp;#34;shirt text&amp;#34; default=&amp;#34;OKIHIRO AI Creative&amp;#34;}&amp;#34;, and a soft pink pleated skirt. Her face is obscured by a smooth rectangular blur block. Use cinematic sci-fi lighting, glossy hologram UI details, high contrast, vivid blue-gold-purple accents, and a polished YouTube thumbnail aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;日式-ai-对战-youtube-缩略图&#34;&gt;日式 AI 对战 YouTube 缩略图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MoveHiro1219/status/2047698611665096732&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MoveHiro1219&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MoveHiro1219&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/045.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/045_hu_70f595024db82dbb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/045_hu_e83698ae32159172.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;日式 AI 对战 YouTube 缩略图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A bold Japanese YouTube thumbnail about the AI competition era, 16:9 widescreen, high contrast, dramatic tech-news style. Use a dark futuristic control-room background filled with 3 glowing holographic dashboard screens and blue cyber interface elements around the edges. On the left and center, place a luminous circular hub labeled “AI” in bright blue, with 3 directional glowing energy arrows branching outward to competing platforms: “Google” on the left in a blue electric region, “Claude” on the upper right in a gold electric region, and “OpenAI” at the bottom center in a magenta-purple electric region. Add a subtle world-map or territory-battle visualization effect under each brand region, like illuminated digital land masses or influence zones. On the right side, show a young Japanese-looking woman from waist up, facing forward, wearing a long straight split-color wig with pastel pink on one side and pastel blue on the other, a plain white T-shirt with the printed text “OKIHIRO AI Creative”, and a light pink skirt. She raises one index finger beside her face in a presenter pose. Her face is fully obscured by a large soft-edged rectangular blur block. Across the top, add huge distressed white Japanese headline text: {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;AI戦国時代&amp;#34;}. Beneath it, add a second line in bold gold Japanese text: {argument name=&amp;#34;subheadline text&amp;#34; default=&amp;#34;性能だけの話じゃない&amp;#34;}. Across the bottom, place a wide black banner with massive bold gold Japanese text: {argument name=&amp;#34;bottom text&amp;#34; default=&amp;#34;空気を取った側が勝つ&amp;#34;}. Make the typography oversized, gritty, and attention-grabbing, with slight glow and drop shadow. Use a color palette of black, electric blue, gold, magenta, and neon white, with intense contrast and thumbnail readability.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;东京-disneysea-前排战斗-ui&#34;&gt;东京 DisneySea 前排战斗 UI
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mikko_20100518/status/2047514897404354598&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mikko_20100518&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mikko_20100518&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/046.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/046_hu_b2c64723a1135d80.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/046_hu_445e6e63a044c7d2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;东京 DisneySea 前排战斗 UI&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a hyper-detailed comedic Japanese arcade fighting game screenshot styled like a versus battle scene, using a real-world photo aesthetic with game UI overlaid on top. The scene shows an intense mock battle between two groups of theme-park fans competing for the front row at an outdoor show plaza in Tokyo DisneySea. Use a wide 16:9 composition. In the background, clearly show Mediterranean Harbor and Mount Prometheus under bright daytime skies, with the waterfront and DisneySea architecture visible. In the foreground, show exactly 10 young adult people in winter casual clothing, split into 2 opposing teams of 5, physically leaning, grabbing, reaching, and shoving in a tug-of-war-like scrum over position, with exaggerated competitive body language and frozen action as if in a fighting game. Faces should be anonymized with soft blurred blocks. Add floating character labels above each person with levels and names in Japanese. The overall tone is absurdly realistic, like a real candid photo transformed into a polished arcade game battle screen.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Add a full Japanese fighting-game HUD with glossy blue-versus-red interface styling. At the very top, place a center stage title bar reading &amp;#34;東京ディズニーシー ミッキー広場 ショー最前列バトル&amp;#34; and a large timer in the middle reading &amp;#34;TIME 89&amp;#34;. In the top left, add a blue team header &amp;#34;PLAYER1&amp;#34; and team name &amp;#34;最前列ガチ勢A&amp;#34;. In the top right, add a red team header &amp;#34;RIVAL&amp;#34; and team name &amp;#34;ライバルグループB&amp;#34;. On the left side, stack exactly 5 blue player status panels with portraits, level, Japanese class-like nicknames, HP, SP, and BURST meters. The 5 left-side labels are: &amp;#34;Lv.25 ガチ勢リーダー ユウキ&amp;#34;, &amp;#34;Lv.24 筋肉マン タケシ&amp;#34;, &amp;#34;Lv.23 眼鏡オタク シンジ&amp;#34;, &amp;#34;Lv.23 開角心MAX ケント&amp;#34;, &amp;#34;Lv.22 サポート要員 リョウ&amp;#34;. On the right side, stack exactly 5 red rival status panels with the labels: &amp;#34;Lv.27 ライバルリーダー ダイキ&amp;#34;, &amp;#34;Lv.26 パワフル代表 マサル&amp;#34;, &amp;#34;Lv.24 戦略家 コウジ&amp;#34;, &amp;#34;Lv.23 熱血漢 リク&amp;#34;, &amp;#34;Lv.22 サポート女子 サキ&amp;#34;. Each panel should include numeric HP and SP values and segmented BURST gauges, styled like a Japanese arcade RPG-fighter interface.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Place exactly 10 in-battle nameplates above the fighters in the center scene, color-coded blue for the left team and red for the right team. The 10 labels are: &amp;#34;Lv.24 タケシ&amp;#34;, &amp;#34;Lv.25 ユウキ&amp;#34;, &amp;#34;Lv.23 シンジ&amp;#34;, &amp;#34;Lv.23 ケント&amp;#34;, &amp;#34;Lv.22 リョウ&amp;#34;, &amp;#34;Lv.27 ダイキ&amp;#34;, &amp;#34;Lv.26 マサル&amp;#34;, &amp;#34;Lv.23 リク&amp;#34;, &amp;#34;Lv.22 サキ&amp;#34;, &amp;#34;Lv.22 ミサキ&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;At the lower left, add a skill menu titled &amp;#34;スキル&amp;#34; listing exactly 5 skills with SP costs: &amp;#34;ダッシュ突撃 SP 20&amp;#34;, &amp;#34;肩押し強奪 SP 25&amp;#34;, &amp;#34;荷物で場所確保 SP 15&amp;#34;, &amp;#34;ロープくぐり SP 10&amp;#34;, &amp;#34;本気の根性 SP 50&amp;#34;. Beneath that, add a dark description box explaining the highlighted skill &amp;#34;本気の根性&amp;#34; with the Japanese text: &amp;#34;気合で相手を威圧し、どかす! 一定時間、相手が怯みやすくなる! (バーストゲージを大きく消費する) 効果時間:10秒&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;At the bottom center, add an item menu titled &amp;#34;アイテム&amp;#34; with exactly 5 item slots showing icons and counts: a water bottle &amp;#34;x3&amp;#34;, a folded purple towel &amp;#34;x2&amp;#34;, a blue drawstring bag &amp;#34;x1&amp;#34;, a gray backpack &amp;#34;x1&amp;#34;, and a boxed meal &amp;#34;x2&amp;#34;. At the lower right, add a quest panel titled &amp;#34;クエスト&amp;#34; with the mission text &amp;#34;ショー開始までに最前列を死守しろ!&amp;#34; and condition text &amp;#34;条件:ライバルグループを全員後ろに押し戻せ!&amp;#34; and countdown text &amp;#34;ショー開始まで:02:30&amp;#34;. Beside it, add a mini-map titled &amp;#34;ミッキー広場MAP&amp;#34; showing red and blue dots for both teams in the plaza. Along the very bottom edge, include small controller prompts in Japanese for actions such as skill use, item use, grab/push, and dash.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use dramatic, saturated lighting, crisp detail, realistic clothing folds, authentic plaza stone pavement, and a high-end Japanese game screenshot look. The image should feel like a ridiculous but believable crossover between a real Tokyo DisneySea crowd photo and a competitive arcade battle game interface.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;宫崎骏风短片流程&#34;&gt;宫崎骏风短片流程
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/happycapyai/status/2049468986828697940&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元事例&lt;/a&gt; / 作者: &lt;a class=&#34;link&#34; href=&#34;https://x.com/happycapyai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@happycapyai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/047.webp&#34;
	width=&#34;832&#34;
	height=&#34;709&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/047_hu_c16f4cb372376a6f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/047_hu_b83a8c81f3c6afa3.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;宫崎骏风短片流程&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;117&#34;
		data-flex-basis=&#34;281px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完全なプロンプト：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Given a story concept, generate a complete Miyazaki-style animated short film: write a 30-shot script → generate watercolor storyboard images (gpt-image-1) → plan SOFT/HARD transitions → produce video clips with Seedance 2.0 using first/last-frame binding → synthesize the original ambient piano score → stitch everything into a final MP4 with music.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;カテゴリナビ: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;総目次&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;EC メインビジュアル&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;広告クリエイティブ&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;ポートレート写真&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;ポスターイラスト&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;キャラクターデザイン&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI とソーシャルメディア&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;比較とコミュニティ事例&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;元リポジトリリンク&#34;&gt;元リポジトリリンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;プロジェクトホーム&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/comparison.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;元カテゴリファイル&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>faster-whisper：より高速な Whisper 文字起こしエンジン</title>
        <link>https://knightli.com/ja/2026/05/01/faster-whisper-speech-to-text/</link>
        <pubDate>Fri, 01 May 2026 22:31:26 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/faster-whisper-speech-to-text/</guid>
        <description>&lt;p&gt;&lt;code&gt;faster-whisper&lt;/code&gt; は SYSTRAN がメンテナンスしている Whisper 推論実装です。CTranslate2 をバックエンドとして使い、Whisper に近い使い勝手を保ちながら、推論速度、メモリ使用量、デプロイの柔軟性をエンジニアリング用途に合わせやすくしています。&lt;/p&gt;
&lt;p&gt;すでに &lt;code&gt;openai/whisper&lt;/code&gt; を使ったことがあるなら、&lt;code&gt;faster-whisper&lt;/code&gt; はより本番運用向けの代替実装として理解できます。インターフェースはモデル読み込み、音声文字起こし、セグメント結果の取得を中心にしていますが、実行層はより高速で、CPU、GPU、量子化、バッチ処理に合わせて調整しやすくなっています。&lt;/p&gt;
&lt;h2 id=&#34;何を解決するのか&#34;&gt;何を解決するのか
&lt;/h2&gt;&lt;p&gt;Whisper の精度は優れていますが、元の実装をそのままデプロイすると、よく次のような問題に当たります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;長い音声の文字起こしに時間がかかる。&lt;/li&gt;
&lt;li&gt;GPU メモリ使用量が大きい。&lt;/li&gt;
&lt;li&gt;CPU でも動くが、速度が十分でないことがある。&lt;/li&gt;
&lt;li&gt;大量の音声や動画をバッチ処理するとき、スループットを上げにくい。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;faster-whisper&lt;/code&gt; は主にこれらの問題を改善するための実装です。プロジェクトの README では、同じ精度で &lt;code&gt;openai/whisper&lt;/code&gt; より最大 4 倍高速で、メモリ使用量も少ないと説明されています。8-bit 量子化を使うと、さらに速度を上げられます。&lt;/p&gt;
&lt;h2 id=&#34;インストール&#34;&gt;インストール
&lt;/h2&gt;&lt;p&gt;通常の Python 環境では、そのままインストールできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install faster-whisper
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;GPU を使う場合は、ローカルの CUDA、cuDNN、CTranslate2 のバージョンが合っているか確認してください。ここでつまずきやすいのは、GPU ドライバーと CUDA ランタイムの不一致です。コード自体に問題がなくても、モデル読み込み時や初回推論時に失敗することがあります。&lt;/p&gt;
&lt;h2 id=&#34;基本的な使い方&#34;&gt;基本的な使い方
&lt;/h2&gt;&lt;p&gt;最小構成の例はシンプルです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;faster_whisper&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WhisperModel&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;model_size&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;large-v3&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WhisperModel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;device&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;cuda&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;compute_type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;float16&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;segments&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;info&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;transcribe&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;audio.mp3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;beam_size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Detected language &amp;#39;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%s&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#39; with probability &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;info&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;language&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;info&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;language_probability&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segments&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%.2f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;s -&amp;gt; &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%.2f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;s] &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%s&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;start&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;end&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;主なパラメータは次の通りです。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;パラメータ&lt;/th&gt;
          &lt;th&gt;役割&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;model_size&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;small&lt;/code&gt;、&lt;code&gt;medium&lt;/code&gt;、&lt;code&gt;large-v3&lt;/code&gt; などの Whisper モデルサイズを選ぶ&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;device&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;推論デバイス。よく使う値は &lt;code&gt;cuda&lt;/code&gt; または &lt;code&gt;cpu&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;compute_type&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;計算精度。例：&lt;code&gt;float16&lt;/code&gt;、&lt;code&gt;int8_float16&lt;/code&gt;、&lt;code&gt;int8&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;beam_size&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;デコード時の探索幅。大きいほど安定しやすいが遅くなる&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;ローカルで素早く文字起こししたい場合は、まず &lt;code&gt;medium&lt;/code&gt; または &lt;code&gt;large-v3&lt;/code&gt; から試すとよいです。GPU メモリが厳しい場合は、量子化を検討します。&lt;/p&gt;
&lt;h2 id=&#34;cpu-と-gpu-の選び方&#34;&gt;CPU と GPU の選び方
&lt;/h2&gt;&lt;p&gt;NVIDIA GPU がある場合は、まず次の設定を使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WhisperModel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;large-v3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;device&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;cuda&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;compute_type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;float16&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;GPU メモリが足りない場合は、次のように変更できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WhisperModel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;large-v3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;device&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;cuda&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;compute_type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;int8_float16&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;GPU がない場合は、CPU で実行できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WhisperModel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;small&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;device&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;cpu&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;compute_type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;int8&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;CPU モードは軽いタスク、低頻度のバックグラウンド処理、または GPU のないサーバーに向いています。大量の長い音声を処理するなら、やはり GPU のほうが適しています。&lt;/p&gt;
&lt;h2 id=&#34;バッチ文字起こし&#34;&gt;バッチ文字起こし
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;faster-whisper&lt;/code&gt; はバッチ文字起こしにも対応しています。大量の短い音声を処理する場合や、GPU のスループットを上げたい場合に便利です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;faster_whisper&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WhisperModel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;BatchedInferencePipeline&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WhisperModel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;turbo&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;device&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;cuda&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;compute_type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;float16&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;batched_model&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;BatchedInferencePipeline&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;segments&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;info&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;batched_model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;transcribe&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;audio.mp3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;batch_size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segments&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%.2f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;s -&amp;gt; &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%.2f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;s] &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%s&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;start&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;end&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;batch_size&lt;/code&gt; は大きければよいわけではありません。スループットは上がりますが、GPU メモリの負荷も増えます。実際のデプロイでは、4、8、16 のような値を段階的に試し、安定して動く点を探すのがおすすめです。&lt;/p&gt;
&lt;h2 id=&#34;vad-と単語単位のタイムスタンプ&#34;&gt;VAD と単語単位のタイムスタンプ
&lt;/h2&gt;&lt;p&gt;音声文字起こしでは、長い無音、背景ノイズ、字幕の位置合わせがよく問題になります。&lt;code&gt;faster-whisper&lt;/code&gt; には、文字起こし時にそのまま有効化できる実用的なパラメータがあります。&lt;/p&gt;
&lt;p&gt;VAD を有効化する例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;segments&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;info&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;transcribe&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;audio.mp3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;vad_filter&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;単語単位のタイムスタンプを取得する例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;segments&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;info&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;transcribe&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;audio.mp3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;word_timestamps&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segments&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;word&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;words&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%.2f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;s -&amp;gt; &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%.2f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;s] &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%s&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;word&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;start&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;word&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;end&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;word&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;word&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;VAD は、会議録音、ポッドキャスト、ライブ配信のアーカイブなど、長い無音を含む音声に向いています。単語単位のタイムスタンプは、字幕生成、逐語録の校正、プレイヤー上での単語ハイライトに便利です。&lt;/p&gt;
&lt;h2 id=&#34;モデルの選び方&#34;&gt;モデルの選び方
&lt;/h2&gt;&lt;p&gt;モデル選びでは、主に精度、速度、マシンリソースを見ます。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;場面&lt;/th&gt;
          &lt;th&gt;推奨&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;すばやく試す&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;small&lt;/code&gt; または &lt;code&gt;medium&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;中国語コンテンツで品質優先&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;large-v3&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPU メモリが厳しい&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;int8_float16&lt;/code&gt; またはより小さいモデル&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CPU でバックグラウンド処理&lt;/td&gt;
          &lt;td&gt;小さいモデルと &lt;code&gt;int8&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;大量の短い音声&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;BatchedInferencePipeline&lt;/code&gt; を試す&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;中国語音声では、品質を重視するならまず &lt;code&gt;large-v3&lt;/code&gt; を試すのがおすすめです。マシンへの負荷が大きすぎる場合は、モデルサイズを下げるか量子化を使います。最初から速度だけを見るのは避けたほうがよいです。文字起こし品質が下がると、手作業の校正時間で推論時間の節約分が消えてしまうことがあります。&lt;/p&gt;
&lt;h2 id=&#34;向いている用途&#34;&gt;向いている用途
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;faster-whisper&lt;/code&gt; は次のようなタスクに向いています。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;動画字幕の生成。&lt;/li&gt;
&lt;li&gt;ポッドキャスト、会議、講義録音の文字起こし。&lt;/li&gt;
&lt;li&gt;Bilibili、YouTube などの動画をローカルで文字起こしするワークフロー。&lt;/li&gt;
&lt;li&gt;音声の一括アーカイブと検索。&lt;/li&gt;
&lt;li&gt;音声コンテンツを RAG、ナレッジベース、検索システムに渡す処理。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;話者分離、要約、チャプター分割のような上位タスクを直接解決するものではありませんが、安定した文字起こし層として使えます。その後に pyannote で話者分離を行い、LLM で要約や構造化整理を行う構成にできます。&lt;/p&gt;
&lt;h2 id=&#34;デプロイ時のすすめ方&#34;&gt;デプロイ時のすすめ方
&lt;/h2&gt;&lt;p&gt;実際に使うときは、次の順番で調整するとよいです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まず 1 から 3 分程度の音声で、環境が正しく動くか確認する。&lt;/li&gt;
&lt;li&gt;対象言語と実際の音質に近いサンプルで精度を確認する。&lt;/li&gt;
&lt;li&gt;GPU メモリ使用量を見て、量子化を有効にするか決める。&lt;/li&gt;
&lt;li&gt;長い音声は先に分割し、失敗時にすべてを再実行しなくて済むようにする。&lt;/li&gt;
&lt;li&gt;結果は TXT と SRT の両方で保存し、後から校正しやすくする。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;サーバータスクでは、リクエストごとにモデルを読み込むのではなく、サービス起動時にモデルを読み込むのがよいです。モデル読み込みには時間がかかり、頻繁に読み込むと GPU メモリ管理も不安定になりやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;faster-whisper&lt;/code&gt; の価値は、Whisper を長期運用しやすい文字起こしコンポーネントにする点にあります。別のモデルに置き換えるのではなく、より効率のよい推論バックエンドとエンジニアリング向けのインターフェースを使う、という位置づけです。&lt;/p&gt;
&lt;p&gt;個人のワークフローでは、動画、会議、講義音声をすばやくテキスト化できます。サーバー側のタスクでは、GPU、量子化、バッチ処理、VAD を組み合わせて性能を調整できます。マシン環境が正しく設定されていれば、安定した一括音声文字起こしには元の Whisper 実装より扱いやすい選択肢になります。&lt;/p&gt;
&lt;p&gt;プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/SYSTRAN/faster-whisper&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/SYSTRAN/faster-whisper&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cline で DeepSeek V4 Pro を呼び出す方法</title>
        <link>https://knightli.com/ja/2026/05/01/use-deepseek-v4-pro-in-cline/</link>
        <pubDate>Fri, 01 May 2026 20:59:06 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/use-deepseek-v4-pro-in-cline/</guid>
        <description>&lt;p&gt;Cline はすでに OpenAI Compatible Provider をサポートしています。
DeepSeek API も OpenAI SDK 風の呼び出しに対応しているため、&lt;code&gt;deepseek-v4-pro&lt;/code&gt; を Cline に接続するのは難しくありません。OpenAI Compatible を選び、DeepSeek の Base URL、API Key、モデル名を入力すればよいだけです。&lt;/p&gt;
&lt;p&gt;以下では、VS Code 拡張機能の画面と Cline CLI の 2 通りで整理します。&lt;/p&gt;
&lt;h2 id=&#34;deepseek-api-key-を準備する&#34;&gt;DeepSeek API Key を準備する
&lt;/h2&gt;&lt;p&gt;まず DeepSeek の開放プラットフォームで API Key を作成します。&lt;/p&gt;
&lt;p&gt;必要な値は 3 つです。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;項目&lt;/th&gt;
          &lt;th&gt;入力内容&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Provider&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;OpenAI Compatible&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Base URL&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;https://api.deepseek.com&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Model ID&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;DeepSeek の公式ドキュメントでは、V4 シリーズは既存の OpenAI 互換インターフェースを使い、&lt;code&gt;base_url&lt;/code&gt; は &lt;code&gt;https://api.deepseek.com&lt;/code&gt; のまま、呼び出し時に &lt;code&gt;model&lt;/code&gt; を &lt;code&gt;deepseek-v4-pro&lt;/code&gt; または &lt;code&gt;deepseek-v4-flash&lt;/code&gt; に設定すると説明されています。&lt;/p&gt;
&lt;h2 id=&#34;cline-拡張機能で設定する&#34;&gt;Cline 拡張機能で設定する
&lt;/h2&gt;&lt;p&gt;VS Code の Cline 拡張機能を使っている場合は、次の手順で設定できます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;VS Code サイドバーの Cline を開く。&lt;/li&gt;
&lt;li&gt;Cline の設定またはモデル設定ページに入る。&lt;/li&gt;
&lt;li&gt;Provider で &lt;code&gt;OpenAI Compatible&lt;/code&gt; を選ぶ。&lt;/li&gt;
&lt;li&gt;API Key に DeepSeek API Key を入力する。&lt;/li&gt;
&lt;li&gt;Base URL に次を入力する。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://api.deepseek.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ol start=&#34;6&#34;&gt;
&lt;li&gt;Model ID に次を入力する。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek-v4-pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ol start=&#34;7&#34;&gt;
&lt;li&gt;設定を保存し、Cline のチャット画面に戻って簡単なタスクでテストする。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;まずは低リスクな読み取り専用タスクを試すとよいです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;現在のプロジェクトのディレクトリ構造を読み取り、このプロジェクトがどの種類のものか要約してください。ファイルは一切変更しないでください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;正常に読み取りと回答ができれば、モデルの接続は通っています。&lt;/p&gt;
&lt;h2 id=&#34;cline-cli-で設定する&#34;&gt;Cline CLI で設定する
&lt;/h2&gt;&lt;p&gt;Cline CLI を使う場合は、&lt;code&gt;cline provider configure openai-compatible&lt;/code&gt; で対話式設定に入れます。&lt;/p&gt;
&lt;p&gt;例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cline provider configure openai-compatible
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;対話中に次を入力します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: sk-...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: https://api.deepseek.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model ID: deepseek-v4-pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;設定後、読み取り専用タスクでテストできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cline &lt;span class=&#34;s2&#34;&gt;&amp;#34;Summarize this repository structure without changing files.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;まずコストを下げたい場合は、Model ID を一時的に次へ変更してもよいです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek-v4-flash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;複雑な計画、事実確認、複数ツールの協調、高リスクなコード変更が必要になったら、&lt;code&gt;deepseek-v4-pro&lt;/code&gt; に戻します。&lt;/p&gt;
&lt;h2 id=&#34;推奨するモデルの使い分け&#34;&gt;推奨するモデルの使い分け
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 Pro と Flash は、役割を分けて使うほうが向いています。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;モデル&lt;/th&gt;
          &lt;th&gt;向いている場面&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;日常的なコード読解、小さな修正の一括処理、スクリプト生成、コンテキスト整理、低リスクなフロントエンド修正&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;アーキテクチャ設計、複雑な bug、複数ファイルのリファクタリング、事実確認、複数ツール呼び出し、高リスクな変更&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Cline のような Agent ツールでは、主なコストは長いコンテキスト、繰り返しのファイル読み取り、計画生成、複数ラウンドのツール呼び出しから発生します。
軽いタスクなら Flash で量をこなし、より強い判断が必要なときに Pro へ切り替えるのが現実的です。&lt;/p&gt;
&lt;h2 id=&#34;コンテキスト長はどう設定するか&#34;&gt;コンテキスト長はどう設定するか
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 Pro と Flash はどちらも長いコンテキストをサポートします。
Cline で context window を手動入力する必要がある場合は、DeepSeek 公式モデルページにある 1M コンテキストを目安にできます。&lt;/p&gt;
&lt;p&gt;実際には、最初からすべてのファイルをコンテキストに入れることはおすすめしません。
Cline はタスクに応じてファイルを読み取るため、通常は次の流れがよいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;まずディレクトリ構造を確認させる；&lt;/li&gt;
&lt;li&gt;次に関連ファイルを特定させる；&lt;/li&gt;
&lt;li&gt;最後に対象ファイルだけを中心に修正させる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このほうが Token を節約でき、タスクの境界も明確に保ちやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;よくある問題&#34;&gt;よくある問題
&lt;/h2&gt;&lt;h3 id=&#34;1-モデルが存在しないと表示される&#34;&gt;1. モデルが存在しないと表示される
&lt;/h3&gt;&lt;p&gt;まず Model ID が次のように書かれているか確認します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek-v4-pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;DeepSeek V4 Pro&lt;/code&gt;、&lt;code&gt;deepseek-v4&lt;/code&gt;、その他の表示名を書かないでください。&lt;/p&gt;
&lt;h3 id=&#34;2-401-または認証失敗が出る&#34;&gt;2. 401 または認証失敗が出る
&lt;/h3&gt;&lt;p&gt;API Key を確認します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;完全にコピーできているか；&lt;/li&gt;
&lt;li&gt;余計な空白が入っていないか；&lt;/li&gt;
&lt;li&gt;Cline が現在使っている provider 設定に入力されているか；&lt;/li&gt;
&lt;li&gt;DeepSeek アカウントに利用可能な残高があるか。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-接続失敗と表示される&#34;&gt;3. 接続失敗と表示される
&lt;/h3&gt;&lt;p&gt;Base URL を確認します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://api.deepseek.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;末尾に &lt;code&gt;/v1/chat/completions&lt;/code&gt; を追加しないでください。
Cline の OpenAI Compatible Provider が互換インターフェースのリクエストを自分で組み立てます。&lt;/p&gt;
&lt;h3 id=&#34;4-cline-の呼び出しが高くつく&#34;&gt;4. Cline の呼び出しが高くつく
&lt;/h3&gt;&lt;p&gt;日常タスクは &lt;code&gt;deepseek-v4-flash&lt;/code&gt; に切り替え、複雑なタスクだけ &lt;code&gt;deepseek-v4-pro&lt;/code&gt; を使うとよいです。&lt;/p&gt;
&lt;p&gt;また、タスク説明はできるだけ明確に書きます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ログインページ関連ファイルだけを修正してください。無関係なモジュールはリファクタリングしないでください。まず計画を提示し、確認後にコードを変更してください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Agent タスクで最も危ないのは境界が曖昧なことです。
境界が明確なほど、読むファイルが少なくなり、ツール呼び出しも減り、コストを制御しやすくなります。&lt;/p&gt;
&lt;h3 id=&#34;5-reasoning_content-must-be-passed-back-エラー&#34;&gt;5. reasoning_content must be passed back エラー
&lt;/h3&gt;&lt;p&gt;次のようなエラーが出る場合があります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;message&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;400 The `reasoning_content` in the thinking mode must be passed back to the API.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;invalid_request_error&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;modelId&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-pro&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは通常、Key、残高、Base URL の問題ではありません。DeepSeek V4 Pro の thinking mode と、現在のクライアント側の複数ラウンドのツール呼び出し履歴が一致していないことが原因です。&lt;/p&gt;
&lt;p&gt;DeepSeek の公式ドキュメントでは、次のように説明されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;thinking mode はデフォルトで &lt;code&gt;enabled&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;thinking mode では &lt;code&gt;reasoning_content&lt;/code&gt; が返る；&lt;/li&gt;
&lt;li&gt;あるラウンドで tool call が発生した場合、以降のリクエストではその assistant message 内の &lt;code&gt;reasoning_content&lt;/code&gt; を API に一緒に返す必要がある；&lt;/li&gt;
&lt;li&gt;クライアントが正しく返さない場合、400 が返る。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cline が OpenAI Compatible Provider 経由で接続している場合、現在のバージョンが DeepSeek の &lt;code&gt;reasoning_content&lt;/code&gt; を完全に保持して返していないと、2 ラウンド目やツール呼び出し後にこのエラーが出ることがあります。&lt;/p&gt;
&lt;p&gt;試す順序は次のとおりです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まず Cline を最新版に更新する；&lt;/li&gt;
&lt;li&gt;通常の &lt;code&gt;OpenAI&lt;/code&gt; provider ではなく、&lt;code&gt;OpenAI Compatible&lt;/code&gt; を使っていることを確認する；&lt;/li&gt;
&lt;li&gt;Cline がカスタム request body をサポートしている場合、thinking mode を無効化してみる：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;thinking&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;disabled&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;Cline が追加 body パラメータをサポートしていない場合は、当面この問題を起こさないモデルまたは互換プロキシサービスを使う；&lt;/li&gt;
&lt;li&gt;Cline が DeepSeek V4 の &lt;code&gt;reasoning_content&lt;/code&gt; 返送に対応したら、&lt;code&gt;deepseek-v4-pro&lt;/code&gt; に戻す。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;注意点として、thinking mode を無効にすると複雑な推論能力の一部は落ちますが、クライアントが &lt;code&gt;reasoning_content&lt;/code&gt; を返さない互換性問題は回避できます。&lt;/p&gt;
&lt;h2 id=&#34;そのままコピーできる設定&#34;&gt;そのままコピーできる設定
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Provider: OpenAI Compatible
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: sk-あなたの DeepSeek API Key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: https://api.deepseek.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model ID: deepseek-v4-pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;低コストモードにする場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Provider: OpenAI Compatible
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: sk-あなたの DeepSeek API Key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: https://api.deepseek.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model ID: deepseek-v4-flash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Cline で DeepSeek V4 Pro を呼び出す要点は 3 つだけです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Provider で &lt;code&gt;OpenAI Compatible&lt;/code&gt; を選ぶ；&lt;/li&gt;
&lt;li&gt;Base URL に &lt;code&gt;https://api.deepseek.com&lt;/code&gt; を入力する；&lt;/li&gt;
&lt;li&gt;Model ID に &lt;code&gt;deepseek-v4-pro&lt;/code&gt; を入力する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;設定後は、まず読み取り専用タスクでテストし、それから実際のコード変更を任せるのがおすすめです。
Agent タスクを頻繁に実行するなら、Flash と Pro を分けて使うとよいです。Flash は高頻度の軽量タスク、Pro は複雑な判断とフォールバックを担当します。&lt;/p&gt;
&lt;p&gt;参考情報：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.cline.bot/provider-config/openai-compatible&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cline Docs：OpenAI Compatible Provider&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.cline.bot/provider-config/overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cline Docs：Provider Configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/news/news202605&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek API Docs：News&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/quick_start/pricing/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek API Docs：Models &amp;amp; Pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>DeepSeek V4 の値下げは AI Agent のコストモデルをどう書き換えるか</title>
        <link>https://knightli.com/ja/2026/05/01/deepseek-v4-price-cuts-ai-agent-economics/</link>
        <pubDate>Fri, 01 May 2026 19:47:47 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/deepseek-v4-price-cuts-ai-agent-economics/</guid>
        <description>&lt;p&gt;DeepSeek V4 の発表は、特別に大きな話題を作ったわけではありません。
大規模な発表会もなく、すべての競合を一目で圧倒するようなベンチマークの物語もありませんでした。
しかし数日後、本当に業界へ影響する部分が見え始めました。連続的な値下げです。&lt;/p&gt;
&lt;p&gt;今回の変化で重要なのは、「モデルが少し強くなった」ことではなく、「利用コストが別の水準まで下がった」ことです。
Token 価格が、普通の Agent タスクなら数毛から数元で完了できるほど低くなると、多くの Coding Plan や Token Plan のビジネスロジックは見直しを迫られます。&lt;/p&gt;
&lt;h2 id=&#34;発表当日は爆発的ではなかった&#34;&gt;発表当日は爆発的ではなかった
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 に対する最初の反応は、そこまで熱狂的ではありませんでした。
多くの人は R1 のような強い衝撃を期待していました。ベンチマークの全面的なリード、国産計算資源の検証、マルチモーダルと Agent 能力の同時爆発です。
しかし実際に発表されると、それは堅実なアップグレードに近いものでした。&lt;/p&gt;
&lt;p&gt;V4 Pro は確かに強いモデルです。特にコード、数学、長文コンテキスト、agentic coding では良い性能を見せます。
ただし、同種のモデルを一瞬で色あせさせるような製品ではありません。
そのため発表当日の世論には少し気まずさがありました。褒めたいけれど、十分に爆発的な切り口が見つかりにくかったのです。&lt;/p&gt;
&lt;p&gt;本当の転換点は発表当日ではなく、その後の価格調整でした。&lt;/p&gt;
&lt;h2 id=&#34;連続値下げこそが重要&#34;&gt;連続値下げこそが重要
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 の発表後、価格は連続して下がり始めました。
DeepSeek の公式価格ページと元記事の整理によると、当時のおおよその価格は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DeepSeek V4 Flash：入力 100 万 Token あたり約 1 元。キャッシュヒット後は 100 万 Token あたり約 2 分；&lt;/li&gt;
&lt;li&gt;DeepSeek V4 Pro：入力 100 万 Token あたり約 3 元。キャッシュヒット後は 100 万 Token あたり約 2.5 分；&lt;/li&gt;
&lt;li&gt;全シリーズの入力キャッシュヒット価格は、初回価格の 1/10 に低下；&lt;/li&gt;
&lt;li&gt;V4 Pro は一時 75% 割引期間にあり、割引は 2026 年 5 月 31 日 23:59 まで延長されました。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;米ドルの API 価格で見ると、さらに直感的です。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;モデル&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;キャッシュヒット入力&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;非キャッシュ入力&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;出力&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;コンテキスト&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0028 / 100万 Token&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.14 / 100万 Token&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.28 / 100万 Token&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1M&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; プロモーション価格&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.003625 / 100万 Token&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.435 / 100万 Token&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.87 / 100万 Token&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1M&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; 通常価格&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0145 / 100万 Token&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$1.74 / 100万 Token&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$3.48 / 100万 Token&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1M&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;ここで注意すべき点が 2 つあります。&lt;/p&gt;
&lt;p&gt;第一に、V4 Pro の $0.435 / $0.87 はプロモーション価格であり、長期的な通常価格ではありません。
DeepSeek の公式説明では、この 75% 割引は 2026 年 5 月 31 日 15:59 UTC まで延長されています。&lt;/p&gt;
&lt;p&gt;第二に、Agent のコストモデルで重要なのはキャッシュヒット価格です。
Flash のキャッシュヒット入力は $0.0028 / 100万 Token まで低く、Pro のプロモーション期間中のキャッシュヒット入力は $0.003625 / 100万 Token です。
これは、繰り返し使われるプロジェクトコンテキスト、ツール定義、システムプロンプト、履歴要約が、完全な入力価格で課金されなくなることを意味します。&lt;/p&gt;
&lt;p&gt;この価格のもっとも重要な点は、多くのタスクで Token コストが「気になりにくくなる」ことです。
以前の開発者は、1 回の Agent タスクが大量のコンテキストを消費し、コードを何度も読み書きし、ツールを頻繁に呼び出すことを心配していました。
今はキャッシュヒット率が十分に高ければ、コストをかなり低く抑えられます。&lt;/p&gt;
&lt;h2 id=&#34;gptclaude-との価格比較&#34;&gt;GPT、Claude との価格比較
&lt;/h2&gt;&lt;p&gt;DeepSeek 自体の価格だけを見ても、差はまだ感じにくいかもしれません。
同時期によく使われるクローズドモデルと並べると、違いはより明確になります。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;モデル&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;入力&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;キャッシュ入力&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;出力&lt;/th&gt;
          &lt;th&gt;適した場面&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.14 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0028 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.28 / M&lt;/td&gt;
          &lt;td&gt;高頻度 Agent、通常の coding、バッチタスク&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; プロモーション価格&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.435 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.003625 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.87 / M&lt;/td&gt;
          &lt;td&gt;複雑な coding、計画、事実確認&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; 通常価格&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$1.74 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0145 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$3.48 / M&lt;/td&gt;
          &lt;td&gt;プロモーション終了後の Pro コスト基準&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$5 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.50 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$30 / M&lt;/td&gt;
          &lt;td&gt;高品質な複雑タスク、汎用推論&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$2.50 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.25 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$15 / M&lt;/td&gt;
          &lt;td&gt;プログラミングと専門タスクの中位選択肢&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4 mini&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.75 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.075 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$4.50 / M&lt;/td&gt;
          &lt;td&gt;低コストの汎用/サブタスクモデル&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Opus 4.7&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$5 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.50 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$25 / M&lt;/td&gt;
          &lt;td&gt;高品質な執筆、複雑推論、長時間タスク&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Sonnet 4.6&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$3 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.30 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$15 / M&lt;/td&gt;
          &lt;td&gt;プログラミング、Agent、総合タスク&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Haiku 4.5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$1 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.10 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$5 / M&lt;/td&gt;
          &lt;td&gt;軽量タスク、要約、分類&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;この表で最も目立つのは出力価格です。
Agent はコンテキストを読むだけでなく、計画、パッチ、説明、ログ、次のアクションを継続的に生成します。
出力が多い場合、DeepSeek V4 Pro のプロモーション価格 $0.87 / M は、GPT-5.5 の $30 / M や Claude Sonnet 4.6 の $15 / M と比べて、差がどんどん広がります。&lt;/p&gt;
&lt;p&gt;V4 Pro の通常出力価格 $3.48 / M で計算しても、GPT-5.4、GPT-5.5、Claude Sonnet / Opus より明らかに低い水準です。
タスクを Flash で処理できるなら、出力価格はさらに $0.28 / M まで下がります。&lt;/p&gt;
&lt;p&gt;キャッシュ入力の差はさらに極端です。
DeepSeek V4 Flash のキャッシュ入力は $0.0028 / M である一方、GPT-5.5 と Claude Opus 4.7 のキャッシュ入力はいずれも $0.50 / M です。
これは同じ桁の話ではありません。
同じコードリポジトリを繰り返し読む Agent にとって、この差は通常のチャットよりも重要です。&lt;/p&gt;
&lt;h2 id=&#34;agent-タスクが特に影響を受ける理由&#34;&gt;Agent タスクが特に影響を受ける理由
&lt;/h2&gt;&lt;p&gt;AI Agent は普通のチャットとは違います。
普通のチャットはたいてい一問一答で、入力コンテキストは比較的限られています。
Agent タスクは、プロジェクトファイルを繰り返し読み、計画を生成し、ツールを呼び出し、結果を確認し、さらにコードを修正します。&lt;/p&gt;
&lt;p&gt;この種のタスクには 2 つの特徴があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Token 消費が大きい；&lt;/li&gt;
&lt;li&gt;繰り返しコンテキストが多い。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2 点目が非常に重要です。
コードプロジェクトでは、モデルは同じファイル群、ディレクトリ構造、エラーログ、変更結果を何度も読みます。
プラットフォームがキャッシュヒットをサポートしていれば、繰り返し入力のコストは大幅に下がります。&lt;/p&gt;
&lt;p&gt;元記事では実際の体験として、DeepSeek V4 Pro と Flash を Claude Code のようなツールに接続し、プロンプトリポジトリを取得してローカル検索サイトを作らせた例が紹介されています。
タスクは最終的に完了し、総コストは 8 毛強ほどで、そのうち Pro のキャッシュヒット率は 98.7% に達しました。&lt;/p&gt;
&lt;p&gt;この例は現実的な問題を示しています。Agent タスクが「同じプロジェクトを中心に繰り返し作業する」ほど、キャッシュヒットの価値は高くなります。
Web サイト生成、bug 修正、フロントエンド修正が数毛から数元で済むなら、サブスクリプションプランの魅力は下がります。&lt;/p&gt;
&lt;p&gt;簡略化したタスクで差を見積もることもできます。
1 回の coding agent タスクが次を含むと仮定します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;50 万 Token の入力。そのうち 80% がキャッシュヒット可能；&lt;/li&gt;
&lt;li&gt;5 万 Token の出力；&lt;/li&gt;
&lt;li&gt;ツール呼び出し、検索、プラットフォーム上乗せ分は計算せず、モデル Token コストだけを見る。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;おおよそのコストは次のとおりです。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;モデル&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;推定コスト&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek V4 Flash&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;約 $0.03&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek V4 Pro プロモーション価格&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;約 $0.09&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek V4 Pro 通常価格&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;約 $0.36&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4 mini&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;約 $0.30&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;約 $1.01&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;約 $1.75&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Sonnet 4.6&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;約 $1.11&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Opus 4.7&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;約 $1.65&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;この見積もりは、DeepSeek がすべてのタスクで優れているという意味ではありません。
モデル品質、ツール呼び出しの安定性、長文コンテキスト検索能力、コードスタイル、事実の信頼性は個別に評価する必要があります。
ただしコスト面では、DeepSeek V4 は「Agent にもう数ラウンド走らせる」ことの限界コストをかなり低くしました。
これにより開発者は、毎回 Token 請求を心配するのではなく、より長いワークフロー、より頻繁なセルフチェック、より多くの候補案を設計しやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;coding-plan-と-token-plan-の違い&#34;&gt;Coding Plan と Token Plan の違い
&lt;/h2&gt;&lt;p&gt;多くの AI 製品はいま、Coding Plan と Token Plan という 2 種類のプランを提供しています。&lt;/p&gt;
&lt;p&gt;大まかな違いは次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Coding Plan は通常、主にプログラミング向け；&lt;/li&gt;
&lt;li&gt;Token Plan は通常、STT、TTS、画像生成、検索、embedding、RAG など、より多くの機能を含む；&lt;/li&gt;
&lt;li&gt;STT は音声から文字への変換；&lt;/li&gt;
&lt;li&gt;TTS は文字から音声への変換；&lt;/li&gt;
&lt;li&gt;Coding Plan はユーザーをプログラミング場面に制限しがちで、他の機能は別途購入が必要になることが多い。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ビジネスの観点では、Coding Plan はビュッフェに近いものです。
ユーザーは固定料金を前払いし、ベンダーは大多数の人が枠を使い切らないことに賭けます。
多く使う人も少なく使う人もいて、平均するとプラットフォームは利益を出せます。&lt;/p&gt;
&lt;p&gt;しかし従量制の Token 価格が十分に低くなると、ユーザーは計算し始めます。なぜ必ずプランを買わなければならないのか。
1 か月の実際の利用コストが数元から十数元程度なら、40 元や 200 元のプランは必ずしも割に合いません。&lt;/p&gt;
&lt;h2 id=&#34;値下げがサブスクリプションモデルを揺さぶる理由&#34;&gt;値下げがサブスクリプションモデルを揺さぶる理由
&lt;/h2&gt;&lt;p&gt;サブスクリプションプランが成立するには前提があります。ユーザーが単発利用を高いと感じるか、毎回の呼び出しコストを計算したくないことです。
Token 価格が高いとき、プランは安心に見えます。
Token 価格がほとんど気にならないほど低くなると、従量課金のほうが自然になります。&lt;/p&gt;
&lt;p&gt;DeepSeek V4 の値下げは、底のコストを見せたようなものです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agent タスクは非常に安くできる；&lt;/li&gt;
&lt;li&gt;長文コンテキストは必ずしも使えないほど高くない；&lt;/li&gt;
&lt;li&gt;キャッシュヒットでコストを大きく下げられる；&lt;/li&gt;
&lt;li&gt;普通の開発者は固定サブスクリプションを必ずしも必要としない；&lt;/li&gt;
&lt;li&gt;モデルの入口は「プラン型プラットフォーム」から「低価格 API」へ移り得る。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは Coding Plan を提供するプラットフォームにとって不快な変化です。
従量呼び出しのほうが安く自由だとユーザーが気づけば、ひとつのプラットフォームのプランに縛られる必要はありません。&lt;/p&gt;
&lt;h2 id=&#34;flash-と-pro-をどう選ぶか&#34;&gt;Flash と Pro をどう選ぶか
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 の実用的な考え方のひとつは、Flash と Pro を分担して使うことです。&lt;/p&gt;
&lt;p&gt;Flash は高頻度、軽量、反復可能なタスクに向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;bug 修正；&lt;/li&gt;
&lt;li&gt;フロントエンド作成；&lt;/li&gt;
&lt;li&gt;スクリプト作成；&lt;/li&gt;
&lt;li&gt;通常のコード理解；&lt;/li&gt;
&lt;li&gt;長いコンテキスト内の一般的な情報整理；&lt;/li&gt;
&lt;li&gt;大量のサブタスク実行。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Flash は安く、速く、同じく長いコンテキストをサポートします。
日常的な coding agent では、多くのタスクで最初から Pro を使う必要はありません。&lt;/p&gt;
&lt;p&gt;Pro は複雑な判断やフォールバックタスクに向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;複数ラウンドの計画；&lt;/li&gt;
&lt;li&gt;複雑な Agent ワークフロー；&lt;/li&gt;
&lt;li&gt;複数回の function call；&lt;/li&gt;
&lt;li&gt;事実確認；&lt;/li&gt;
&lt;li&gt;財務・経済リサーチ；&lt;/li&gt;
&lt;li&gt;より強い知識と判断力が必要なコンテンツ生成；&lt;/li&gt;
&lt;li&gt;高リスクなコード変更。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;合理的な構成は、Flash が量をこなし、Pro がフォールバックを担当する形です。
通常タスクはまず Flash で始め、長期計画、複雑な判断、事実確認、複数ツールの協調が必要になったら Pro に切り替える。
こうすればコストを抑えつつ、モデル品質も保てます。&lt;/p&gt;
&lt;h2 id=&#34;deepseek-がこの価格を出せる理由&#34;&gt;DeepSeek がこの価格を出せる理由
&lt;/h2&gt;&lt;p&gt;DeepSeek は多くの大手企業と事業構造が異なります。
EC、SNS、ショート動画、クラウドコンピューティング、スマートフォン、自動車、オフィススイート、OS、ブラウザ、大規模な企業向け SaaS エコシステムを持っていません。&lt;/p&gt;
&lt;p&gt;つまり、ユーザーを完全なプラットフォーム内に閉じ込める必要がありません。
安いテキストモデル能力だけを売ることができます。他の機能は、必要に応じてどこを呼び出してもよいのです。&lt;/p&gt;
&lt;p&gt;大手企業のロジックは通常異なります。
その Coding Plan や Token Plan を買うと、クラウド、検索、画像生成、音声、データベース、開発ツールのエコシステムへ引き込まれます。
プランは単純にモデルを売るものではなく、ユーザーの入口を取りに行くものです。&lt;/p&gt;
&lt;p&gt;DeepSeek の戦い方はより直接的です。テキストモデルの価格を下げ、Agent のデフォルトモデル入口になることを狙います。
デフォルト入口を取れれば、多くの開発者とツールチェーンは自然にそれへ適応していきます。&lt;/p&gt;
&lt;h2 id=&#34;オープンモデルとデフォルト入口&#34;&gt;オープンモデルとデフォルト入口
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 がオープンモデル路線を維持するなら、サードパーティのクラウドベンダーやプラットフォームが自前でデプロイし、サービスを提供する可能性があります。
DeepSeek にとって、それは普及でもあり、同時に流量の分散でもあります。&lt;/p&gt;
&lt;p&gt;低価格の公式 API の意味はここにあります。
公式価格がすでに十分低ければ、他のプラットフォームがデプロイできたとしても、価格面で明確な優位を出すのは難しくなります。
ユーザーは、デフォルトで安く安定した入口を直接使う傾向になります。&lt;/p&gt;
&lt;p&gt;Agent ツールでは特にそうです。
Agent タスクは長文コンテキスト、キャッシュ、ツール呼び出し、安定したスループットに依存します。
あるモデルがこれらの場面で十分安ければ、デフォルト選択肢になる可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;coding-plan-は完全に無用ではない&#34;&gt;Coding Plan は完全に無用ではない
&lt;/h2&gt;&lt;p&gt;これは Coding Plan がすぐ消えるという意味ではありません。
それに合うユーザーはまだいます。&lt;/p&gt;
&lt;p&gt;もし一部のユーザーが本当に高頻度で、毎日プランの上限まで使うなら、固定サブスクリプションはまだ得かもしれません。
ビュッフェと同じで、誰も元を取れないなら、ユーザーも買おうとはしません。&lt;/p&gt;
&lt;p&gt;ただし問題は、ほとんどのユーザーがそのような極端な高頻度ユーザーではないことです。
低頻度ユーザー、軽量な開発者、たまにスクリプトを書いたりプロジェクトを直したりする人には、従量課金のほうが向いています。
DeepSeek が従量コストを下げると、プランの魅力は弱まります。&lt;/p&gt;
&lt;p&gt;今後は、より階層化された選択が起こりやすくなります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;高頻度のヘビーユーザーは Coding Plan を買い続ける；&lt;/li&gt;
&lt;li&gt;普通のユーザーは低価格 API へ移る；&lt;/li&gt;
&lt;li&gt;Agent ツールはタスクに応じて Flash / Pro を自動選択する；&lt;/li&gt;
&lt;li&gt;プラットフォームのプランは、ワークフロー、IDE 統合、デプロイ、チーム管理、セキュリティ監査など、モデル以外の価値をより多く提供する必要がある。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 の発表は、ベンチマークによって最大の衝撃を作ったわけではありません。
本当に業界の期待を変えたのは、その後の値下げでした。&lt;/p&gt;
&lt;p&gt;入力 Token とキャッシュヒット価格が非常に低くなると、AI Agent の利用コストは変わります。
これまで高価に見えていた長文コンテキスト、コードプロジェクト分析、複数ラウンドのツール呼び出しが、今では数毛から数元の日常的な消費になる可能性があります。&lt;/p&gt;
&lt;p&gt;これは Coding Plan と Token Plan のビジネスロジックを直接揺さぶります。
ユーザーが従量課金で、モデルとツールを自由に組み合わせられ、さらにコストも十分低いなら、特定のプラットフォームプランに縛られる必要はありません。&lt;/p&gt;
&lt;p&gt;DeepSeek V4 が今回本当に動かしたのは、モデル能力ランキングだけではなく、AI Agent のコスト構造とデフォルト入口をめぐる競争です。&lt;/p&gt;
&lt;p&gt;参考情報：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/quick_start/pricing/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek API Docs：Models &amp;amp; Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/api/pricing/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI API Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.claude.com/docs/en/about-claude/pricing&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic Claude API Pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>NVIDIA、Nemotron 3 Nano Omni を発表：エージェント向けのオープンな全モーダル推論モデル</title>
        <link>https://knightli.com/ja/2026/05/01/nvidia-nemotron-3-nano-omni-multimodal-agents/</link>
        <pubDate>Fri, 01 May 2026 12:07:15 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/nvidia-nemotron-3-nano-omni-multimodal-agents/</guid>
        <description>&lt;p&gt;NVIDIA は &lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt; を発表した。
これはエージェントワークフロー向けに設計された、オープンな全モーダル推論モデルである。
重点は単なるテキスト問答ではなく、言語、視覚、音声を同じ推論フレームワークに入れ、実際の作業フローに近い入力を扱えるようにすることにある。&lt;/p&gt;
&lt;p&gt;位置付けとして、&lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt; は AI Agent のための基盤モデルに近い。
画面、文書、画像、音声、動画に含まれる情報を理解し、それを実行可能な推論結果へ変換できる。
この能力は、コンピューター操作、文書インテリジェンス、動画理解、音声対話、カスタマーサポート、教育、企業プロセスの自動化に向いている。&lt;/p&gt;
&lt;h2 id=&#34;モデル仕様&#34;&gt;モデル仕様
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt; は MoE アーキテクチャを採用している。
NVIDIA が示している主な仕様は次の通り。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;項目&lt;/th&gt;
          &lt;th&gt;情報&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;モデル名&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;アーキテクチャ&lt;/td&gt;
          &lt;td&gt;MoE&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;パラメータ規模&lt;/td&gt;
          &lt;td&gt;30B total / 3B active&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;モダリティ&lt;/td&gt;
          &lt;td&gt;テキスト、画像、音声、動画&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;コンテキスト長&lt;/td&gt;
          &lt;td&gt;256K token&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ライセンス&lt;/td&gt;
          &lt;td&gt;Apache 2.0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;主なデプロイ方向&lt;/td&gt;
          &lt;td&gt;AI Agent、マルチモーダル推論、企業向けエージェント&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;ここで最も注目したいのは &lt;code&gt;30B-A3B&lt;/code&gt; だ。
これはモデル全体では約 30B パラメータを持つが、各推論では約 3B パラメータだけを有効化するという意味である。
能力と推論コストのあいだで折り合いを付ける設計であり、大きなエキスパート容量を保ちながら、実行時にはその一部だけを使う。&lt;/p&gt;
&lt;p&gt;ただし、MoE の &lt;code&gt;active params&lt;/code&gt; は、VRAM を 3B モデル相当で見積もってよいという意味ではない。
完全にデプロイするには、エキスパート重み、KV cache、視覚/音声エンコーダーモジュール、コンテキスト長、推論フレームワークのオーバーヘッドを考慮する必要がある。&lt;/p&gt;
&lt;h2 id=&#34;解決しようとしているのは単一モーダルの問題ではない&#34;&gt;解決しようとしているのは単一モーダルの問題ではない
&lt;/h2&gt;&lt;p&gt;従来の大規模言語モデルは主にテキストを処理する。
マルチモーダルモデルはそこからさらに画像理解をサポートする。
一方で &lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt; の狙いはもっと広く、テキスト、画像、音声、動画をまとめて推論に取り込む全モーダル入力を重視している。&lt;/p&gt;
&lt;p&gt;これは Agent にとって重要だ。
実際のエージェントタスクは、「ある文章を受け取って別の文章を生成する」だけではないことが多い。
たとえば次のようなものだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;画面上のボタン、表、ウィンドウを見る。&lt;/li&gt;
&lt;li&gt;PDF、スクリーンショット、グラフ、Web ページを読む。&lt;/li&gt;
&lt;li&gt;音声の説明や会議録音を聞く。&lt;/li&gt;
&lt;li&gt;動画内の動作、場面、時系列を理解する。&lt;/li&gt;
&lt;li&gt;それらの情報を統合して次の操作に変換する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;モデルが単一モーダルしか扱えない場合、Agent は複数の専用モデルを追加でつなぎ合わせる必要がある。
全モーダルモデルの価値は、この接続コストを減らし、同じモデルでより複雑な環境入力を直接処理できる点にある。&lt;/p&gt;
&lt;h2 id=&#34;コンピューター操作と文書インテリジェンス向け&#34;&gt;コンピューター操作と文書インテリジェンス向け
&lt;/h2&gt;&lt;p&gt;NVIDIA は、&lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt; がコンピューター操作に関連するタスクに使えることを特に挙げている。
この種のタスクでは、モデルがユーザーインターフェースを理解する必要がある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;画面上にどのようなコントロールがあるか。&lt;/li&gt;
&lt;li&gt;現在のウィンドウがどの状態にあるか。&lt;/li&gt;
&lt;li&gt;次に対象となるボタンやメニューはどれか。&lt;/li&gt;
&lt;li&gt;表、ダイアログ、入力欄の内容が何を意味するか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは、現在の AI Agent が実際に使われる場面で避けて通りにくい能力でもある。
エージェントがオフィスソフト、ブラウザ、企業向け管理画面、開発ツールの操作を支援するなら、API ドキュメントを読むだけではなく、画面を理解できなければならない。&lt;/p&gt;
&lt;p&gt;文書インテリジェンスも同じ発想に近い。
企業資料には、テキスト、表、画像、スキャンページ、グラフが混在していることが多い。
全モーダルモデルはそれらを同じコンテキストに入れて理解できるため、契約書レビュー、レポート分析、請求書処理、ナレッジベースQA、プロセス自動化に向いている。&lt;/p&gt;
&lt;h2 id=&#34;音声と動画が-agent-をより現実の場面に近づける&#34;&gt;音声と動画が Agent をより現実の場面に近づける
&lt;/h2&gt;&lt;p&gt;音声と動画の入力は、Agent の応用範囲を大きく広げる。&lt;/p&gt;
&lt;p&gt;音声の場面には次のようなものがある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;会議録音の要約。&lt;/li&gt;
&lt;li&gt;カスタマーサポート通話の分析。&lt;/li&gt;
&lt;li&gt;音声指示の理解。&lt;/li&gt;
&lt;li&gt;教育・研修コンテンツの整理。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;動画の場面には次のようなものがある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;教学動画の理解。&lt;/li&gt;
&lt;li&gt;セキュリティや産業点検。&lt;/li&gt;
&lt;li&gt;画面録画の分析。&lt;/li&gt;
&lt;li&gt;操作フローの振り返り。&lt;/li&gt;
&lt;li&gt;複数ステップのタスクにおける時系列判断。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらのタスクを文字起こしだけで処理すると、多くの視覚情報や時系列情報が失われる。
全モーダルモデルなら、音声、画面、テキストの手がかりを直接組み合わせ、Agent により完全な環境認識を与えられる。&lt;/p&gt;
&lt;h2 id=&#34;デプロイとエコシステム&#34;&gt;デプロイとエコシステム
&lt;/h2&gt;&lt;p&gt;NVIDIA は &lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt; をオープンなエコシステムに置いており、モデルは Apache 2.0 ライセンスを採用している。
これは開発者や企業にとって重要だ。
実験、統合、二次開発のライセンス上のハードルを下げるからである。&lt;/p&gt;
&lt;p&gt;NVIDIA の説明を見ると、このモデルは同社の推論エコシステムとも強く結び付いている。
企業ユーザーが実際にデプロイする際には、通常次のような点が気になる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NVIDIA GPU 上で効率よく推論できるか。&lt;/li&gt;
&lt;li&gt;長いコンテキストとマルチモーダル入力をサポートするか。&lt;/li&gt;
&lt;li&gt;既存の Agent フレームワークに接続できるか。&lt;/li&gt;
&lt;li&gt;社内文書、音声・動画、UI スクリーンショットを処理できるか。&lt;/li&gt;
&lt;li&gt;プライベート環境にデプロイできるか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;NVIDIA はこのモデルのスループット面での優位性を強調しており、同種のオープンな全モーダル推論モデルに対して最大 9 倍に達するとしている。
この数字の実際の価値は、具体的なハードウェア、コンテキスト長、入力モダリティ、推論フレームワークとあわせて見る必要がある。
ただし方向性は明確だ。
NVIDIA はオープンなマルチモーダルモデルと自社の推論インフラを組み合わせ、企業向け Agent の場面へ押し出そうとしている。&lt;/p&gt;
&lt;h2 id=&#34;向いている用途&#34;&gt;向いている用途
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt; は、次のようなタスクにより向いている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;テキスト、画像、音声、動画を同時に理解する必要がある Agent。&lt;/li&gt;
&lt;li&gt;企業内の文書インテリジェンスとナレッジベースQA。&lt;/li&gt;
&lt;li&gt;スクリーンショットや Web インターフェースに基づくコンピューター操作。&lt;/li&gt;
&lt;li&gt;会議、カスタマーサポート、教学コンテンツのマルチモーダル分析。&lt;/li&gt;
&lt;li&gt;動画理解、ワークフローの振り返り、時系列判断。&lt;/li&gt;
&lt;li&gt;オープンライセンスとプライベートデプロイを必要とするチーム。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;すべての一般ユーザーに向いているとは限らない。
ローカルチャット、コード補完、簡単なQAだけなら、単一モーダルの言語モデルのほうが軽く、速く、省リソースである可能性が高い。
&lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt; の価値は、主に複雑な入力とマルチモーダルな Agent ワークフローにある。&lt;/p&gt;
&lt;h2 id=&#34;ai-agent-にとって何を意味するのか&#34;&gt;AI Agent にとって何を意味するのか
&lt;/h2&gt;&lt;p&gt;AI Agent が本当に仕事の現場に入っていくには、文字を書けるだけでは足りない。
インターフェースを理解し、音声を聞き取り、文書を読み、動画内の変化を把握し、それらを次の行動へ変換する必要がある。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt; の意味はそこにある。
単にモデルのパラメータを大きくしたのではなく、Agent が直面する複数種類の入力を一つの推論モデルに統合している。
これにより、開発者はチャットウィンドウ中心のアプリではなく、現実のタスクに向いたエージェントを作りやすくなる。&lt;/p&gt;
&lt;p&gt;この角度から見ると、NVIDIA がこのモデルを発表したポイントは「また一つマルチモーダルモデルが出た」ということだけではない。
オープンモデル、GPU 推論、企業向け Agent、プライベートデプロイを引き続き接続しようとしている点にある。
今後本当に注目すべきなのは、具体的な Agent フレームワーク、企業ワークフロー、ローカルデプロイの中でどのような実力を見せるかだ。&lt;/p&gt;
&lt;p&gt;参考ソース：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blogs.nvidia.cn/blog/nemotron-3-nano-omni-multimodal-ai-agents/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NVIDIA 技術ブログ：NVIDIA Nemotron 3 Nano Omni&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Qwen3.6 をローカルで動かす：27B と 35B-A3B の量子化版に必要なVRAM</title>
        <link>https://knightli.com/ja/2026/05/01/qwen3-6-local-vram-quantization-table/</link>
        <pubDate>Fri, 01 May 2026 12:02:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/qwen3-6-local-vram-quantization-table/</guid>
        <description>&lt;p&gt;Qwen3.6 でローカル部署の対象として特に重要な公開重み版は、主に次の2つです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Qwen3.6-27B&lt;/code&gt;：27B の dense モデル。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Qwen3.6-35B-A3B&lt;/code&gt;：35B total / 3B active の MoE モデル。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Qwen3.6-Plus&lt;/code&gt; や &lt;code&gt;Qwen3.6-Max&lt;/code&gt; のようなオンライン製品名や API モデル名もあります。
ただし、完全な公開重みと安定した量子化ファイルがないモデルは、ローカルVRAM表には向きません。
この記事では、Hugging Face の重みと GGUF 量子化ファイルをもとに部署できるバージョンだけを扱います。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/05/10&lt;/code&gt; の Gemma 4 表と同じように、まず次の2つを分けて考える必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GGUF ファイルサイズ&lt;/strong&gt;：モデル重みファイルそのものの大きさ。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;実際のVRAM使用量&lt;/strong&gt;：重み、KV cache、コンテキスト長、ランタイムバックエンド、マルチモーダルモジュール、バッチサイズで決まる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Qwen3.6 は標準のコンテキストが非常に長く、公式モデルカードでは &lt;code&gt;262,144&lt;/code&gt; tokens をネイティブでサポートし、&lt;code&gt;1,010,000&lt;/code&gt; tokens まで拡張可能とされています。
そのため、表の「最低VRAM」は短い、または中程度のコンテキストを前提にした目安です。
128K、256K、またはそれ以上のコンテキストを本当に使う場合は、KV cache 用にかなり多くの余裕が必要です。&lt;/p&gt;
&lt;h2 id=&#34;まず結論&#34;&gt;まず結論
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;VRAM&lt;/th&gt;
          &lt;th&gt;比較的向く選択&lt;/th&gt;
          &lt;th&gt;避けたい選択&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;8GB&lt;/td&gt;
          &lt;td&gt;27B / 35B-A3B の 2-bit 極限テスト。品質リスクは高い&lt;/td&gt;
          &lt;td&gt;Q4 以上&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;12GB&lt;/td&gt;
          &lt;td&gt;27B Q2/Q3、35B-A3B Q2/Q3 の短コンテキスト&lt;/td&gt;
          &lt;td&gt;27B Q4 の長コンテキスト&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;16GB&lt;/td&gt;
          &lt;td&gt;27B Q3/Q4、35B-A3B Q3/IQ4_XS&lt;/td&gt;
          &lt;td&gt;35B-A3B Q4 の長コンテキスト&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;24GB&lt;/td&gt;
          &lt;td&gt;27B Q4/Q5/Q6、35B-A3B Q4&lt;/td&gt;
          &lt;td&gt;35B-A3B Q8、BF16&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;32GB&lt;/td&gt;
          &lt;td&gt;27B Q8、35B-A3B Q5/Q6&lt;/td&gt;
          &lt;td&gt;BF16&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;48GB&lt;/td&gt;
          &lt;td&gt;35B-A3B Q8、27B の長めのコンテキストをより余裕を持って実行&lt;/td&gt;
          &lt;td&gt;35B-A3B BF16&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;80GB+&lt;/td&gt;
          &lt;td&gt;27B / 35B-A3B BF16&lt;/td&gt;
          &lt;td&gt;通常のローカルチャットで BF16 を追う必要はない&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;24GB GPU なら、重点的に見るべきなのは次の3つです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Qwen3.6-27B Q4_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Qwen3.6-27B Q5_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Qwen3.6-35B-A3B UD-Q4_K_M&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;16GB VRAM しかない場合は、低ビット幅版から始め、いきなり超長コンテキストを使わないほうが安全です。&lt;/p&gt;
&lt;h2 id=&#34;公式重みサイズ&#34;&gt;公式重みサイズ
&lt;/h2&gt;&lt;p&gt;以下は、公式 Hugging Face リポジトリの &lt;code&gt;model.safetensors.index.json&lt;/code&gt; から確認できる BF16 重みサイズです。
元のモデル規模を見るための参考になります。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;モデル&lt;/th&gt;
          &lt;th&gt;アーキテクチャ&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;公式 BF16 重みサイズ&lt;/th&gt;
          &lt;th&gt;公式コンテキスト&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Qwen3.6-27B&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;27B dense&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;55.56GB&lt;/td&gt;
          &lt;td&gt;ネイティブ 262K、1,010K まで拡張可能&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Qwen3.6-35B-A3B&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;35B total / 3B active MoE&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;71.90GB&lt;/td&gt;
          &lt;td&gt;ネイティブ 262K、1,010K まで拡張可能&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;35B-A3B&lt;/code&gt; は各ステップで約 3B パラメータだけを有効化しますが、完全な MoE 重みを読み込む必要があります。
そのため、3B 小型モデルのようにVRAMを見積もることはできません。&lt;/p&gt;
&lt;h2 id=&#34;qwen36-27b-vram表&#34;&gt;Qwen3.6-27B VRAM表
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Qwen3.6-27B&lt;/code&gt; は dense モデルで、安定した挙動が強みです。一方で推論コストは従来の 27B モデルに近くなります。
ローカル部署の観点では、35B-A3B より計算量は重いものの、VRAM要件は見積もりやすいです。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;量子化版&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;GGUF ファイルサイズ&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;最低VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;安全なVRAM目安&lt;/th&gt;
          &lt;th&gt;向く用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_XXS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.39GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;極限低VRAMテスト&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.85GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;低VRAMでの可用性優先&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q2_K_XL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11.85GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18GB&lt;/td&gt;
          &lt;td&gt;低ビット幅の折衷案&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ3_XXS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11.99GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18GB&lt;/td&gt;
          &lt;td&gt;VRAMを抑えた 3-bit&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3_K_S&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.36GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td&gt;3-bit 入門&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.59GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td&gt;3-bit の一般的な折衷案&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;IQ4_XS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;15.44GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;Q4 に近い省VRAM選択&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;IQ4_NL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.07GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;品質とサイズのバランス&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.82GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;27B の標準的なおすすめ&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;19.51GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td&gt;より高品質な量子化&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6_K&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;22.52GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td&gt;品質優先&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q8_0&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28.60GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;40GB&lt;/td&gt;
          &lt;td&gt;原精度に近い実行&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;BF16&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.80GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;80GB&lt;/td&gt;
          &lt;td&gt;研究、評価、精度比較&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;普通のローカルコーディングやチャットなら、&lt;code&gt;Q4_K_M&lt;/code&gt; が最もおすすめしやすい出発点です。
24GB GPU なら &lt;code&gt;Q4_K_M&lt;/code&gt; は比較的快適に動かせますが、長いコンテキストを使う場合は量子化サイズかコンテキスト長を下げるほうが安全です。&lt;/p&gt;
&lt;h2 id=&#34;qwen36-35b-a3b-vram表&#34;&gt;Qwen3.6-35B-A3B VRAM表
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Qwen3.6-35B-A3B&lt;/code&gt; は MoE モデルで、35B total、各ステップで約 3B パラメータを有効化します。
速度と能力のバランスがよく、特にローカル Agent、ツール呼び出し、コード作業に向いています。&lt;/p&gt;
&lt;p&gt;ただし、MoE の &lt;code&gt;3B active&lt;/code&gt; は主に計算量に効くものであり、VRAMが 3B モデル相当で済むという意味ではありません。
完全に動かすには専門家重みを読み込む必要があります。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;量子化版&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;GGUF ファイルサイズ&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;最低VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;安全なVRAM目安&lt;/th&gt;
          &lt;th&gt;向く用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_XXS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.76GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;極限低VRAMテスト&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11.52GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;低VRAMでの可用性優先&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q2_K_XL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.29GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18GB&lt;/td&gt;
          &lt;td&gt;低ビット幅の折衷案&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ3_XXS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.21GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td&gt;VRAMを抑えた 3-bit&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q3_K_S&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;15.36GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;3-bit 入門&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q3_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.60GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;3-bit の一般的な折衷案&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ4_XS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;17.73GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;品質とサイズのバランス&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ4_NL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18.04GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;Q4 に近いおすすめ選択&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q4_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;22.13GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td&gt;35B-A3B の標準的なおすすめ&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q5_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;26.46GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;40GB&lt;/td&gt;
          &lt;td&gt;より高品質な量子化&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q6_K&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;29.31GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48GB&lt;/td&gt;
          &lt;td&gt;品質優先&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q8_0&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;36.90GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64GB&lt;/td&gt;
          &lt;td&gt;原精度に近い実行&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;BF16&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;69.37GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;80GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;96GB&lt;/td&gt;
          &lt;td&gt;研究、評価、精度比較&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;24GB VRAM なら &lt;code&gt;UD-Q4_K_M&lt;/code&gt; が有力ですが、コンテキストは上げすぎないほうがよいです。
128K 以上のコンテキストに余裕を残したい場合、&lt;code&gt;UD-IQ4_XS&lt;/code&gt;、&lt;code&gt;UD-IQ4_NL&lt;/code&gt;、または 3-bit 版のほうが現実的です。&lt;/p&gt;
&lt;h2 id=&#34;27b-と-35b-a3b-の選び方&#34;&gt;27B と 35B-A3B の選び方
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;目的&lt;/th&gt;
          &lt;th&gt;よりおすすめ&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;dense モデルの安定性&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;Qwen3.6-27B&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;速い応答、Agent、ツール呼び出し&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;Qwen3.6-35B-A3B&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;24GB VRAM での日常ローカル利用&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;35B-A3B UD-Q4_K_M&lt;/code&gt; または &lt;code&gt;27B Q4_K_M&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;16GB VRAM での試用&lt;/td&gt;
          &lt;td&gt;どちらも 2-bit/3-bit。長コンテキストは避ける&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;長コンテキスト優先&lt;/td&gt;
          &lt;td&gt;低ビット量子化にして KV cache の余裕を残す&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;32GB+ VRAM で品質優先&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;27B Q5/Q6&lt;/code&gt; または &lt;code&gt;35B-A3B Q5/Q6&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;コードを書いたり、Agent を動かしたり、ツール呼び出しを使うなら、&lt;code&gt;35B-A3B&lt;/code&gt; を先に試す価値があります。
dense モデルの安定性や一貫性を重視するなら、&lt;code&gt;27B&lt;/code&gt; のほうがわかりやすい選択です。&lt;/p&gt;
&lt;h2 id=&#34;長コンテキストが大量のvramを使う理由&#34;&gt;長コンテキストが大量のVRAMを使う理由
&lt;/h2&gt;&lt;p&gt;Qwen3.6 のモデルカードでは、複雑なタスクで長めのコンテキストを保つことが推奨されており、128K 以上のコンテキストが思考能力に役立つとも述べられています。
しかしローカル部署では、長コンテキストは大きな &lt;code&gt;KV cache&lt;/code&gt; を意味します。&lt;/p&gt;
&lt;p&gt;実際のVRAM使用量に影響する要素は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;KV cache&lt;/code&gt;：コンテキストが長いほど使用量が増える。&lt;/li&gt;
&lt;li&gt;視覚入力を有効にするかどうか：Qwen3.6 は視覚エンコーダを持つため、マルチモーダル利用では追加コストがある。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--language-model-only&lt;/code&gt; を使うかどうか：vLLM などでは、視覚部分をスキップすると KV cache 用のメモリを一部空けられる。&lt;/li&gt;
&lt;li&gt;バッチサイズと並列性：並列性が高いほどVRAM要求も高くなる。&lt;/li&gt;
&lt;li&gt;KV cache 量子化：&lt;code&gt;q8_0&lt;/code&gt;、&lt;code&gt;q4_0&lt;/code&gt; などはVRAMを節約できるが、細部に影響する場合がある。&lt;/li&gt;
&lt;li&gt;ランタイム差：llama.cpp、vLLM、SGLang、KTransformers、LM Studio の使用量は完全には同じではない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、GGUF ファイルサイズだけを見てはいけません。
ファイルがすでにVRAM上限に近い場合、モデルは読み込めても、長い出力や長コンテキスト生成で OOM になる可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;どう選ぶか&#34;&gt;どう選ぶか
&lt;/h2&gt;&lt;p&gt;ローカルで Qwen3.6 を試したいだけなら：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;12GB VRAM：&lt;code&gt;27B UD-IQ2_M&lt;/code&gt; または &lt;code&gt;35B-A3B UD-IQ2_M&lt;/code&gt;。コンテキストは短くする。&lt;/li&gt;
&lt;li&gt;16GB VRAM：&lt;code&gt;27B Q3_K_M&lt;/code&gt; または &lt;code&gt;35B-A3B UD-IQ3_XXS&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;24GB VRAM：&lt;code&gt;27B Q4_K_M&lt;/code&gt;、&lt;code&gt;35B-A3B UD-IQ4_NL&lt;/code&gt;、&lt;code&gt;35B-A3B UD-Q4_K_M&lt;/code&gt; を優先。&lt;/li&gt;
&lt;li&gt;32GB VRAM：&lt;code&gt;27B Q5/Q6&lt;/code&gt; または &lt;code&gt;35B-A3B Q5/Q6&lt;/code&gt; を検討。&lt;/li&gt;
&lt;li&gt;48GB 以上：&lt;code&gt;Q8_0&lt;/code&gt; を試すか、長コンテキスト用に余裕を残す。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;多くのユーザーに BF16 は不要です。
Qwen3.6 のローカル部署で重要なのは、ファイルサイズの大きさではなく、VRAM、コンテキスト長、速度、出力品質のバランスです。&lt;/p&gt;
&lt;h2 id=&#34;参考元&#34;&gt;参考元
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/Qwen/Qwen3.6-27B&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Qwen/Qwen3.6-27B - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/Qwen/Qwen3.6-35B-A3B&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Qwen/Qwen3.6-35B-A3B - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/Qwen/Qwen3.6-27B-FP8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Qwen/Qwen3.6-27B-FP8 - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/Qwen/Qwen3.6-35B-A3B-FP8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Qwen/Qwen3.6-35B-A3B-FP8 - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/unsloth/Qwen3.6-27B-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;unsloth/Qwen3.6-27B-GGUF - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/unsloth/Qwen3.6-35B-A3B-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;unsloth/Qwen3.6-35B-A3B-GGUF - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>DeepSeek V4 をローカルで動かす：Pro、Flash、Base 版のVRAM使用量見積もり</title>
        <link>https://knightli.com/ja/2026/05/01/deepseek-v4-local-vram-quantization-table/</link>
        <pubDate>Fri, 01 May 2026 11:55:25 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/deepseek-v4-local-vram-quantization-table/</guid>
        <description>&lt;p&gt;DeepSeek V4 と Gemma 4 は、ローカル実行の難度がまったく違います。
Gemma 4 の 26B や 31B なら、24GB や 32GB のGPUでどの量子化版を選ぶかをまだ議論できます。DeepSeek V4 は巨大な MoE モデルであり、完全なローカル実行では多GPUワークステーションやサーバー級のVRAMが必要になります。&lt;/p&gt;
&lt;p&gt;公式の DeepSeek V4 Preview には、主に2つの推論モデルがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Pro&lt;/code&gt;：&lt;code&gt;1.6T total / 49B active params&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Flash&lt;/code&gt;：&lt;code&gt;284B total / 13B active params&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hugging Face の公式 collection には、さらに2つの Base モデルも含まれています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Pro-Base&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Flash-Base&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この記事では、&lt;strong&gt;モデル重みを完全に読み込む&lt;/strong&gt;場合のおおまかなVRAM要件だけを扱います。
MoE の &lt;code&gt;active params&lt;/code&gt; は主に各 token の計算量に効くものであり、その分のパラメータだけを読み込めばよいという意味ではありません。
専門家のオンデマンド読み込み、CPU/NVMe offload、分散推論、専用ランタイム最適化がない場合、VRAMは基本的に完全な重みサイズを基準に見積もる必要があります。&lt;/p&gt;
&lt;h2 id=&#34;まず結論&#34;&gt;まず結論
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;VRAM規模&lt;/th&gt;
          &lt;th&gt;比較的現実的に試せるもの&lt;/th&gt;
          &lt;th&gt;期待しないほうがよいもの&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;24GB&lt;/td&gt;
          &lt;td&gt;DeepSeek V4 の完全実行は不可。小型蒸留モデルまたはAPI向け&lt;/td&gt;
          &lt;td&gt;V4-Flash / V4-Pro の完全ローカル読み込み&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;48GB&lt;/td&gt;
          &lt;td&gt;まだ完全読み込みには不向き。小型モデルやリモートAPIクライアント向け&lt;/td&gt;
          &lt;td&gt;V4-Flash Q4 の安定実行&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;80GB&lt;/td&gt;
          &lt;td&gt;理論上 V4-Flash Q2/Q3 や強い offload を試せる&lt;/td&gt;
          &lt;td&gt;V4-Pro&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;128GB&lt;/td&gt;
          &lt;td&gt;V4-Flash Q4 が比較的現実的。Q5/Q6 はまだ厳しい&lt;/td&gt;
          &lt;td&gt;V4-Pro Q4&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;192GB&lt;/td&gt;
          &lt;td&gt;V4-Flash FP8/Q6 は余裕が出る。Pro Q2 は実験範囲&lt;/td&gt;
          &lt;td&gt;V4-Pro Q4&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;256GB&lt;/td&gt;
          &lt;td&gt;V4-Flash FP8 はかなり安定。Pro Q2/Q3 は実験可能&lt;/td&gt;
          &lt;td&gt;V4-Pro Q5 以上&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;512GB&lt;/td&gt;
          &lt;td&gt;V4-Pro Q4 が議論できる範囲に入る&lt;/td&gt;
          &lt;td&gt;V4-Pro FP8&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;1TB+&lt;/td&gt;
          &lt;td&gt;V4-Pro FP8、Pro-Base の低ビット幅がより現実的&lt;/td&gt;
          &lt;td&gt;低コスト単体マシン運用&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2TB+&lt;/td&gt;
          &lt;td&gt;Pro-Base FP8 クラス&lt;/td&gt;
          &lt;td&gt;普通のワークステーション運用&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;個人PCでローカル実行することが目的なら、DeepSeek V4 は適切な対象ではありません。
より現実的な選択肢は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DeepSeek 公式 API または互換サービスを使う。&lt;/li&gt;
&lt;li&gt;安定したコミュニティ製 GGUF/EXL2/MLX 量子化と推論サポートを待つ。&lt;/li&gt;
&lt;li&gt;より小さな DeepSeek 蒸留モデルを使う。&lt;/li&gt;
&lt;li&gt;Qwen、Gemma、Llama などの 7B〜70B 級ローカルモデルを使う。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;公式重みサイズ&#34;&gt;公式重みサイズ
&lt;/h2&gt;&lt;p&gt;以下は Hugging Face 公式リポジトリの &lt;code&gt;model.safetensors.index.json&lt;/code&gt; から確認できる重み総量です。
これは現在公開されている重みファイルのサイズであり、長いコンテキスト実行時の完全なVRAM使用量ではありません。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;モデル&lt;/th&gt;
          &lt;th&gt;パラメータ規模&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;公式重みサイズ&lt;/th&gt;
          &lt;th&gt;説明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;DeepSeek-V4-Flash&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;284B total / 13B active&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;159.61GB&lt;/td&gt;
          &lt;td&gt;推論版。この中では最小&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;DeepSeek-V4-Pro&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;1.6T total / 49B active&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;864.70GB&lt;/td&gt;
          &lt;td&gt;推論版。より強力だが非常に大きい&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;DeepSeek-V4-Flash-Base&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;284B total&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;294.67GB&lt;/td&gt;
          &lt;td&gt;Base 版。全量 FP8 重みに近いサイズ&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;DeepSeek-V4-Pro-Base&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;1.6T total&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1606.03GB&lt;/td&gt;
          &lt;td&gt;Base 版。約 1.6TB クラス&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;最小の &lt;code&gt;V4-Flash&lt;/code&gt; でも、公式重みはすでに約 160GB あります。
そのため、&lt;code&gt;13B active params&lt;/code&gt; だからといって 13B 小型モデルのようには扱えません。&lt;/p&gt;
&lt;h2 id=&#34;deepseek-v4-flash-のvram見積もり&#34;&gt;DeepSeek V4 Flash のVRAM見積もり
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;V4-Flash&lt;/code&gt; は DeepSeek V4 の中では最もローカル実験に近いモデルです。
ただし、それは Pro と比べた場合の話であり、消費者向け単体GPUモデルではありません。&lt;/p&gt;
&lt;p&gt;以下では、公式の 159.61GB 重みサイズを基準にしています。
Q4/Q3/Q2 はビット幅からの推定であり、安定した公式 GGUF 版が存在することを意味しません。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;版 / 量子化&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;推定重みサイズ&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;最低VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;安全なVRAM目安&lt;/th&gt;
          &lt;th&gt;向く用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;FP8 / 公式重み&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;159.61GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;192GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;256GB&lt;/td&gt;
          &lt;td&gt;多GPUサーバー、推論サービス&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;120GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;160GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;192GB&lt;/td&gt;
          &lt;td&gt;品質優先の量子化実験&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;100GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;128GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;160GB&lt;/td&gt;
          &lt;td&gt;品質とサイズのバランス&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;80GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;96GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;128GB&lt;/td&gt;
          &lt;td&gt;Flash ローカル化の比較的現実的な出発点&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;60GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;80GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;96GB&lt;/td&gt;
          &lt;td&gt;大容量VRAM単体GPUまたは多GPU実験&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q2&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;40GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64GB&lt;/td&gt;
          &lt;td&gt;極限低ビット実験。品質リスクは大きい&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;将来、成熟した &lt;code&gt;V4-Flash Q4&lt;/code&gt; が出たとしても、24GB GPU向けのモデルにはなりにくいです。
より現実的な出発点は、96GB〜128GB 級の総VRAM、または速度を犠牲にした CPU/offload 構成です。&lt;/p&gt;
&lt;h2 id=&#34;deepseek-v4-pro-のvram見積もり&#34;&gt;DeepSeek V4 Pro のVRAM見積もり
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;V4-Pro&lt;/code&gt; は旗艦推論版で、公式重みサイズは約 864.70GB です。
4-bit 量子化をしても、完全な重みは数百GB級のままです。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;版 / 量子化&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;推定重みサイズ&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;最低VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;安全なVRAM目安&lt;/th&gt;
          &lt;th&gt;向く用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;FP8 / 公式重み&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;864.70GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1TB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1.2TB+&lt;/td&gt;
          &lt;td&gt;多ノードまたは多GPU推論サービス&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;648GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;768GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1TB&lt;/td&gt;
          &lt;td&gt;高品質な量子化サービス&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;540GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;640GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;768GB&lt;/td&gt;
          &lt;td&gt;品質とコストのバランス&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;432GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;512GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;640GB&lt;/td&gt;
          &lt;td&gt;Pro ローカル化で現実的な最低品質ライン&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;324GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;384GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;512GB&lt;/td&gt;
          &lt;td&gt;低ビット実験&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q2&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;216GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;256GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;320GB&lt;/td&gt;
          &lt;td&gt;極限実験。品質と安定性のリスクが高い&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;個人ユーザーにとって、&lt;code&gt;V4-Pro&lt;/code&gt; は API 経由で使うほうが現実的です。
完全なローカル実行を目指すなら、4090、5090、RTX PRO 単体GPUではなく、多GPUサーバーモデルとして考えるべきです。&lt;/p&gt;
&lt;h2 id=&#34;deepseek-v4-flash-base-のvram見積もり&#34;&gt;DeepSeek V4 Flash-Base のVRAM見積もり
&lt;/h2&gt;&lt;p&gt;Base 版は通常、研究、微調整、継続学習向けであり、普通のチャット用途の第一候補ではありません。
&lt;code&gt;V4-Flash-Base&lt;/code&gt; の公式重みサイズは約 294.67GB です。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;版 / 量子化&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;推定重みサイズ&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;最低VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;安全なVRAM目安&lt;/th&gt;
          &lt;th&gt;向く用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;FP8 / 公式重み&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;294.67GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;384GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;512GB&lt;/td&gt;
          &lt;td&gt;研究、前処理、評価&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;221GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;256GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;320GB&lt;/td&gt;
          &lt;td&gt;高品質量子化研究&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;184GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;224GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;256GB&lt;/td&gt;
          &lt;td&gt;品質とサイズのバランス&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;147GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;192GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;224GB&lt;/td&gt;
          &lt;td&gt;低コストな Base 版実験&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;111GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;128GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;160GB&lt;/td&gt;
          &lt;td&gt;低ビット実験&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q2&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;74GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;96GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;128GB&lt;/td&gt;
          &lt;td&gt;極限実験&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;DeepSeek V4 の能力を使いたいだけなら、Base 版から始めることはおすすめしません。
Base 版はデプロイと調整のコストが高く、通常のアプリケーションには推論版または API のほうが向いています。&lt;/p&gt;
&lt;h2 id=&#34;deepseek-v4-pro-base-のvram見積もり&#34;&gt;DeepSeek V4 Pro-Base のVRAM見積もり
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;V4-Pro-Base&lt;/code&gt; は最も重いバージョンで、公式重みサイズは約 1606.03GB です。
これはすでに 1.6TB クラスのモデルファイルです。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;版 / 量子化&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;推定重みサイズ&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;最低VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;安全なVRAM目安&lt;/th&gt;
          &lt;th&gt;向く用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;FP8 / 公式重み&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1606.03GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2TB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.4TB+&lt;/td&gt;
          &lt;td&gt;大規模研究クラスタ&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1205GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1.5TB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2TB&lt;/td&gt;
          &lt;td&gt;高品質量子化研究&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1004GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1.2TB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1.5TB&lt;/td&gt;
          &lt;td&gt;研究と評価&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;803GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1TB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1.2TB&lt;/td&gt;
          &lt;td&gt;低ビット研究&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;602GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;768GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1TB&lt;/td&gt;
          &lt;td&gt;極限低ビット研究&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q2&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;402GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;512GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;640GB&lt;/td&gt;
          &lt;td&gt;極限実験&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;この種のモデルは、「家庭用GPUで動くか」という枠組みで考える対象ではありません。
Q4 であっても、ほとんどの単体ワークステーションの快適な範囲を超えています。&lt;/p&gt;
&lt;h2 id=&#34;active-params-だけを見てはいけない理由&#34;&gt;active params だけを見てはいけない理由
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 は MoE モデルです。
MoE では各 token が一部の専門家だけを有効化するため、計算量は総パラメータ数よりかなり小さくなります。
しかし、それはVRAMに active params だけを載せればよいという意味ではありません。&lt;/p&gt;
&lt;p&gt;完全なローカル推論では、次の要素も考える必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;すべての専門家重みをGPUに常駐させる必要があるか。&lt;/li&gt;
&lt;li&gt;専門家のオンデマンド読み込みに対応しているか。&lt;/li&gt;
&lt;li&gt;CPUメモリとGPU VRAM間のデータ転送コスト。&lt;/li&gt;
&lt;li&gt;NVMe offload の遅延。&lt;/li&gt;
&lt;li&gt;長コンテキストで増える KV cache。&lt;/li&gt;
&lt;li&gt;1M context 実行時の追加ランタイムコスト。&lt;/li&gt;
&lt;li&gt;多ノード・多GPU通信コスト。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;したがって、&lt;code&gt;49B active&lt;/code&gt; の &lt;code&gt;V4-Pro&lt;/code&gt; を 49B モデルとして扱ってはいけません。
&lt;code&gt;13B active&lt;/code&gt; の &lt;code&gt;V4-Flash&lt;/code&gt; も、13B 小型モデルとして扱うべきではありません。&lt;/p&gt;
&lt;h2 id=&#34;どう選ぶか&#34;&gt;どう選ぶか
&lt;/h2&gt;&lt;p&gt;普通の個人ユーザーなら：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DeepSeek V4 を完全にローカル実行することはおすすめしません。&lt;/li&gt;
&lt;li&gt;DeepSeek V4 の能力が必要なら、まず公式 API を使う。&lt;/li&gt;
&lt;li&gt;ローカル私有化が必要なら、成熟した推論サービス基盤や社内多GPUサーバーがあるかを先に確認する。&lt;/li&gt;
&lt;li&gt;24GB〜48GB VRAM しかない場合は、7B、14B、32B、70B 級の量子化モデルのほうが現実的です。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;128GB〜256GB の総VRAMがある場合：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;V4-Flash Q4/Q5&lt;/code&gt; の安定したコミュニティ実装を注視する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;V4-Pro&lt;/code&gt; を主力ローカルモデルとして扱うのはおすすめしません。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;512GB 以上の総VRAMがある場合：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;V4-Pro Q4&lt;/code&gt; がようやく工学的な検証対象になります。&lt;/li&gt;
&lt;li&gt;それでも推論フレームワーク、専門家スケジューリング、KV cache、スループット、並列性を確認する必要があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;DeepSeek V4 のローカル部署で重要なのは、「どの量子化ファイルをダウンロードするか」ではありません。
「このモデルを支えるだけのシステムレベルの推論能力があるか」です。
これはデスクトップモデルというより、サーバーモデルに近い存在です。&lt;/p&gt;
&lt;h2 id=&#34;参考元&#34;&gt;参考元
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/news/news260424&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek V4 Preview Release - DeepSeek API Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/collections/deepseek-ai/deepseek-v4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-V4 collection - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;deepseek-ai/DeepSeek-V4-Pro - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;deepseek-ai/DeepSeek-V4-Flash - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro-Base&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;deepseek-ai/DeepSeek-V4-Pro-Base - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash-Base&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;deepseek-ai/DeepSeek-V4-Flash-Base - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Gemma 4 をローカルで動かす：E2B、E4B、26B、31B の量子化版に必要なVRAM</title>
        <link>https://knightli.com/ja/2026/05/01/gemma-4-local-vram-quantization-table/</link>
        <pubDate>Fri, 01 May 2026 11:42:34 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/gemma-4-local-vram-quantization-table/</guid>
        <description>&lt;p&gt;Gemma 4 には、ローカル実行向けに主に &lt;code&gt;E2B&lt;/code&gt;、&lt;code&gt;E4B&lt;/code&gt;、&lt;code&gt;26B A4B&lt;/code&gt;、&lt;code&gt;31B&lt;/code&gt; の4サイズがあります。
&lt;code&gt;E2B&lt;/code&gt; と &lt;code&gt;E4B&lt;/code&gt; は軽量・エッジデバイス向け、&lt;code&gt;26B A4B&lt;/code&gt; は MoE アーキテクチャ、&lt;code&gt;31B&lt;/code&gt; はより大きな dense モデルです。&lt;/p&gt;
&lt;p&gt;ローカル実行で混同しやすい数字は次の2つです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GGUF ファイルサイズ&lt;/strong&gt;：モデル重みファイルそのものの大きさ。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;実際のVRAM使用量&lt;/strong&gt;：モデル重み、KV cache、ランタイムのオーバーヘッド、コンテキスト長、マルチモーダル投影ファイルの有無で決まる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以下の表は、GGUF ファイルサイズをもとにVRAM要件を見積もったものです。
前提は &lt;code&gt;llama.cpp&lt;/code&gt;、LM Studio、Ollama などで、主にテキスト推論を行い、短〜中程度のコンテキストを使うローカル環境です。
長いコンテキスト、画像/音声入力、並列リクエストを使う場合は、さらにVRAMの余裕が必要です。&lt;/p&gt;
&lt;h2 id=&#34;まず結論&#34;&gt;まず結論
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;VRAM&lt;/th&gt;
          &lt;th&gt;比較的向く選択&lt;/th&gt;
          &lt;th&gt;避けたい選択&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;4GB&lt;/td&gt;
          &lt;td&gt;E2B の低ビット量子化&lt;/td&gt;
          &lt;td&gt;E4B 以上&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;6GB&lt;/td&gt;
          &lt;td&gt;E2B Q4/Q5、E4B の低ビット量子化&lt;/td&gt;
          &lt;td&gt;26B、31B&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8GB&lt;/td&gt;
          &lt;td&gt;E2B Q8、E4B Q4/Q5&lt;/td&gt;
          &lt;td&gt;26B Q4、31B Q4&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;12GB&lt;/td&gt;
          &lt;td&gt;E4B Q8、26B/31B の 2-bit/3-bit 実験&lt;/td&gt;
          &lt;td&gt;26B Q4 の長コンテキスト、31B Q4&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;16GB&lt;/td&gt;
          &lt;td&gt;26B 低ビット量子化、31B 低ビット量子化&lt;/td&gt;
          &lt;td&gt;31B Q4 の長コンテキスト、26B Q5 以上&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;24GB&lt;/td&gt;
          &lt;td&gt;26B Q4/Q5、31B Q4&lt;/td&gt;
          &lt;td&gt;31B Q8、BF16&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;32GB&lt;/td&gt;
          &lt;td&gt;26B Q6/Q8、31B Q5/Q6&lt;/td&gt;
          &lt;td&gt;BF16&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;48GB&lt;/td&gt;
          &lt;td&gt;31B Q8 をより余裕を持って実行、26B Q8 の長めのコンテキスト&lt;/td&gt;
          &lt;td&gt;31B BF16&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;80GB+&lt;/td&gt;
          &lt;td&gt;26B/31B BF16&lt;/td&gt;
          &lt;td&gt;一般的なコンシューマーGPU単体での運用&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;まずローカルで使えるものを動かしたいなら、&lt;code&gt;E4B Q4_K_M&lt;/code&gt; または &lt;code&gt;E2B Q4_K_M&lt;/code&gt; から始めるのが現実的です。
24GB VRAM があれば、&lt;code&gt;26B A4B Q4_K_M&lt;/code&gt; と &lt;code&gt;31B Q4_K_M&lt;/code&gt; がようやく使いやすい範囲に入ります。&lt;/p&gt;
&lt;h2 id=&#34;gemma-4-e2b-vram表&#34;&gt;Gemma 4 E2B VRAM表
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;E2B&lt;/code&gt; は最も軽量なバージョンで、ノートPC、ミニPC、モバイル端末、低VRAM環境でのテストに向いています。
動かしやすい一方で、複雑な推論、コード生成、長いタスクの安定性には限界があります。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;量子化版&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;GGUF ファイルサイズ&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;最低VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;安全なVRAM目安&lt;/th&gt;
          &lt;th&gt;向く用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.29GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td&gt;極限の低VRAMテスト&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q2_K_XL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.40GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td&gt;低VRAMでの可用性優先&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.54GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td&gt;軽いチャット、要約&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;IQ4_XS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.98GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td&gt;品質とサイズのバランス&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3.11GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td&gt;E2B の標準的なおすすめ&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3.36GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td&gt;Q4 より少し安定&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6_K&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4.50GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10GB&lt;/td&gt;
          &lt;td&gt;小型モデルで品質優先&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q8_0&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5.05GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10GB&lt;/td&gt;
          &lt;td&gt;軽量運用で原精度に近づけたい場合&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;BF16&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.31GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;デバッグ、比較、研究&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;日常的な体験なら &lt;code&gt;E2B Q4_K_M&lt;/code&gt; で十分です。
4GB VRAM しかない場合は 2-bit や 3-bit も試せますが、出力品質は不安定になりやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;gemma-4-e4b-vram表&#34;&gt;Gemma 4 E4B VRAM表
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;E4B&lt;/code&gt; は、より実用的な軽量版です。
E2B よりも日常的な文章作成、資料要約、軽いコード補助、ローカルアシスタント用途に向いています。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;量子化版&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;GGUF ファイルサイズ&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;最低VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;安全なVRAM目安&lt;/th&gt;
          &lt;th&gt;向く用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3.53GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td&gt;低VRAMテスト&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q2_K_XL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3.74GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td&gt;低VRAMでの可用性優先&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4.06GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10GB&lt;/td&gt;
          &lt;td&gt;軽量ローカルアシスタント&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;IQ4_XS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4.72GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td&gt;品質と速度のバランス&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4.98GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td&gt;E4B の標準的なおすすめ&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5.48GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td&gt;より安定した日常利用&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6_K&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7.07GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;品質優先&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q8_0&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8.19GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;原精度に近い実行&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;BF16&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;15.05GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;研究、評価、精度比較&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;8GB VRAM のGPUなら、&lt;code&gt;E4B Q4_K_M&lt;/code&gt; が現実的な出発点です。
12GB または 16GB VRAM があるなら、&lt;code&gt;E4B Q8_0&lt;/code&gt; も候補になります。&lt;/p&gt;
&lt;h2 id=&#34;gemma-4-26b-a4b-vram表&#34;&gt;Gemma 4 26B A4B VRAM表
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;26B A4B&lt;/code&gt; は MoE 版で、総パラメータ数は大きいものの、推論時には一部の専門家だけを有効化します。
より複雑なQ&amp;amp;A、コード、ツール呼び出し、Agent ワークフローに向いています。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;量子化版&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;GGUF ファイルサイズ&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;最低VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;安全なVRAM目安&lt;/th&gt;
          &lt;th&gt;向く用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.97GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;16GB GPUでの限界テスト&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q2_K_XL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.55GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;低VRAMで 26B を動かす&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q3_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.53GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td&gt;品質を少し上げつつVRAM節約&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ4_XS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.42GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;品質とサイズのバランス&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q4_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.87GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;26B の標準的なおすすめ&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q5_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;21.15GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td&gt;より高品質な量子化&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q6_K&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;23.17GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td&gt;品質優先&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q8_0&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;26.86GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;40GB&lt;/td&gt;
          &lt;td&gt;原精度に近い実行&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;BF16&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.51GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;80GB&lt;/td&gt;
          &lt;td&gt;一般的な単体コンシューマーGPUでは非現実的&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;26B A4B を快適に使う分岐点は 24GB VRAM です。
16GB GPU でも低ビット版は試せますが、コンテキスト長、並列性、マルチモーダル入力は控えめにする必要があります。&lt;/p&gt;
&lt;h2 id=&#34;gemma-4-31b-vram表&#34;&gt;Gemma 4 31B VRAM表
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;31B&lt;/code&gt; はより大きな dense モデルです。
総合能力が高い一方で、VRAM負荷は 26B A4B より直接的に効いてきます。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;量子化版&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;GGUF ファイルサイズ&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;最低VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;安全なVRAM目安&lt;/th&gt;
          &lt;th&gt;向く用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_XXS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8.53GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;極限低VRAMテスト、品質低下は大きい&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.75GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18GB&lt;/td&gt;
          &lt;td&gt;低VRAMテスト&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q2_K_XL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11.77GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td&gt;16GB GPUでの実験&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3_K_S&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.21GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;VRAMを抑えた 3-bit&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14.74GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;3-bit の一般的な折衷案&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;IQ4_XS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.37GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;Q4 に近い折衷案&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18.32GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td&gt;31B の標準的なおすすめ&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;21.66GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td&gt;より高品質な量子化&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6_K&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;25.20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;40GB&lt;/td&gt;
          &lt;td&gt;品質優先&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q8_0&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32.64GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;40GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48GB&lt;/td&gt;
          &lt;td&gt;原精度に近い実行&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;BF16&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;61.41GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;80GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;96GB&lt;/td&gt;
          &lt;td&gt;サーバーまたは大容量VRAMワークステーション&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;31B の低ビット版は 16GB GPU でも実験できますが、日常利用には 24GB VRAM から始めるのが無難です。
&lt;code&gt;Q4_K_M&lt;/code&gt; はバランスのよい選択で、&lt;code&gt;Q5_K_M&lt;/code&gt; 以上は 32GB 以上のVRAMでより現実的です。&lt;/p&gt;
&lt;h2 id=&#34;実際の使用量がファイルサイズより増える理由&#34;&gt;実際の使用量がファイルサイズより増える理由
&lt;/h2&gt;&lt;p&gt;GGUF ファイルサイズは重みの大きさにすぎません。
実行時には次のような追加コストがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;KV cache&lt;/code&gt;：コンテキストが長いほど使用量が増える。&lt;/li&gt;
&lt;li&gt;バッチサイズと並列性：一度に処理する token やユーザー数が増えるとVRAMも増える。&lt;/li&gt;
&lt;li&gt;マルチモーダル部品：画像、音声、動画入力では通常 &lt;code&gt;mmproj&lt;/code&gt; や追加モジュールが必要。&lt;/li&gt;
&lt;li&gt;ランタイムバックエンド：CUDA、Metal、ROCm、CPU/GPU 分割ロードで占用が変わる。&lt;/li&gt;
&lt;li&gt;KV cache 量子化：&lt;code&gt;q8_0&lt;/code&gt;、&lt;code&gt;q4_0&lt;/code&gt; などでVRAMを節約できるが、細部に影響する場合がある。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、表の「最低VRAM」は「起動して短いコンテキストで動く」目安として見るべきです。
32K、64K、128K、さらに 256K コンテキストを使う場合、必要VRAMは大きく増えます。&lt;/p&gt;
&lt;h2 id=&#34;どう選ぶか&#34;&gt;どう選ぶか
&lt;/h2&gt;&lt;p&gt;ローカルで Gemma 4 を試したいだけなら：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;4GB〜6GB VRAM：&lt;code&gt;E2B Q3_K_M&lt;/code&gt; または &lt;code&gt;E2B Q4_K_M&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;8GB VRAM：まず &lt;code&gt;E4B Q4_K_M&lt;/code&gt;。&lt;code&gt;E2B Q8_0&lt;/code&gt; も選択肢。&lt;/li&gt;
&lt;li&gt;12GB VRAM：&lt;code&gt;E4B Q8_0&lt;/code&gt;、または 26B/31B の低ビット版を試す。&lt;/li&gt;
&lt;li&gt;16GB VRAM：&lt;code&gt;26B A4B UD-Q3_K_M&lt;/code&gt; または &lt;code&gt;31B Q3_K_S&lt;/code&gt; を試せるが、長いコンテキストは期待しすぎない。&lt;/li&gt;
&lt;li&gt;24GB VRAM：&lt;code&gt;26B A4B UD-Q4_K_M&lt;/code&gt; と &lt;code&gt;31B Q4_K_M&lt;/code&gt; が本命。&lt;/li&gt;
&lt;li&gt;32GB 以上：&lt;code&gt;Q5_K_M&lt;/code&gt;、&lt;code&gt;Q6_K&lt;/code&gt;、またはより長いコンテキストを検討。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;多くのユーザーに BF16 は不要です。
ローカル部署で重要なのは、ファイルサイズの大きさではなく、VRAM、速度、コンテキスト長、出力品質のバランスです。&lt;/p&gt;
&lt;h2 id=&#34;参考元&#34;&gt;参考元
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/google/gemma-4-E2B-it&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/gemma-4-E2B-it - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/google/gemma-4-E4B-it&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/gemma-4-E4B-it - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/ggml-org/gemma-4-26B-A4B-it-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ggml-org/gemma-4-26B-A4B-it-GGUF - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/unsloth/gemma-4-E2B-it-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;unsloth/gemma-4-E2B-it-GGUF - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/unsloth/gemma-4-E4B-it-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;unsloth/gemma-4-E4B-it-GGUF - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/unsloth/gemma-4-26B-A4B-it-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;unsloth/gemma-4-26B-A4B-it-GGUF - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/unsloth/gemma-4-31B-it-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;unsloth/gemma-4-31B-it-GGUF - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenAI が Advanced Account Security を発表：ChatGPT と Codex アカウントに強力な保護層を追加</title>
        <link>https://knightli.com/ja/2026/05/01/openai-advanced-account-security/</link>
        <pubDate>Fri, 01 May 2026 06:15:29 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/openai-advanced-account-security/</guid>
        <description>&lt;p&gt;OpenAI は 2026 年 4 月 30 日、ChatGPT アカウント向けの任意の高度なセキュリティ設定として &lt;code&gt;Advanced Account Security&lt;/code&gt; を発表した。&lt;/p&gt;
&lt;p&gt;主な対象は二つのユーザー層だ。一つは、ジャーナリスト、選挙で選ばれた公職者、政治的反体制派、研究者など、標的型攻撃を受けやすい人たち。もう一つは、ChatGPT と Codex のアカウントにより強い保護を加えたい、セキュリティ意識の高いユーザーである。&lt;/p&gt;
&lt;p&gt;この機能を有効にすると、ChatGPT だけでなく、同じログインアカウントでアクセスする Codex も保護される。&lt;/p&gt;
&lt;h2 id=&#34;なぜ-chatgpt-アカウントにより高い安全性が必要なのか&#34;&gt;なぜ ChatGPT アカウントにより高い安全性が必要なのか
&lt;/h2&gt;&lt;p&gt;現在、多くの人が ChatGPT をますます私的で、リスクの高い仕事に使うようになっている。&lt;/p&gt;
&lt;p&gt;一つの ChatGPT アカウントには、次のようなものが含まれる可能性がある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;個人的な相談や長期的な会話&lt;/li&gt;
&lt;li&gt;業務文書とプロジェクトの文脈&lt;/li&gt;
&lt;li&gt;接続済みのツールとワークフロー&lt;/li&gt;
&lt;li&gt;Codex 内のコードや開発タスク&lt;/li&gt;
&lt;li&gt;企業、研究、セキュリティ関連の資料&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;アカウントが乗っ取られた場合、被害はチャット履歴の漏洩だけでは済まない。攻撃者は接続済みツールへアクセスしたり、機密性の高い文脈を見たり、進行中の作業に干渉したりする可能性がある。&lt;/p&gt;
&lt;p&gt;そのため、今回 OpenAI が導入したのは単なるログインオプションではなく、より厳格なアカウント保護のセットである。&lt;/p&gt;
&lt;h2 id=&#34;advanced-account-security-に含まれる保護&#34;&gt;Advanced Account Security に含まれる保護
&lt;/h2&gt;&lt;p&gt;OpenAI はこの機能を、ChatGPT ウェブ版アカウントの Security 設定に配置している。ユーザーは任意で有効にできる。&lt;/p&gt;
&lt;p&gt;有効にすると、いくつかの面でアカウントの安全性が高まる。&lt;/p&gt;
&lt;p&gt;第一に、ログイン方法が強化される。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Advanced Account Security&lt;/code&gt; は &lt;code&gt;passkeys&lt;/code&gt; または物理セキュリティキーを要求し、パスワードベースのログインを無効にする。目的は、フィッシングに強いログイン方法を、それを必要とする人たちの標準にすることだ。&lt;/p&gt;
&lt;p&gt;第二に、アカウント復旧がより厳格になる。&lt;/p&gt;
&lt;p&gt;従来のアカウント復旧は、多くの場合メールやSMSに依存している。攻撃者がユーザーのメールアカウントや電話番号を支配した場合、それを使ってアカウントをリセットできる可能性がある。このリスクを下げるため、Advanced Account Security はメールと SMS による復旧を無効化し、バックアップ passkeys、セキュリティキー、復旧キーなど、より強力な復旧方法を使う。&lt;/p&gt;
&lt;p&gt;ここには重要な代償がある。有効にした後は、アカウント復旧がユーザー自身による復旧手段の管理に大きく依存する。OpenAI は、この機能を有効にしたユーザーが復旧手段を失った場合、OpenAI Support はアカウント復旧を支援できないと明示している。&lt;/p&gt;
&lt;p&gt;第三に、セッションが短くなり、管理がより明確になる。&lt;/p&gt;
&lt;p&gt;OpenAI はログインセッションを短くし、端末やアクティブなセッションが侵害された場合の露出時間を減らす。ユーザーはログイン通知も受け取り、複数デバイスでのアクティブセッションを確認・管理できる。&lt;/p&gt;
&lt;p&gt;第四に、学習除外が自動になる。&lt;/p&gt;
&lt;p&gt;機密情報を扱う人にとって、会話をモデル学習に使わせないことは重要なプライバシー設定である。Advanced Account Security を有効にすると、この設定が自動的に適用される。つまり、これらのアカウントの会話は OpenAI モデルの学習に使われない。&lt;/p&gt;
&lt;h2 id=&#34;yubico-と連携して物理セキュリティキーを広げる&#34;&gt;Yubico と連携して物理セキュリティキーを広げる
&lt;/h2&gt;&lt;p&gt;OpenAI は、Yubico と提携してカスタムのセキュリティキーセットを提供することも発表した。&lt;/p&gt;
&lt;p&gt;含まれるのは次の二つだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;YubiKey C Nano&lt;/code&gt;：ノートPCに挿したまま使うことを想定し、日常のログイン負担を減らす&lt;/li&gt;
&lt;li&gt;&lt;code&gt;YubiKey C NFC&lt;/code&gt;：バックアップとして、またノートPCとモバイルデバイスの両方で使いやすい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenAI は、ユーザーが他の FIDO 準拠の物理セキュリティキーや、ソフトウェア passkeys を使うこともできるとしている。&lt;/p&gt;
&lt;p&gt;これは、Advanced Account Security が特定のハードウェアに縛られているわけではなく、フィッシングに強い認証方式を中心に設計されていることを示している。&lt;/p&gt;
&lt;h2 id=&#34;trusted-access-for-cyber-ユーザーには有効化が求められる&#34;&gt;Trusted Access for Cyber ユーザーには有効化が求められる
&lt;/h2&gt;&lt;p&gt;OpenAI はさらに、&lt;code&gt;Trusted Access for Cyber&lt;/code&gt; の個人メンバーが、より高性能で許容範囲の広いサイバーセキュリティ向けモデルにアクセスする場合、2026 年 6 月 1 日から Advanced Account Security の有効化が必要になると述べている。&lt;/p&gt;
&lt;p&gt;組織ユーザーは別の方法でも要件を満たせる。自社のシングルサインオンのワークフローが、すでにフィッシング耐性のある認証を採用していると証明する方法だ。&lt;/p&gt;
&lt;p&gt;この方針は妥当だ。モデル能力が強くなるほど、アカウント保護も強くする必要がある。特にサイバーセキュリティ研究、脆弱性分析、レッドチームといった場面では、アカウント自体が高価値の標的になる。&lt;/p&gt;
&lt;h2 id=&#34;誰が有効にすべきか&#34;&gt;誰が有効にすべきか
&lt;/h2&gt;&lt;p&gt;この機能は、必ずしもすべての人に向いているわけではない。&lt;/p&gt;
&lt;p&gt;普通の会話に使うだけで、より厳格なアカウント復旧の複雑さを負いたくない場合は、しばらく様子を見るのもよい。&lt;/p&gt;
&lt;p&gt;ただし、次のようなユーザーは真剣に検討する価値がある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT で機密性の高い業務資料をよく扱う人&lt;/li&gt;
&lt;li&gt;Codex でプライベートコードリポジトリを扱う人&lt;/li&gt;
&lt;li&gt;ジャーナリスト、公共政策関係者、研究者、企業幹部などの高リスクユーザー&lt;/li&gt;
&lt;li&gt;サイバーセキュリティ従事者&lt;/li&gt;
&lt;li&gt;すでに passkeys や物理セキュリティキーに慣れている人&lt;/li&gt;
&lt;li&gt;フィッシング、SMS乗っ取り、メールアカウント乗っ取りを特に警戒している人&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;有効にする前に、バックアップ passkey、セキュリティキー、復旧キーを用意し、それらが適切に保管されていることを確認したほうがよい。そうしないと、安全性は高まる一方で、アカウント復旧の難度も明らかに上がる。&lt;/p&gt;
&lt;h2 id=&#34;ai-プロダクトにとって何を意味するのか&#34;&gt;AI プロダクトにとって何を意味するのか
&lt;/h2&gt;&lt;p&gt;Advanced Account Security はモデル能力の更新ではない。しかし、AI プロダクトがより高リスクな利用段階に入っていることを反映している。&lt;/p&gt;
&lt;p&gt;ChatGPT と Codex がワークフロー、コード、文書、企業向けコネクター、長期的な文脈を担い始めると、アカウントはもはや「チャットツールにログインする入口」ではなく、AI 作業環境の鍵になる。&lt;/p&gt;
&lt;p&gt;こうしたプロダクトが個人の作業台に近づくほど、アカウントセキュリティ、復旧メカニズム、セッション管理、学習データ制御は重要になる。&lt;/p&gt;
&lt;p&gt;OpenAI が passkeys、物理セキュリティキー、復旧制限、セッション管理、学習除外を一つの設定にまとめた方向性は妥当だ。高リスクユーザーが明確な入口から、機密性の高い作業に適したレベルまでアカウント保護を引き上げられる。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Advanced Account Security&lt;/code&gt; は、ChatGPT と Codex の高セキュリティモードと理解できる。&lt;/p&gt;
&lt;p&gt;より強いログイン、より厳格な復旧、短いセッション、ログイン通知、自動的な学習除外によって、アカウント乗っ取り後のリスクを下げる。その代わり、ユーザーは自分の復旧手段をより慎重に管理する必要がある。有効化後は従来のメールや SMS による復旧が使えず、OpenAI Support も代わりに救済できないからだ。&lt;/p&gt;
&lt;p&gt;すでに ChatGPT や Codex を重要な仕事に使っているなら、特にプライベートコード、機密文書、高リスクな立場に関わる場合、この機能は注目に値する。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/advanced-account-security/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Introducing Advanced Account Security - OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Gemini が Google built-in 搭載車に登場：車載音声アシスタントが本物の AI アシスタントに近づく</title>
        <link>https://knightli.com/ja/2026/05/01/gemini-cars-with-google-built-in/</link>
        <pubDate>Fri, 01 May 2026 06:09:57 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/gemini-cars-with-google-built-in/</guid>
        <description>&lt;p&gt;Google は 2026 年 4 月 30 日、&lt;code&gt;Gemini&lt;/code&gt; が &lt;code&gt;Google built-in&lt;/code&gt; 搭載車に順次展開され、Google Assistant のアップグレード版として提供されると発表した。&lt;/p&gt;
&lt;p&gt;重要なのは、単に「車内に AI アシスタントが増える」ことではない。車載音声インタラクションが、固定コマンドからより自然な連続会話へ移りつつある点だ。ユーザーは厳密な指示形式を覚える必要がなく、普通のアシスタントと話すように、Gemini にナビ、メッセージ処理、車両情報の確認、さらには一部の車内設定の操作を頼めるようになる。&lt;/p&gt;
&lt;h2 id=&#34;まずは米国の英語ユーザーから&#34;&gt;まずは米国の英語ユーザーから
&lt;/h2&gt;&lt;p&gt;Google の説明によると、このアップデートは新車と既存車の両方に提供される。条件は、その車が &lt;code&gt;Google built-in&lt;/code&gt; に対応しており、ユーザーが車載システムで Google アカウントにログインしていることだ。&lt;/p&gt;
&lt;p&gt;rollout はまず米国の英語ユーザーから始まり、その後さらに多くの言語と国へ拡大される。対象ユーザーには、車内で Gemini へのアップグレード案内が表示される。アップグレード後は、以下の方法で Gemini を呼び出せる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Hey Google&lt;/code&gt; と話しかける&lt;/li&gt;
&lt;li&gt;ホーム画面のマイクをタップする&lt;/li&gt;
&lt;li&gt;ステアリングホイールの音声ボタンを使う&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは、Google が Gemini をまったく新しい入口として作り直したわけではないことを示している。従来の車載音声入口を維持しつつ、その基盤となるアシスタントをより強力な Gemini に置き換えている。&lt;/p&gt;
&lt;h2 id=&#34;車載音声は固定コマンドだけに頼らなくなる&#34;&gt;車載音声は固定コマンドだけに頼らなくなる
&lt;/h2&gt;&lt;p&gt;従来の車載音声アシスタントでよくある問題は、できることは少なくないのに、ユーザーがかなり「正確な」言い方を求められることだ。表現が少し複雑になると、アシスタントが理解できなかったり、最も基本的な動作しか実行できなかったりする。&lt;/p&gt;
&lt;p&gt;Gemini が車載システムに入ることで、Google は自然な会話能力を強調している。たとえばユーザーは直接こう言える。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I need to grab lunch, find some highly rated sit-down restaurants along the way. I&amp;rsquo;m not in a rush, oh, and I’d like to eat outside.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Gemini は Google Maps の情報を参照して、ルート沿いの適切なレストランを探せる。ユーザーはその後、駐車場の状況やベジタリアン対応の有無などを続けて質問でき、検索を最初からやり直す必要がない。&lt;/p&gt;
&lt;p&gt;このようなやり取りは運転中の文脈に合っている。運転中は、スマートフォンのように何度も絞り込み、タップし、条件を修正するのが難しい。音声アシスタントがより完全な意図を理解できれば、注意散漫を明確に減らせる。&lt;/p&gt;
&lt;h2 id=&#34;地図メッセージ音楽がより扱いやすくなる&#34;&gt;地図、メッセージ、音楽がより扱いやすくなる
&lt;/h2&gt;&lt;p&gt;Google が挙げている例は、ほとんどが運転中によくあるニーズに基づいている。&lt;/p&gt;
&lt;p&gt;第一のカテゴリは、ルートと場所の検索だ。&lt;/p&gt;
&lt;p&gt;Gemini は Google Maps の情報を使って、道中のレストラン、観光スポット、充電ステーションを探せる。また、現在のルートに関連する質問にも答えられる。たとえばスタジアムの近くを通るとき、近くでイベントがあるのか、それが交通に影響するのかを聞ける。&lt;/p&gt;
&lt;p&gt;第二のカテゴリは、メッセージ処理だ。&lt;/p&gt;
&lt;p&gt;ユーザーは Gemini に新しいテキストメッセージを要約させ、その文脈に基づいて返信できる。たとえば友人に「向かっている途中」と伝え、到着予定時刻を添えるよう頼める。内容を変えたくなった場合も、最初からやり直さずに追加で指示できる。&lt;/p&gt;
&lt;p&gt;第三のカテゴリは、音楽と雰囲気づくりだ。&lt;/p&gt;
&lt;p&gt;ユーザーはラジオ局名や具体的なプレイリストを知っている必要はない。聴きたい内容をそのまま説明すればよい。たとえばジャズのラジオ局を再生したり、YouTube Music で山道ドライブに合う明るい 70 年代の folk-rock を流し、スローバラードは飛ばすよう頼んだりできる。&lt;/p&gt;
&lt;p&gt;これらの機能自体は完全に新しいものではない。Gemini の価値は、複数の条件を一つの自然言語リクエストとして処理し、ユーザーを固定コマンドに戻さない点にある。&lt;/p&gt;
&lt;h2 id=&#34;gemini-live-によって車内でも移動しながら会話できる&#34;&gt;Gemini Live によって車内でも移動しながら会話できる
&lt;/h2&gt;&lt;p&gt;Google は、&lt;code&gt;Gemini Live&lt;/code&gt; も車載体験に入ると述べている。現在は beta だ。ユーザーは Gemini Live ボタンをタップするか、&lt;code&gt;Hey Google, let&#39;s talk&lt;/code&gt; と言うことで、より自由な会話を始められる。&lt;/p&gt;
&lt;p&gt;この場面は、「運転中の伴走型の学習やブレインストーミング」に近い。たとえば Lake Tahoe に向かう途中で、Gemini に地域の歴史や豆知識を話してもらえる。興味を引く内容があれば、途中で割り込んでさらに質問できる。到着後のハイキングコースや活動計画を手伝ってもらうこともできる。&lt;/p&gt;
&lt;p&gt;従来の車載アシスタントとの差は明確だ。従来のアシスタントはツールボタンに近いが、Gemini Live は連続的に会話できる音声インターフェイスに近い。&lt;/p&gt;
&lt;h2 id=&#34;オーナーズマニュアルとリアルタイム車両状態が重要な違い&#34;&gt;オーナーズマニュアルとリアルタイム車両状態が重要な違い
&lt;/h2&gt;&lt;p&gt;さらに注目すべきなのは、Gemini が一般的な質問に答えるだけではないことだ。Google は、自動車メーカーと協力し、Gemini を車両システムにより深く統合していると説明している。&lt;/p&gt;
&lt;p&gt;これにより、車そのものに近い能力がいくつか生まれる。&lt;/p&gt;
&lt;p&gt;第一に、ユーザーは車両機能について質問できる。&lt;/p&gt;
&lt;p&gt;たとえば「自動洗車の前に車をどう準備すればよいか？」や「ガレージの天井が低く、トランクが当たってしまう。トランクが全開にならないように設定するには？」と聞ける。Gemini はメーカー提供のオーナーズマニュアルをもとに、具体的な車種に合わせた回答を返す。利用できる情報の範囲や細かさは、ブランドや車種によって異なる。&lt;/p&gt;
&lt;p&gt;第二に、EV ユーザーはリアルタイムのバッテリー残量や航続距離について質問できる。&lt;/p&gt;
&lt;p&gt;たとえば現在のバッテリー残量、目的地到着時の予測残量、近くの充電ステーションの検索などだ。さらに Google Maps と組み合わせて、充電中に立ち寄れる近くのカフェなども探せる。&lt;/p&gt;
&lt;p&gt;第三に、一部の車内設定を自然言語で調整できる。&lt;/p&gt;
&lt;p&gt;Google の例では、ユーザーが「車内が曇っていて寒い」と言うと、Gemini がその意図を理解し、暖房を上げてデフロスターをオンにできる。&lt;/p&gt;
&lt;p&gt;こうした能力は、単にチャットボットを車載画面に移すよりも実用的だ。車は明確な状態、ハードウェア能力、安全上の境界を持つ環境である。AI アシスタントが車両の文脈を理解できれば、通常のQ&amp;amp;Aよりも価値は高くなる。&lt;/p&gt;
&lt;h2 id=&#34;車載-ai-では境界線がさらに重要になる&#34;&gt;車載 AI では境界線がさらに重要になる
&lt;/h2&gt;&lt;p&gt;車内での AI への要求は、スマートフォンやウェブページとは異なる。&lt;/p&gt;
&lt;p&gt;運転中、ユーザーは頻繁に画面を見ることも、AI を修正することに多くの注意を割くこともできない。アシスタントは十分に簡潔で信頼でき、重要な場面で新しい負担を生まない必要がある。&lt;/p&gt;
&lt;p&gt;そのため、Gemini が車に入ることは、あらゆる複雑なタスクが車内に適しているという意味ではない。より合理的な方向性は次のようなものだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ナビゲーションや情報検索の操作コストを下げる&lt;/li&gt;
&lt;li&gt;多階層メニューを自然言語で置き換える&lt;/li&gt;
&lt;li&gt;ユーザーが車両機能を素早く理解できるようにする&lt;/li&gt;
&lt;li&gt;注意をそらさずにメッセージやメディアを扱う&lt;/li&gt;
&lt;li&gt;EV ユーザーによりスムーズな充電とルート情報を提供する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一方で、高リスクな操作には明確な境界が必要だ。運転安全に関わる設定、確認が必要なメッセージ送信、車両制御に関わる操作には、十分に明確な確認フローがあるべきだ。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Gemini が &lt;code&gt;Google built-in&lt;/code&gt; 搭載車に入ることは、AI アシスタントがスマートフォンやウェブページから日常環境へさらに広がっていく一歩だ。&lt;/p&gt;
&lt;p&gt;その意味は、車内でようやく「会話」できるようになることではない。車載音声アシスタントがより複雑な意図を理解し、地図、メッセージ、音楽、オーナーズマニュアル、一部の車両状態情報を組み合わせてタスクを完了できるようになることにある。&lt;/p&gt;
&lt;p&gt;rollout が順調に進めば、車載音声インタラクションは「コマンドを覚える」ものから「ニーズを説明する」ものへ徐々に変わっていくかもしれない。これは運転シーンにとって重要だ。本当に優れた車載 AI は、ドライバーに多くの注意を割かせるべきではないからだ。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.google/products-and-platforms/platforms/android/cars-with-google-built-in-gemini-tips-2026/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Your car with Google built-in is about to get smarter, thanks to Gemini - Google Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude for Creative Work：Anthropic が Claude を Adobe、Blender、Ableton、SketchUp に接続</title>
        <link>https://knightli.com/ja/2026/05/01/claude-for-creative-work-connectors/</link>
        <pubDate>Fri, 01 May 2026 05:52:14 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/claude-for-creative-work-connectors/</guid>
        <description>&lt;p&gt;Anthropic は 2026 年 4 月 28 日に &lt;code&gt;Claude for Creative Work&lt;/code&gt; を発表した。重要なのは、新しいチャットボットをもう一つ出したことではなく、クリエイティブ業界がすでに使っているソフトウェアの中に Claude を接続しようとしている点だ。&lt;/p&gt;
&lt;p&gt;今回の提携先は象徴的だ。&lt;code&gt;Blender&lt;/code&gt;、&lt;code&gt;Autodesk&lt;/code&gt;、&lt;code&gt;Adobe&lt;/code&gt;、&lt;code&gt;Ableton&lt;/code&gt;、&lt;code&gt;Splice&lt;/code&gt; に加え、&lt;code&gt;Affinity by Canva&lt;/code&gt;、&lt;code&gt;Resolume&lt;/code&gt;、&lt;code&gt;SketchUp&lt;/code&gt; などのツールエコシステムも含まれている。&lt;/p&gt;
&lt;p&gt;簡単に言えば、Anthropic がやろうとしているのは、Claude をチャット欄で助言する存在にとどめず、デザイン、3D、音楽、映像、ライブビジュアルといった具体的なワークフローに入れることだ。&lt;/p&gt;
&lt;h2 id=&#34;claude-は審美眼を置き換えないが多くの面倒な作業は置き換えられる&#34;&gt;Claude は審美眼を置き換えないが、多くの面倒な作業は置き換えられる
&lt;/h2&gt;&lt;p&gt;Anthropic の発表はかなり抑制的だ。Claude はクリエイターのセンスや想像力を置き換えるものではない。&lt;/p&gt;
&lt;p&gt;これは正しい判断だ。クリエイティブ作業の要点は、多くの場合「何かを生成すること」ではなく、どの方向を続けるべきか、どの細部を残すべきか、どの案がプロジェクトの雰囲気に合っているかを判断することにある。&lt;/p&gt;
&lt;p&gt;一方で、クリエイティブの工程には大量の反復作業も含まれている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;画像を一括で調整する&lt;/li&gt;
&lt;li&gt;レイヤー名を変更する&lt;/li&gt;
&lt;li&gt;複数形式でファイルを書き出す&lt;/li&gt;
&lt;li&gt;アセットを整理する&lt;/li&gt;
&lt;li&gt;ソフトウェアのドキュメントを調べる&lt;/li&gt;
&lt;li&gt;シーンを変更するスクリプトを書く&lt;/li&gt;
&lt;li&gt;複数のツール間で形式を変換する&lt;/li&gt;
&lt;li&gt;アイデアをすばやく見える草案にする&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの工程に必ずしも「ひらめき」は必要ないが、時間は大きく消費する。Claude の役割は、クリエイターをこうした機械的な手順から解放することに近い。&lt;/p&gt;
&lt;h2 id=&#34;connectors-が今回の中核&#34;&gt;Connectors が今回の中核
&lt;/h2&gt;&lt;p&gt;今回の発表の鍵は &lt;code&gt;connectors&lt;/code&gt; だ。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;connectors&lt;/code&gt; は、Claude と外部プラットフォームやソフトウェアをつなぐ橋と考えられる。ユーザーが要望を Claude にコピーし、それから手作業でソフトウェアに戻って操作するのではなく、Claude がツールを直接理解し、機能を呼び出したり、関連ドキュメントを読んだりできるようにする。&lt;/p&gt;
&lt;p&gt;Anthropic の発表で挙げられた接続先には、次のようなものがある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ableton&lt;/code&gt;：Claude が Live と Push の公式ドキュメントに基づいて質問に答えられるようにする。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Adobe for creativity&lt;/code&gt;：Creative Cloud の 50 以上のツールに接続し、Photoshop、Premiere、Express などをカバーする。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Affinity by Canva&lt;/code&gt;：プロ向けクリエイティブワークフローの反復的な制作タスクを自動化する。たとえば画像の一括調整、レイヤー名の変更、ファイル書き出しなど。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Autodesk Fusion&lt;/code&gt;：Fusion のサブスクリプションを持つデザイナーやエンジニアが、対話を通じて 3D モデルを作成・修正できるようにする。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Blender&lt;/code&gt;：自然言語で Blender の Python API を使い、複雑なシーンの理解、ドキュメント参照、機能拡張を支援する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Resolume Arena&lt;/code&gt; と &lt;code&gt;Resolume Wire&lt;/code&gt;：VJ やライブビジュアルアーティストが自然言語で Arena、Avenue、Wire をリアルタイムに制御できるようにする。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SketchUp&lt;/code&gt;：Claude との会話を 3D モデリングの出発点にする。たとえば部屋、家具、敷地のコンセプトを説明し、その後 SketchUp で細部を詰めていく。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Splice&lt;/code&gt;：音楽制作者が Claude から直接 royalty-free samples のライブラリを検索できるようにする。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの統合は、デザイン、音声、3D、映像、ライブパフォーマンス、エンジニアリングモデリングをカバーしている。単一方向の小さな実験ではなく、Anthropic が明確に「クリエイティブソフトウェアの作業台」へ向かっていることを示している。&lt;/p&gt;
&lt;h2 id=&#34;クリエイティブ作業で何に使えるのか&#34;&gt;クリエイティブ作業で何に使えるのか
&lt;/h2&gt;&lt;p&gt;発表を見ると、クリエイティブ作業における Claude の用途はいくつかに分けられる。&lt;/p&gt;
&lt;p&gt;第一は、複雑なツールを学ぶことだ。&lt;/p&gt;
&lt;p&gt;多くのクリエイティブソフトは強力だが、学習曲線も急だ。Blender、Ableton、Fusion、Premiere はその典型である。ユーザーは検索結果、フォーラム、公式ドキュメントの間を行き来する代わりに、Claude に modifier stack の説明、合成テクニックの解説、見慣れない機能の実演を頼める。&lt;/p&gt;
&lt;p&gt;第二は、スクリプトやプラグインを書くことだ。&lt;/p&gt;
&lt;p&gt;クリエイティブソフトには自動化できる余地が大量にある。Claude Code は、スクリプト、プラグイン、shader、プロシージャルアニメーション、パラメトリックモデルを書く手助けができる。少し技術は分かるが、常に API を調べ続けたくはないクリエイターにとって、この価値はかなり実用的だ。&lt;/p&gt;
&lt;p&gt;第三は、ツールチェーンをつなぐことだ。&lt;/p&gt;
&lt;p&gt;実際のプロジェクトは、たいてい一つのソフトだけでは完結しない。デザインは Adobe、3D は Blender や SketchUp、音声は Ableton、素材は Splice、最後は映像やライブ演出システムに入ることもある。Claude は形式変換、データの再構成、アセット同期を助け、手作業の受け渡しを減らせる。&lt;/p&gt;
&lt;p&gt;第四は、すばやい探索と納品だ。&lt;/p&gt;
&lt;p&gt;Anthropic は &lt;code&gt;Claude Design&lt;/code&gt; にも触れている。これは Anthropic Labs の新製品で、ソフトウェア体験のアイデアを探索するためのものだ。フィードバックに基づいてビジュアル案を反復し、デザイン結果を他のツールへ書き出すことができる。出発点は Canva だ。&lt;/p&gt;
&lt;p&gt;第五は、反復的な制作作業を減らすことだ。&lt;/p&gt;
&lt;p&gt;たとえば、アセットのバッチ処理、プロジェクト構造の作成、シーンオブジェクトの一括調整、自動書き出しなどである。多くのクリエイターはそれができないわけではない。ただ、午後をまるごと繰り返しクリックに費やしたくないのだ。&lt;/p&gt;
&lt;h2 id=&#34;blender-は最も注目すべき一部&#34;&gt;Blender は最も注目すべき一部
&lt;/h2&gt;&lt;p&gt;今回の発表で、&lt;code&gt;Blender&lt;/code&gt; の位置づけは特に重要だ。&lt;/p&gt;
&lt;p&gt;Blender は無料でオープンソースの 3D 制作スイートで、インディーゲーム、モーショングラフィックス、建築ビジュアライゼーション、映像制作などをカバーしている。強力な Python API を持ち、複雑なワークフローも多い。&lt;/p&gt;
&lt;p&gt;Blender の開発者はすでに MCP connector を作成しており、現在 Claude で正式に利用できる。&lt;/p&gt;
&lt;p&gt;このコネクターでできることには、次のようなものがある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Blender シーン全体を分析・デバッグする&lt;/li&gt;
&lt;li&gt;シーン内のオブジェクトを一括変更する&lt;/li&gt;
&lt;li&gt;Blender Python API を使ってカスタムスクリプトを書く&lt;/li&gt;
&lt;li&gt;新しいツールを Blender のインターフェイスに直接追加する&lt;/li&gt;
&lt;li&gt;複雑な設定やドキュメントの理解を助ける&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;さらに重要なのは、Anthropic が Blender Development Fund に参加し、Blender プロジェクトの patron になったことだ。これは Blender が Python API を継続的に発展させるための支援になる。&lt;/p&gt;
&lt;p&gt;この出来事には二つのシグナルがある。&lt;/p&gt;
&lt;p&gt;第一に、Anthropic は商用ソフトに接続したいだけではなく、オープンソースの制作ツールにも賭けている。&lt;/p&gt;
&lt;p&gt;第二に、この connector は &lt;code&gt;MCP&lt;/code&gt; ベースなので、理論上は Claude だけでなく、他の大規模モデルも接続できる。これは Blender のオープンソース性と相互運用性の方向性に合っている。&lt;/p&gt;
&lt;h2 id=&#34;これはai-がデザイナーを置き換える話ではなくai-がツール層に入る話&#34;&gt;これは「AI がデザイナーを置き換える」話ではなく、「AI がツール層に入る」話
&lt;/h2&gt;&lt;p&gt;今回の発表で最も注目すべき点は、Claude が画像、音楽、3D モデルを生成できるかどうかではない。&lt;/p&gt;
&lt;p&gt;より重要なのは、AI がチャット欄からツール層へ移動していることだ。&lt;/p&gt;
&lt;p&gt;これまで多くの AI クリエイティブツールの体験は、次のようなものだった。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;AI ツール内で要望を説明する。&lt;/li&gt;
&lt;li&gt;結果を得る。&lt;/li&gt;
&lt;li&gt;ダウンロードまたはコピーする。&lt;/li&gt;
&lt;li&gt;専門ソフトに戻って手作業で修正する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;現在の方向性は、むしろ次のようなものだ。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Claude があなたのクリエイティブソフトを理解する。&lt;/li&gt;
&lt;li&gt;Claude が関連ドキュメントやプロジェクトの文脈を読む。&lt;/li&gt;
&lt;li&gt;Claude がスクリプトを生成し、ツールを操作し、素材を整理し、草案を作る。&lt;/li&gt;
&lt;li&gt;クリエイターは慣れたソフトの中で判断と仕上げを続ける。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;これはプロユーザーにとってより魅力的だ。彼らは既存のツールチェーンを離れたいわけでも、すべての作業をまったく新しい AI プラットフォームへ移したいわけでもないからだ。&lt;/p&gt;
&lt;h2 id=&#34;学生とクリエイティブ教育への影響&#34;&gt;学生とクリエイティブ教育への影響
&lt;/h2&gt;&lt;p&gt;Anthropic は、creative computation を含む授業を支援するために、アートやデザインのプログラムと協力していることにも触れている。&lt;/p&gt;
&lt;p&gt;最初のプログラムには、次のものが含まれる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rhode Island School of Design の Art and Computation&lt;/li&gt;
&lt;li&gt;Ringling College of Art and Design の Fundamentals of AI for Creatives&lt;/li&gt;
&lt;li&gt;Goldsmiths, University of London の MA/MFA Computational Arts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;学生と教員は Claude と新しい connectors へのアクセスを得る。そのフィードバックは、Anthropic がクリエイティブ実践者の本当のニーズを理解する助けになる。&lt;/p&gt;
&lt;p&gt;この点も興味深い。AI の創作能力が「素材を生成する」段階にとどまると、単なるデモになりやすい。しかし授業に入ると、より重要な問いが出てくる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;学生はツールの背後にあるプロセスをどう理解するのか&lt;/li&gt;
&lt;li&gt;AI を探索やプロトタイピングの道具としてどう使うのか&lt;/li&gt;
&lt;li&gt;自分自身の判断力をどう保つのか&lt;/li&gt;
&lt;li&gt;コードと自動化で創作の境界をどう広げるのか&lt;/li&gt;
&lt;li&gt;すべての作品が同じ AI っぽさになることをどう避けるのか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの問いは、「AI はクリエイターを置き換えるのか」と単純に議論するよりも実際的だ。&lt;/p&gt;
&lt;h2 id=&#34;今回の発表に注目すべき人&#34;&gt;今回の発表に注目すべき人
&lt;/h2&gt;&lt;p&gt;今回の &lt;code&gt;Claude for Creative Work&lt;/code&gt; は、特に次のような人にとって注目に値する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Blender、SketchUp、Fusion で 3D モデリングをする人&lt;/li&gt;
&lt;li&gt;Adobe、Affinity でデザインや映像制作をする人&lt;/li&gt;
&lt;li&gt;Ableton、Splice で音楽制作をする人&lt;/li&gt;
&lt;li&gt;複数のクリエイティブツールをワークフローとしてつなぐ必要がある人&lt;/li&gt;
&lt;li&gt;少しスクリプトを書けて、クリエイティブソフトを自動化したい人&lt;/li&gt;
&lt;li&gt;クリエイティブ教育、インタラクションデザイン、計算芸術の授業に関わる人&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たまに AI で画像を生成するだけなら、今回の発表がすぐに体験を変えるとは限らない。&lt;/p&gt;
&lt;p&gt;しかし、すでに専門ソフトの中で作業していて、「何をすればいいかは分かっているが、この手順が面倒すぎる」と感じることが多いなら、connectors には大きな価値がある。&lt;/p&gt;
&lt;h2 id=&#34;注意すべき境界&#34;&gt;注意すべき境界
&lt;/h2&gt;&lt;p&gt;この種のツールも万能ではない。&lt;/p&gt;
&lt;p&gt;第一に、Claude の結果が審美性、ブランド、プロジェクト目標に合っているかどうかは、依然としてユーザーが判断する必要がある。&lt;/p&gt;
&lt;p&gt;第二に、専門ソフトを自動操作するときは、小さな範囲のタスクから始めるのがよい。復旧しにくいプロジェクトファイルを、最初から一括変更させるべきではない。&lt;/p&gt;
&lt;p&gt;第三に、コネクターの品質は非常に重要だ。ドキュメントを調べるだけの connector と、実際にソフトウェアを操作できる connector は、まったく異なる体験である。&lt;/p&gt;
&lt;p&gt;第四に、クリエイティブソフトのプロジェクトには複雑なファイル、素材依存、バージョン管理がつきものだ。AI が関わるようになると、バックアップとロールバック可能な流れがさらに重要になる。&lt;/p&gt;
&lt;p&gt;第五に、著作権、ライセンス、素材の出所は引き続き自分で確認する必要がある。たとえば Splice が強調しているのは royalty-free samples だが、実際のプロジェクトで使うときは具体的なライセンス条件を確認しなければならない。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude for Creative Work&lt;/code&gt; は単発の機能更新ではなく、Anthropic が Claude をクリエイティブソフトウェアのエコシステムへ押し出す一歩だ。&lt;/p&gt;
&lt;p&gt;その重点は、Claude をクリエイターにすることではない。Claude を、ドキュメント検索、スクリプト作成、バッチ処理、ソフトウェア連携、草案生成、反復作業の削減を助ける、クリエイターのそばのツールアシスタントにすることだ。&lt;/p&gt;
&lt;p&gt;長期的に価値があるのは、Claude が Blender、Adobe、Ableton、SketchUp といった、クリエイターが日々使う環境に入り始めた点である。&lt;/p&gt;
&lt;p&gt;AI が単独のウェブページではなく、専門ツールを理解し呼び出せる存在になるとき、クリエイティブワークフローはより実際的な形で変化していく。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/claude-for-creative-work&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude for Creative Work - Anthropic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>FinceptTerminal：オープンソース金融端末、量的研究、AI Agent ワークベンチ</title>
        <link>https://knightli.com/ja/2026/05/01/finceptterminal-open-source-financial-terminal/</link>
        <pubDate>Fri, 01 May 2026 03:47:18 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/finceptterminal-open-source-financial-terminal/</guid>
        <description>&lt;p&gt;&lt;code&gt;FinceptTerminal&lt;/code&gt; は Fincept Corporation が公開しているオープンソースの金融端末プロジェクトです。&lt;/p&gt;
&lt;p&gt;README の説明を見る限り、これは単なる相場表示パネルではありません。金融分析、量的研究、取引ワークフロー、AI Agent に向けた総合的なデスクトッププラットフォームです。v4 は C++20 と Qt6 でネイティブデスクトップアプリケーションとして構築され、同時に Python エコシステムを組み込み、分析、スクリプト、機械学習、金融モデリングを支援します。&lt;/p&gt;
&lt;p&gt;例えるなら、オープンソースの金融研究ワークベンチに近いものです。片側でデータソースに接続し、もう片側でチャート、ポートフォリオ、量的分析、取引、情報分析、自動化ワークフローを扱います。&lt;/p&gt;
&lt;p&gt;最初に明確にしておくべき点があります。この種のツールは研究、分析、教育、内部ツール構築には使えますが、出力をそのまま投資助言として扱うべきではありません。金融市場にはリスクがあり、データ、モデル、戦略、執行はすべて独立した検証が必要です。&lt;/p&gt;
&lt;h2 id=&#34;何を解決するのか&#34;&gt;何を解決するのか
&lt;/h2&gt;&lt;p&gt;金融研究は、多くの場合いくつものツールに分散しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;相場データは別のソフトウェアにある&lt;/li&gt;
&lt;li&gt;研究コードは Jupyter にある&lt;/li&gt;
&lt;li&gt;チャートは別のツールにある&lt;/li&gt;
&lt;li&gt;ポートフォリオ分析はスプレッドシートにある&lt;/li&gt;
&lt;li&gt;取引記録は証券会社のシステムにある&lt;/li&gt;
&lt;li&gt;ニュースや情報はブラウザにある&lt;/li&gt;
&lt;li&gt;AI 分析はチャット画面にある&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このやり方でも作業はできますが、共同作業と再現性は難しくなります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;FinceptTerminal&lt;/code&gt; が解決しようとしているのは、これらの能力をひとつのデスクトップ端末に統合し、同じ環境でデータ接続、分析、モデリング、可視化、Agent 連携、取引関連フローを完結できるようにすることです。&lt;/p&gt;
&lt;p&gt;目的はすべての専門システムを置き換えることではなく、拡張可能なオープンソース金融端末の土台を提供することです。&lt;/p&gt;
&lt;h2 id=&#34;技術アーキテクチャ&#34;&gt;技術アーキテクチャ
&lt;/h2&gt;&lt;p&gt;README では、v4 が C++20 と Qt6 を採用していると説明されています。&lt;/p&gt;
&lt;p&gt;つまり、これは純粋な Web パネルではなく、ネイティブデスクトップアプリケーションです。金融端末において、ネイティブアプリにはいくつかの利点があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;UI の応答がより安定しやすい&lt;/li&gt;
&lt;li&gt;複雑なウィンドウや複数パネル構成に向いている&lt;/li&gt;
&lt;li&gt;ローカルファイルやシステムリソースを扱いやすい&lt;/li&gt;
&lt;li&gt;高性能コンポーネントを組み込みやすい&lt;/li&gt;
&lt;li&gt;長時間動作するデスクトップワークフローに向いている&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;同時に、このプロジェクトは Python も組み込んでいます。&lt;/p&gt;
&lt;p&gt;これは重要です。金融研究や量的分析では、Python は事実上の主要言語のひとつです。データ分析、機械学習、統計、バックテスト、チャート、金融モデリングは Python エコシステムと切り離せません。C++/Qt がアプリケーションフレームワークとデスクトップ体験を担当し、Python が研究と拡張性を担当する。この組み合わせはとても実用的です。&lt;/p&gt;
&lt;h2 id=&#34;データコネクタ&#34;&gt;データコネクタ
&lt;/h2&gt;&lt;p&gt;README では、このプロジェクトが 100+ のデータコネクタを提供すると説明されています。&lt;/p&gt;
&lt;p&gt;金融端末の価値は、かなりの部分がデータ接続に依存します。データがなければ、どれほど優れた UI やモデルも空の器にすぎません。&lt;/p&gt;
&lt;p&gt;この種のコネクタは、通常さまざまなソースをカバーできます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;市場相場&lt;/li&gt;
&lt;li&gt;マクロ経済データ&lt;/li&gt;
&lt;li&gt;企業財務&lt;/li&gt;
&lt;li&gt;ニュースとインテリジェンス&lt;/li&gt;
&lt;li&gt;取引所データ&lt;/li&gt;
&lt;li&gt;暗号資産データ&lt;/li&gt;
&lt;li&gt;研究用データソース&lt;/li&gt;
&lt;li&gt;内部またはカスタム API&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ユーザーにとって、データコネクタの意味は「CSV をダウンロードし、手作業で整形し、再度インポートする」流れを減らし、分析をよりリアルタイムかつ自動化に近づけることです。&lt;/p&gt;
&lt;p&gt;ただし、金融データでは品質、ライセンス、遅延、カバー範囲、費用がいずれも重要です。どのデータソースを使う場合でも、事前に許諾条件と利用範囲を確認する必要があります。&lt;/p&gt;
&lt;h2 id=&#34;ai-agents-モジュール&#34;&gt;AI Agents モジュール
&lt;/h2&gt;&lt;p&gt;このプロジェクトは AI Agents を強調しています。ここが従来型の金融端末と異なる点でもあります。&lt;/p&gt;
&lt;p&gt;従来の端末は、人が画面を操作し、人がデータを見て、人が判断するものが中心でした。AI Agent が加わると、ツールはより多くの補助作業を担えるようになります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;市場情報を要約する&lt;/li&gt;
&lt;li&gt;財務報告や公告を説明する&lt;/li&gt;
&lt;li&gt;研究サマリーを生成する&lt;/li&gt;
&lt;li&gt;データの絞り込みを手伝う&lt;/li&gt;
&lt;li&gt;分析スクリプトの作成を補助する&lt;/li&gt;
&lt;li&gt;取引または研究ワークフローを整理する&lt;/li&gt;
&lt;li&gt;複数モジュール間でコンテキストを受け渡す&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは AI がアナリストやトレーダーを代替できるという意味ではありません。&lt;/p&gt;
&lt;p&gt;より適切な位置づけは、AI Agent が反復的な整理作業を減らし、初期分析や対話的な問い合わせを支援するというものです。重要な結論には、引き続きデータ検証、モデル検証、人間の判断が必要です。&lt;/p&gt;
&lt;h2 id=&#34;量的研究機能&#34;&gt;量的研究機能
&lt;/h2&gt;&lt;p&gt;FinceptTerminal は量的研究も対象にしています。&lt;/p&gt;
&lt;p&gt;量的研究には通常、次のような作業が含まれます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;データクリーニング&lt;/li&gt;
&lt;li&gt;ファクター構築&lt;/li&gt;
&lt;li&gt;戦略仮説&lt;/li&gt;
&lt;li&gt;バックテスト&lt;/li&gt;
&lt;li&gt;リスク評価&lt;/li&gt;
&lt;li&gt;ポートフォリオ最適化&lt;/li&gt;
&lt;li&gt;取引コスト推定&lt;/li&gt;
&lt;li&gt;結果の可視化&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;データ接続、Python 分析、チャート、ワークフローをひとつの端末に統合できるなら、量的研究には大きな助けになります。研究者はひとつの環境で、データから戦略検証まで段階的に進められます。&lt;/p&gt;
&lt;p&gt;ただし、量的研究で最も危険なのは「効いているように見える」ことです。サンプル外検証、取引コスト、スリッページ、生存者バイアス、過剰適合、データリークを厳密に処理していない戦略は、バックテストがどれほど綺麗でも信頼できません。&lt;/p&gt;
&lt;p&gt;そのため、この種のツールは研究プラットフォームとして扱うべきであり、自動的に利益を生む機械として扱うべきではありません。&lt;/p&gt;
&lt;h2 id=&#34;quantlib-と金融モデリング&#34;&gt;QuantLib と金融モデリング
&lt;/h2&gt;&lt;p&gt;README では QuantLib 関連の機能にも触れています。&lt;/p&gt;
&lt;p&gt;QuantLib は金融工学でよく使われるオープンソースライブラリで、金利、債券、オプション、デリバティブ価格評価、カーブ構築、リスク計算などによく使われます。&lt;/p&gt;
&lt;p&gt;これは FinceptTerminal が株価を見るだけのものではなく、より専門的な金融モデリング領域もカバーしようとしていることを示しています。&lt;/p&gt;
&lt;p&gt;この種の機能は、次の用途に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;金融工学の学習&lt;/li&gt;
&lt;li&gt;デリバティブ価格評価の実験&lt;/li&gt;
&lt;li&gt;カーブとリスク指標の計算&lt;/li&gt;
&lt;li&gt;投資ポートフォリオのリスク分析&lt;/li&gt;
&lt;li&gt;研究モデルのプロトタイプ検証&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし、金融モデリング自体のハードルは高いです。モデルパラメータ、市場仮定、データソース、価格評価ロジックはすべて結果に影響します。ツールは操作コストを下げられますが、専門的な判断を代替することはできません。&lt;/p&gt;
&lt;h2 id=&#34;ノードワークフロー&#34;&gt;ノードワークフロー
&lt;/h2&gt;&lt;p&gt;README ではノード式ワークフローにも触れています。&lt;/p&gt;
&lt;p&gt;ノードワークフローは、複雑なタスクを視覚的なプロセスに分解するのに向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;データを読み込む&lt;/li&gt;
&lt;li&gt;データをクリーニングする&lt;/li&gt;
&lt;li&gt;モデルを実行する&lt;/li&gt;
&lt;li&gt;チャートを生成する&lt;/li&gt;
&lt;li&gt;AI 分析を起動する&lt;/li&gt;
&lt;li&gt;レポートを出力する&lt;/li&gt;
&lt;li&gt;通知を送る&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;金融領域において、この方式には二つの利点があります。&lt;/p&gt;
&lt;p&gt;第一に、プロセスが可視化されます。複雑な分析がスクリプトの山の中だけに隠れるのではなく、ユーザーはデータがどう流れるかを見られます。&lt;/p&gt;
&lt;p&gt;第二に、自動化に向いています。繰り返し行う研究フローを保存し、再利用し、調整できます。&lt;/p&gt;
&lt;p&gt;今後、Python スクリプト、データコネクタ、Agent、レポートシステムと組み合わされれば、この種のノードワークフローは金融端末の中で価値あるモジュールになるでしょう。&lt;/p&gt;
&lt;h2 id=&#34;取引とポートフォリオ管理&#34;&gt;取引とポートフォリオ管理
&lt;/h2&gt;&lt;p&gt;このプロジェクトは取引とポートフォリオ関連機能にも触れています。&lt;/p&gt;
&lt;p&gt;この領域では特に慎重さが必要です。&lt;/p&gt;
&lt;p&gt;ポートフォリオ管理は、資産エクスポージャー、リターン、ドローダウン、ボラティリティ、相関、リスク集中度を理解する助けになります。取引モジュールは、注文、口座、執行、記録に関わる可能性があります。&lt;/p&gt;
&lt;p&gt;しかし、実取引に触れる場合は、次の点を必ず考慮しなければなりません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;データ遅延&lt;/li&gt;
&lt;li&gt;注文執行リスク&lt;/li&gt;
&lt;li&gt;API 権限&lt;/li&gt;
&lt;li&gt;取引コスト&lt;/li&gt;
&lt;li&gt;スリッページ&lt;/li&gt;
&lt;li&gt;流動性&lt;/li&gt;
&lt;li&gt;リスク管理上の制限&lt;/li&gt;
&lt;li&gt;監査とログ&lt;/li&gt;
&lt;li&gt;戦略の誤発火&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;開発環境や研究環境の取引機能を、そのまま本番レベルの取引システムと同一視すべきではありません。ライブ取引に接続する前には、厳格なテスト、権限分離、リスク管理機構、人手によるレビューが必要です。&lt;/p&gt;
&lt;h2 id=&#34;bloomberg-terminal-との違い&#34;&gt;Bloomberg Terminal との違い
&lt;/h2&gt;&lt;p&gt;多くの金融端末プロジェクトは Bloomberg Terminal と比較されます。&lt;/p&gt;
&lt;p&gt;しかし、両者の位置づけは異なります。&lt;/p&gt;
&lt;p&gt;Bloomberg Terminal の価値はソフトウェア画面だけではありません。次の要素も含まれます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;データカバレッジ&lt;/li&gt;
&lt;li&gt;データライセンス&lt;/li&gt;
&lt;li&gt;ニュースネットワーク&lt;/li&gt;
&lt;li&gt;取引エコシステム&lt;/li&gt;
&lt;li&gt;カスタマーサポート&lt;/li&gt;
&lt;li&gt;金融機関向けワークフロー&lt;/li&gt;
&lt;li&gt;長年蓄積された業界からの信頼&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;FinceptTerminal は、オープンソースの金融端末フレームワーク兼研究プラットフォームに近い存在です。強みは、拡張性、カスタマイズ性、ローカライズ性、そして Python や AI ワークフローとの連携です。&lt;/p&gt;
&lt;p&gt;Bloomberg の無料代替品として単純に理解すべきではありません。&lt;/p&gt;
&lt;p&gt;より妥当な見方はこうです。金融端末がどのように構築されるのかを研究したい場合、あるいは自分の金融分析ワークベンチを作りたい場合、FinceptTerminal はオープンソースの出発点を提供してくれます。&lt;/p&gt;
&lt;h2 id=&#34;ライセンスと商用利用の境界&#34;&gt;ライセンスと商用利用の境界
&lt;/h2&gt;&lt;p&gt;README では、このプロジェクトが AGPL と商用ライセンスモデルを採用していると説明されています。&lt;/p&gt;
&lt;p&gt;AGPL はネットワークサービスや派生作品に対して明確な要件を持ちます。学習、研究、個人実験だけであれば通常大きな問題にはなりにくいですが、商用製品、内部プラットフォーム、外部サービスに改造する予定があるなら、ライセンスを丁寧に読む必要があります。&lt;/p&gt;
&lt;p&gt;特に金融ツールは企業内部システムに入ることがよくあります。その場合、オープンソースライセンス、商用ライセンス、データライセンス、モデルライセンスをまとめて確認すべきであり、コードが動くかどうかだけを見るべきではありません。&lt;/p&gt;
&lt;h2 id=&#34;誰が注目すべきか&#34;&gt;誰が注目すべきか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;FinceptTerminal&lt;/code&gt; は次のような人に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;金融端末アーキテクチャを研究したい開発者&lt;/li&gt;
&lt;li&gt;量的研究や金融工学の実験をしている人&lt;/li&gt;
&lt;li&gt;Python の分析機能をデスクトップツールに組み込みたい人&lt;/li&gt;
&lt;li&gt;AI Agent + 金融ワークフローを探求したい人&lt;/li&gt;
&lt;li&gt;内部向け金融分析プラットフォームを作りたいチーム&lt;/li&gt;
&lt;li&gt;C++/Qt による金融アプリ開発を学びたい人&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;数銘柄の株価を見るだけなら、一般的な相場ソフトのほうが簡単かもしれません。&lt;/p&gt;
&lt;p&gt;金融端末がデータ、チャート、モデル、Agent、取引、ワークフローをどう統合するのかを理解したいなら、このプロジェクトはより研究する価値があります。&lt;/p&gt;
&lt;h2 id=&#34;利用時の注意点&#34;&gt;利用時の注意点
&lt;/h2&gt;&lt;p&gt;第一に、研究と取引を区別することです。&lt;/p&gt;
&lt;p&gt;研究環境では実験や失敗を許容できますが、取引環境ではできません。検証されていない研究ツールを実口座に接続してはいけません。&lt;/p&gt;
&lt;p&gt;第二に、データライセンスを重視することです。&lt;/p&gt;
&lt;p&gt;金融データは、勝手に取得して商用利用できるものではありません。特に相場、ニュース、財務、取引所データでは、データソースごとに異なるライセンス条件があります。&lt;/p&gt;
&lt;p&gt;第三に、AI Agent を過信しないことです。&lt;/p&gt;
&lt;p&gt;AI は情報整理を補助できますが、金融上の結論は必ずデータ、モデル、リスク、事実検証に戻す必要があります。&lt;/p&gt;
&lt;p&gt;第四に、セキュリティに注意することです。&lt;/p&gt;
&lt;p&gt;ツールが口座、API key、取引インターフェース、内部データに接続する場合、鍵管理、権限分離、ログ、ネットワーク境界を適切に扱う必要があります。&lt;/p&gt;
&lt;p&gt;第五に、オープンソースライセンスを理解することです。&lt;/p&gt;
&lt;p&gt;AGPL は商用利用とサービス化に重要な影響を持ちます。プロダクト化する前に、ライセンス問題を先に整理すべきです。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Fincept-Corporation/FinceptTerminal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Fincept-Corporation/FinceptTerminal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;FinceptTerminal&lt;/code&gt; で注目すべき点は、金融端末、Python による量的研究、AI Agents、データコネクタ、ノードワークフローを、ひとつのオープンソースデスクトッププラットフォーム構想の中に置いていることです。&lt;/p&gt;
&lt;p&gt;これは専門的な金融端末や実取引システムを直接置き換える完成品というより、金融技術研究と内部ツール構築の出発点として向いています。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>mattpocock/skills：AI コーディング Agent 向けの実用スキル集</title>
        <link>https://knightli.com/ja/2026/05/01/mattpocock-skills-ai-agent-coding-workflows/</link>
        <pubDate>Fri, 01 May 2026 03:43:20 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/mattpocock-skills-ai-agent-coding-workflows/</guid>
        <description>&lt;p&gt;&lt;code&gt;mattpocock/skills&lt;/code&gt; は、Matt Pocock が公開している AI コーディング agent skills のコレクションです。&lt;/p&gt;
&lt;p&gt;これは完全なアプリケーションでも、新しいチャットクライアントでもありません。AI コーディングアシスタントに使わせるための作業スキル集です。考え方は実用的です。AI コーディングでよく起こる問題を小さなスキルに分解し、Agent が適切なタスクで呼び出せるようにします。毎回巨大なプロンプトで無理に支えるのではありません。&lt;/p&gt;
&lt;p&gt;Claude Code、Codex、Cursor、または類似の AI コーディングツールをよく使うなら、この種の skills は注目する価値があります。AI コーディング体験に本当に影響するのは、「モデルがコードを書けるか」だけではなく、自分の作業方法に沿ってタスクを進められるかだからです。&lt;/p&gt;
&lt;h2 id=&#34;解決する問題&#34;&gt;解決する問題
&lt;/h2&gt;&lt;p&gt;AI コーディングアシスタントは強力ですが、問題も起こしやすいです。&lt;/p&gt;
&lt;p&gt;よくある状況は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;要件を理解する前にコード変更を始める&lt;/li&gt;
&lt;li&gt;一度に多すぎるファイルを変更する&lt;/li&gt;
&lt;li&gt;説明は多いが、実際に有用な行動が少ない&lt;/li&gt;
&lt;li&gt;エラー後に場当たり的に試す&lt;/li&gt;
&lt;li&gt;テストやチェックをすぐに実行しない&lt;/li&gt;
&lt;li&gt;プロジェクト内の既存パターンを無視する&lt;/li&gt;
&lt;li&gt;タスク完了のために不要な抽象を導入する&lt;/li&gt;
&lt;li&gt;コードを書いた後に本当にリスクを review しない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらは必ずしもモデル能力不足ではありません。ワークフローが十分に制約されていないことが原因の場合も多いです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;mattpocock/skills&lt;/code&gt; の価値は、こうした失敗パターンを再利用可能な操作方法に分解し、Agent が場面に応じてより経験あるエンジニア協作者のように振る舞えるようにすることです。&lt;/p&gt;
&lt;h2 id=&#34;skills-とは何か&#34;&gt;Skills とは何か
&lt;/h2&gt;&lt;p&gt;AI Agent の文脈では、skill は再利用可能なタスク説明、作業方法、専門的なフローとして理解できます。&lt;/p&gt;
&lt;p&gt;必ずしもコードプラグインである必要はなく、外部サービスを呼び出す必要もありません。多くの場合、skill は明確なルールセットです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;いつ使うか&lt;/li&gt;
&lt;li&gt;まず何をするか&lt;/li&gt;
&lt;li&gt;何をしないか&lt;/li&gt;
&lt;li&gt;何を出力するか&lt;/li&gt;
&lt;li&gt;タスク完了をどう判断するか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは通常のプロンプトテンプレートに似ていますが、粒度は「タスク能力」に近いものです。&lt;/p&gt;
&lt;p&gt;通常のプロンプトテンプレートは、ユーザーが毎回一時的にコピーして貼り付けるものです。Skills は agent ツールボックスの一部として、Agent がタスクに応じて適切なフローを選ぶ形に向いています。&lt;/p&gt;
&lt;h2 id=&#34;小さく組み合わせ可能である理由&#34;&gt;小さく組み合わせ可能である理由
&lt;/h2&gt;&lt;p&gt;README では、これらの skills が小さく組み合わせ可能であることを強調しています。&lt;/p&gt;
&lt;p&gt;これは重要な方向性です。&lt;/p&gt;
&lt;p&gt;1 つの skill がすべてを担当しようとすると、すぐに新しい巨大プロンプトになります。長く、曖昧で、保守しにくいものです。小さなスキルの利点は境界が明確なことです。&lt;/p&gt;
&lt;p&gt;たとえば 1 つの skill は次のようなことだけに集中できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;先に計画する&lt;/li&gt;
&lt;li&gt;TypeScript エラーを修正する&lt;/li&gt;
&lt;li&gt;テストを実行し、結果に基づいて修正する&lt;/li&gt;
&lt;li&gt;コード review を行う&lt;/li&gt;
&lt;li&gt;プロジェクト規約を要約する&lt;/li&gt;
&lt;li&gt;プロンプトを改善する&lt;/li&gt;
&lt;li&gt;不要な抽象を取り除く&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらのスキルはタスクに応じて組み合わせられます。単純なタスクなら 1 つ、複雑なタスクなら複数をつなげます。&lt;/p&gt;
&lt;p&gt;これは実際のエンジニアリング作業に近いです。すべての問題を同じフローで処理するのではなく、問題に応じてツールを選びます。&lt;/p&gt;
&lt;h2 id=&#34;エンジニアの制御を残す&#34;&gt;エンジニアの制御を残す
&lt;/h2&gt;&lt;p&gt;このリポジトリの重要な方向性の一つは、エンジニアが制御権を持ち続けることです。&lt;/p&gt;
&lt;p&gt;AI コーディングは、2 つの極端に寄りやすいです。&lt;/p&gt;
&lt;p&gt;1 つ目は完全に手動です。AI は数行のコードを書く手伝いをするだけで、コンテキスト、計画、検証はすべて自分が監視します。&lt;/p&gt;
&lt;p&gt;2 つ目は完全に放任です。タスクを Agent に投げ、大きく変更させ、最後にレビューしづらい diff と向き合います。&lt;/p&gt;
&lt;p&gt;skills はその中間に、より安定した位置を作ります。&lt;/p&gt;
&lt;p&gt;AI により多くの反復フローを任せつつ、ルールで制限します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;タスクを理解してから手を動かす&lt;/li&gt;
&lt;li&gt;関連ファイルを読んでから変更する&lt;/li&gt;
&lt;li&gt;変更範囲を制御可能にする&lt;/li&gt;
&lt;li&gt;不確実な場合は報告する&lt;/li&gt;
&lt;li&gt;変更後に検証する&lt;/li&gt;
&lt;li&gt;見せつけるために無関係なコードをリファクタリングしない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは AI を弱めるのではありません。AI の行動を人間がレビューし、引き継ぎやすくするものです。&lt;/p&gt;
&lt;h2 id=&#34;アラインメント問題&#34;&gt;アラインメント問題
&lt;/h2&gt;&lt;p&gt;AI コーディング失敗の最初の種類は、アラインメント失敗であることが多いです。&lt;/p&gt;
&lt;p&gt;ユーザーが求めているのは具体的な変更ですが、Agent はそれを大きなリファクタリングとして理解することがあります。ユーザーは Bug 修正だけを望んでいるのに、スタイルまで変更することがあります。既存アーキテクチャに従ってほしいのに、新しいパターンを導入することもあります。&lt;/p&gt;
&lt;p&gt;Skills はタスク開始時に Agent に次のことをさせられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;目的を言い直す&lt;/li&gt;
&lt;li&gt;影響範囲を見つける&lt;/li&gt;
&lt;li&gt;既存の実装パターンを識別する&lt;/li&gt;
&lt;li&gt;計画を出す&lt;/li&gt;
&lt;li&gt;何をしないかを明確にする&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これはエンジニアが作業開始前に行うセルフチェックに似ています。&lt;/p&gt;
&lt;p&gt;Agent がタスク境界を明確にしないままコードを書き始めると、後でどんどんズレやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;フィードバックループ問題&#34;&gt;フィードバックループ問題
&lt;/h2&gt;&lt;p&gt;AI のコード生成は一回だけに頼るべきではありません。&lt;/p&gt;
&lt;p&gt;実際の開発では、フィードバックループが重要です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;小さく変更する&lt;/li&gt;
&lt;li&gt;テストまたは型チェックを実行する&lt;/li&gt;
&lt;li&gt;エラーを見る&lt;/li&gt;
&lt;li&gt;修正する&lt;/li&gt;
&lt;li&gt;再検証する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;多くの Agent は途中のフィードバックを飛ばすために失敗します。一度に多くを変更し、感覚で「動くはず」とまとめます。&lt;/p&gt;
&lt;p&gt;Skills はフィードバックループを明示的にフローへ書き込めます。たとえば Agent に次のことを要求できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;変更後に関連チェックを実行する&lt;/li&gt;
&lt;li&gt;チェックが失敗したら、まずエラーメッセージを読む&lt;/li&gt;
&lt;li&gt;無関係なファイルを盲目的に変更しない&lt;/li&gt;
&lt;li&gt;各修正後に再検証する&lt;/li&gt;
&lt;li&gt;最後に検証結果を報告する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これにより AI コーディングは、一回限りの作文ではなく本物のデバッグに近づきます。&lt;/p&gt;
&lt;h2 id=&#34;アーキテクチャ制御問題&#34;&gt;アーキテクチャ制御問題
&lt;/h2&gt;&lt;p&gt;AI は抽象を生成するのが得意で、過剰に抽象を生成するのも得意です。&lt;/p&gt;
&lt;p&gt;小さな要件を満たすために、サービス層、ヘルパー関数、設定オブジェクト、型ラッパー、アダプターを新しく作り、最終的に要件そのものより複雑なコードにしてしまうことがあります。&lt;/p&gt;
&lt;p&gt;この問題は大規模プロジェクトで特に危険です。AI が生成した抽象は「専門的」に見えますが、既存のプロジェクトスタイルに合わず、保守コストを増やす可能性があります。&lt;/p&gt;
&lt;p&gt;良い skills は Agent に次のことを思い出させます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;既存パターンを優先する&lt;/li&gt;
&lt;li&gt;不必要な新しい抽象を導入しない&lt;/li&gt;
&lt;li&gt;無関係な領域をついでにリファクタリングしない&lt;/li&gt;
&lt;li&gt;変更をタスク規模に合わせる&lt;/li&gt;
&lt;li&gt;コードを理解してから構造を設計する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これにより、「見た目はエンジニアリングっぽいが実際は保守しにくい」出力を減らせます。&lt;/p&gt;
&lt;h2 id=&#34;review-skill-が重要な理由&#34;&gt;Review skill が重要な理由
&lt;/h2&gt;&lt;p&gt;コードを書くこととコードを review することは別の状態です。&lt;/p&gt;
&lt;p&gt;Agent がコードを書くとき、自分の実装が成立することを説明しがちです。なぜこの変更で動くかは説明しますが、必ずしもリスクを探すわけではありません。&lt;/p&gt;
&lt;p&gt;Review skill の意味は、Agent の役割を切り替えることです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;潜在 Bug を探す&lt;/li&gt;
&lt;li&gt;振る舞いの回帰を探す&lt;/li&gt;
&lt;li&gt;足りないテストを探す&lt;/li&gt;
&lt;li&gt;境界条件を探す&lt;/li&gt;
&lt;li&gt;複雑度の上昇を探す&lt;/li&gt;
&lt;li&gt;既存規約と不一致な箇所を探す&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは AI コーディングで重要です。AI はコードを高速に生成するため、review がないとユーザーは大量の diff に埋もれやすくなります。&lt;/p&gt;
&lt;p&gt;良い review 出力は、まず問題を列挙すべきです。先に実装を褒める必要はありません。エンジニアがその変更をマージできるか判断する助けになるべきです。&lt;/p&gt;
&lt;h2 id=&#34;通常の-rules-ファイルとの違い&#34;&gt;通常の rules ファイルとの違い
&lt;/h2&gt;&lt;p&gt;多くの AI コーディングツールは rules、instructions、memory をサポートしています。&lt;/p&gt;
&lt;p&gt;これらのファイルは通常、長期ルールを記録します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロジェクト技術スタック&lt;/li&gt;
&lt;li&gt;命名規約&lt;/li&gt;
&lt;li&gt;テストコマンド&lt;/li&gt;
&lt;li&gt;変更してはいけないディレクトリ&lt;/li&gt;
&lt;li&gt;回答スタイルの好み&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Skills はよりタスクフローに寄っています。&lt;/p&gt;
&lt;p&gt;rules は Agent に「長期的にどう振る舞うべきか」を伝えます。skills は Agent に「この種類のタスクをどう実行すべきか」を伝えます。&lt;/p&gt;
&lt;p&gt;両方を一緒に使うのがよいです。&lt;/p&gt;
&lt;p&gt;たとえば rules にプロジェクトが &lt;code&gt;pnpm test&lt;/code&gt; を使うと書き、review skill で変更後にテストカバレッジを確認するよう求めます。すると Agent はコマンドだけでなく、いつ使うべきかも理解します。&lt;/p&gt;
&lt;h2 id=&#34;向いている場面&#34;&gt;向いている場面
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;mattpocock/skills&lt;/code&gt; のようなリポジトリは次の場面に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI コーディングツールを頻繁に使う&lt;/li&gt;
&lt;li&gt;Agent に実コードベースを扱わせる&lt;/li&gt;
&lt;li&gt;AI の範囲外変更を減らしたい&lt;/li&gt;
&lt;li&gt;Agent により積極的に結果を検証させたい&lt;/li&gt;
&lt;li&gt;自分のエンジニアリング習慣を skills にしたい&lt;/li&gt;
&lt;li&gt;他人の agent workflows 設計を学びたい&lt;/li&gt;
&lt;li&gt;一時的なプロンプト群を保守可能な skill 集合に整理したい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たまに AI に小さな関数を書かせるだけなら、skills を専用に維持する必要はないかもしれません。&lt;/p&gt;
&lt;p&gt;しかし AI を長期的な開発パートナーとして扱うなら、skills は徐々に重要になります。Agent に再利用可能な作業方法を持たせるものだからです。&lt;/p&gt;
&lt;h2 id=&#34;このリポジトリから学べること&#34;&gt;このリポジトリから学べること
&lt;/h2&gt;&lt;p&gt;各 skill を直接使わなくても、このリポジトリからいくつか学べます。&lt;/p&gt;
&lt;p&gt;第一に、失敗パターンを書き出すことです。&lt;/p&gt;
&lt;p&gt;AI が間違えたときにその場で不満を言うだけではなく、よく間違えるパターンをルールに整理します。次回は skill に先回りして防がせます。&lt;/p&gt;
&lt;p&gt;第二に、スキルは短くすることです。&lt;/p&gt;
&lt;p&gt;1 つの skill は、1 つの明確な問題を解くのが理想です。短いほど正しく呼び出されやすく、保守しやすくなります。&lt;/p&gt;
&lt;p&gt;第三に、出力形式を明確にすることです。&lt;/p&gt;
&lt;p&gt;Agent に先に計画を列挙し、次に実行し、最後に検証結果をまとめてほしいなら、その構造を明確に書きます。曖昧な要求は曖昧な結果を生みます。&lt;/p&gt;
&lt;p&gt;第四に、人間が引き継ぐポイントを残すことです。&lt;/p&gt;
&lt;p&gt;良い skill は AI を一人で遠くまで走らせるべきではありません。不確実性、影響範囲の拡大、テスト失敗、プロダクト判断が必要な場合は、止まって状況を説明させるべきです。&lt;/p&gt;
&lt;h2 id=&#34;利用時の注意&#34;&gt;利用時の注意
&lt;/h2&gt;&lt;p&gt;第一に、すべてを skill 化しないことです。&lt;/p&gt;
&lt;p&gt;skills が多すぎるとシステムは複雑になり、Agent もどれを選ぶべきか分からなくなります。まずは頻度が高く、痛みの大きい場面から始めるのがよいです。&lt;/p&gt;
&lt;p&gt;第二に、skills は反復改善が必要です。&lt;/p&gt;
&lt;p&gt;最初に書いた skill が良いとは限りません。AI の実行結果を見て、少しずつ削り、追加し、書き直します。&lt;/p&gt;
&lt;p&gt;第三に、skill にエンジニアリング判断を置き換えさせないことです。&lt;/p&gt;
&lt;p&gt;Skill はフローを改善できますが、実装の正しさを保証するものではありません。テスト、review、ビルドチェック、人間の判断は依然として重要です。&lt;/p&gt;
&lt;p&gt;第四に、Agent ごとの差に注意することです。&lt;/p&gt;
&lt;p&gt;Claude Code、Codex、Cursor、Copilot は instructions、skills、rules のサポート方法が異なります。同じ考え方は再利用できますが、具体的な形式はツールに合わせて調整する必要があります。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mattpocock/skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;mattpocock/skills&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;mattpocock/skills&lt;/code&gt; が注目に値するのは、その中の一つの魔法のプロンプトではありません。エンジニアリング経験を小さなスキルに分解し、Agent に場面ごとに組み合わせて使わせるという実用的な AI コーディングの考え方です。&lt;/p&gt;
&lt;p&gt;AI コーディングがたまの補助から日常ワークフローになると、skills は Agent を制約し、エンジニアの制御を保ち、フィードバック品質を高める重要な道具になります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>free-claude-code：プロキシで Claude Code を OpenRouter、DeepSeek、ローカルモデルへ接続する</title>
        <link>https://knightli.com/ja/2026/05/01/free-claude-code-anthropic-compatible-proxy/</link>
        <pubDate>Fri, 01 May 2026 03:41:49 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/free-claude-code-anthropic-compatible-proxy/</guid>
        <description>&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; は、&lt;code&gt;Claude Code&lt;/code&gt; 向けの Anthropic-compatible proxy です。&lt;/p&gt;
&lt;p&gt;考え方は Claude Code を破解することでも、公式の無料 Claude サービスを提供することでもありません。ローカルで Anthropic API の形に互換性を持つプロキシサービスを起動し、Claude Code からのリクエストを他のモデルバックエンドへ転送します。README では NVIDIA NIM、OpenRouter、DeepSeek、LM Studio、llama.cpp、Ollama などが挙げられています。&lt;/p&gt;
&lt;p&gt;簡単に言うと、Claude Code のターミナル体験は好きだが、モデルリクエストは別の provider やローカルモデルへ接続したい、という問題を解決するものです。&lt;/p&gt;
&lt;h2 id=&#34;解決する問題&#34;&gt;解決する問題
&lt;/h2&gt;&lt;p&gt;Claude Code の対話体験は開発タスクに向いています。&lt;/p&gt;
&lt;p&gt;ターミナル内でコードを読み、ファイルを変更し、コマンドを実行し、プロジェクトコンテキストに基づいてタスクを進められます。ただし、多くのユーザーは常に同じモデルバックエンドを使いたいとは限りません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenRouter 上の異なるモデルを試したい&lt;/li&gt;
&lt;li&gt;DeepSeek のようなモデルでコストを下げたい&lt;/li&gt;
&lt;li&gt;リクエストをローカル Ollama に接続したい&lt;/li&gt;
&lt;li&gt;LM Studio や llama.cpp でローカルモデルを動かしたい&lt;/li&gt;
&lt;li&gt;開発環境でプロキシ入口を統一したい&lt;/li&gt;
&lt;li&gt;Claude Code ワークフロー内で異なるモデルの挙動を比較したい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; の位置づけは、Claude Code とこれらのモデルサービスの間に互換プロキシを置くことです。&lt;/p&gt;
&lt;p&gt;Claude Code は Anthropic 風にリクエストを送り続け、プロキシがそのリクエストを異なるバックエンドへ適配します。&lt;/p&gt;
&lt;h2 id=&#34;仕組み&#34;&gt;仕組み
&lt;/h2&gt;&lt;p&gt;3 層構造として理解できます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;フロントエンドは Claude Code&lt;/li&gt;
&lt;li&gt;中間層は &lt;code&gt;free-claude-code&lt;/code&gt; プロキシ&lt;/li&gt;
&lt;li&gt;バックエンドは OpenRouter、DeepSeek、ローカルモデル、または他のモデルサービス&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Claude Code は、自分が Anthropic-compatible API にアクセスしていると考えます。&lt;/p&gt;
&lt;p&gt;プロキシはリクエストを受け取り、設定に応じて target provider を選び、必要なフィールドを変換し、応答を Claude Code に返します。&lt;/p&gt;
&lt;p&gt;この構造の利点は、Claude Code 自体を変更する必要がなく、すべてのモデルサービスが Claude Code をネイティブにサポートする必要もないことです。プロキシがインターフェースを合わせられれば、より多くのモデルを同じワークフローへ接続できます。&lt;/p&gt;
&lt;h2 id=&#34;対応バックエンド&#34;&gt;対応バックエンド
&lt;/h2&gt;&lt;p&gt;README に挙げられている方向は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NVIDIA NIM&lt;/li&gt;
&lt;li&gt;OpenRouter&lt;/li&gt;
&lt;li&gt;DeepSeek&lt;/li&gt;
&lt;li&gt;LM Studio&lt;/li&gt;
&lt;li&gt;llama.cpp&lt;/li&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらのバックエンドは、異なる利用スタイルを表しています。&lt;/p&gt;
&lt;p&gt;OpenRouter はモデル集約入口に近く、さまざまな商用モデルやオープンソースモデルを試せます。&lt;/p&gt;
&lt;p&gt;DeepSeek は、中国語能力、コード能力、コストを重視する人に向いています。&lt;/p&gt;
&lt;p&gt;LM Studio、llama.cpp、Ollama はローカルモデル寄りです。自分のマシンや社内環境でモデルを動かし、外部 API 依存を減らし、オフライン実験をしやすくします。&lt;/p&gt;
&lt;p&gt;NVIDIA NIM は、企業や GPU 推論デプロイの場面により向いています。&lt;/p&gt;
&lt;h2 id=&#34;なぜ-anthropic-compatible-proxy-なのか&#34;&gt;なぜ Anthropic-compatible proxy なのか
&lt;/h2&gt;&lt;p&gt;Claude Code はもともと Anthropic のインターフェースとモデル習慣を前提に設計されています。&lt;/p&gt;
&lt;p&gt;他のモデルへ接続しようとすると、最初に問題になるのはインターフェースの違いです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;リクエストフィールドが違う&lt;/li&gt;
&lt;li&gt;モデル名が違う&lt;/li&gt;
&lt;li&gt;streaming 形式が違う&lt;/li&gt;
&lt;li&gt;tool use の表現が違う&lt;/li&gt;
&lt;li&gt;エラー応答形式が違う&lt;/li&gt;
&lt;li&gt;token とコンテキスト制限が違う&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;プロキシ層の価値はここにあります。&lt;/p&gt;
&lt;p&gt;Claude Code 側から見えるインターフェースを Anthropic に近い形に保ち、バックエンド側で適配します。ユーザーにとっては、一度プロキシを設定すれば、同じ Claude Code ワークフローの中で異なるモデルを試せます。&lt;/p&gt;
&lt;h2 id=&#34;向いている場面&#34;&gt;向いている場面
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; は次のような場面に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code のターミナルワークフローを使いたい&lt;/li&gt;
&lt;li&gt;非 Anthropic モデルを Claude Code 内で試したい&lt;/li&gt;
&lt;li&gt;モデル呼び出しコストを下げたい&lt;/li&gt;
&lt;li&gt;Claude Code を OpenRouter に接続したい&lt;/li&gt;
&lt;li&gt;DeepSeek などの互換モデルサービスに接続したい&lt;/li&gt;
&lt;li&gt;Ollama、LM Studio、llama.cpp でローカルモデルを使いたい&lt;/li&gt;
&lt;li&gt;チーム用に統一されたモデルプロキシ入口を用意したい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;公式 Claude Code を普通に使っていて、モデル提供者、コスト、ローカルデプロイに特別な要求がないなら、この種のプロキシは必須ではありません。&lt;/p&gt;
&lt;p&gt;しかし、頻繁にモデルを比較したり、Claude Code をローカルやサードパーティーモデルへ接続したいなら、この種のツールは便利です。&lt;/p&gt;
&lt;h2 id=&#34;openrouter-や-ollama-を直接使う場合との違い&#34;&gt;OpenRouter や Ollama を直接使う場合との違い
&lt;/h2&gt;&lt;p&gt;OpenRouter、Ollama、LM Studio を直接使う場合、通常はモデルとチャットするか、API 経由でモデルを呼び出します。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; の目的はそれらのサービスを置き換えることではなく、Claude Code という開発ワークフローへ接続することです。&lt;/p&gt;
&lt;p&gt;違いは次の点にあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code のターミナル体験をそのまま使える&lt;/li&gt;
&lt;li&gt;AI がコードリポジトリを中心にタスクを実行できる&lt;/li&gt;
&lt;li&gt;モデルバックエンドを別 provider に切り替えられる&lt;/li&gt;
&lt;li&gt;ローカルモデルも Claude Code ワークフローへ入れられる&lt;/li&gt;
&lt;li&gt;設定がプロキシ層に集中し、各ツールを個別に変えなくてよい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、新しいチャットクライアントではなくブリッジに近いものです。&lt;/p&gt;
&lt;h2 id=&#34;ローカルモデルで注意すべきこと&#34;&gt;ローカルモデルで注意すべきこと
&lt;/h2&gt;&lt;p&gt;Claude Code をローカルモデルへ接続するのは魅力的ですが、現実的な制限もあります。&lt;/p&gt;
&lt;p&gt;第一に、モデル能力の差です。&lt;/p&gt;
&lt;p&gt;Claude Code のタスクは単なるチャットではありません。コード理解、変更計画、ファイル編集、コマンド出力処理を含みます。ローカルの小さなモデルがこれらを安定してこなせるとは限りません。&lt;/p&gt;
&lt;p&gt;第二に、コンテキストウィンドウです。&lt;/p&gt;
&lt;p&gt;コードタスクはコンテキストを多く使います。モデルのコンテキストが小さいと、ファイルを読み切れない、制約を見落とす、多段階タスクで背景を失う、といった問題が起きます。&lt;/p&gt;
&lt;p&gt;第三に、tool use の互換性です。&lt;/p&gt;
&lt;p&gt;Claude Code ワークフローはツール呼び出しと構造化動作に依存します。バックエンドモデルがチャットできても、ツール呼び出しプロトコルに従うのが得意とは限りません。&lt;/p&gt;
&lt;p&gt;第四に、速度とハードウェアです。&lt;/p&gt;
&lt;p&gt;ローカルモデルの速度はマシン構成、量子化方式、モデルサイズに依存します。コードタスクで応答が遅すぎると、体験は大きく下がります。&lt;/p&gt;
&lt;p&gt;そのため、ローカルモデルは実験、低リスクタスク、特定場面に向いています。複雑なコードタスクでは、モデル能力を見て慎重に選ぶ必要があります。&lt;/p&gt;
&lt;h2 id=&#34;利用上の境界&#34;&gt;利用上の境界
&lt;/h2&gt;&lt;p&gt;この種のプロジェクトはタイトルで誤解されやすいので、境界を明確にしておく必要があります。&lt;/p&gt;
&lt;p&gt;第一に、これは公式 Claude Code の無料枠ではありません。&lt;/p&gt;
&lt;p&gt;Claude Code のリクエストを他のモデルバックエンドへ転送するだけです。OpenRouter、DeepSeek、NVIDIA NIM、その他 API を使う場合は、それぞれの価格、クォータ、利用規約に従う必要があります。&lt;/p&gt;
&lt;p&gt;第二に、認可を回避するためのツールではありません。&lt;/p&gt;
&lt;p&gt;どのプロキシツールを使う場合でも、Claude Code、モデル提供者、プロジェクト自体のライセンスや利用規約を守るべきです。公式制限を回避する手段として理解しないでください。&lt;/p&gt;
&lt;p&gt;第三に、プロキシはリクエスト内容を処理します。&lt;/p&gt;
&lt;p&gt;コード、コマンド出力、プロジェクトコンテキストがプロキシとバックエンドサービスを通る可能性があります。デプロイ時にはログ、キー、ネットワーク、プライバシー境界を考える必要があります。会社コードや機密プロジェクトでは、制御された環境を使うべきです。&lt;/p&gt;
&lt;p&gt;第四に、モデルごとの挙動差は大きいです。&lt;/p&gt;
&lt;p&gt;同じ Claude Code 操作でも、モデルを替えるとまったく異なる動作になることがあります。すべてのモデルが Claude を置き換えられると考えない方がよいです。&lt;/p&gt;
&lt;h2 id=&#34;litellm-などのプロキシとの関係&#34;&gt;LiteLLM などのプロキシとの関係
&lt;/h2&gt;&lt;p&gt;考え方として、&lt;code&gt;free-claude-code&lt;/code&gt; は「互換インターフェースプロキシ」に属します。&lt;/p&gt;
&lt;p&gt;この種のツールの共通目標は、上位アプリケーションと下位モデルサービスの結合を減らすことです。上位アプリケーションは比較的統一されたインターフェースだけを見ればよく、下位 provider は設定で切り替えられます。&lt;/p&gt;
&lt;p&gt;プロジェクトによって重点は異なります。汎用モデルゲートウェイ寄りのものもあれば、OpenAI-compatible API 寄りのものもあり、Claude Code のようなツール向けに特化しているものもあります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; が注目に値するのは、汎用チャットプロキシではなく、Claude Code を直接ターゲットにしている点です。&lt;/p&gt;
&lt;h2 id=&#34;向いているユーザー&#34;&gt;向いているユーザー
&lt;/h2&gt;&lt;p&gt;ある程度自分で調整できるユーザーに向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code に慣れている&lt;/li&gt;
&lt;li&gt;API key と model provider の設定方法を知っている&lt;/li&gt;
&lt;li&gt;プロキシサービスの起動と環境変数を理解できる&lt;/li&gt;
&lt;li&gt;ネットワーク、ポート、モデル名、streaming 問題を調査できる&lt;/li&gt;
&lt;li&gt;コードタスクで異なるモデルの挙動を比較したい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;開箱即用だけを求めるなら、公式設定の方がたいてい簡単です。&lt;/p&gt;
&lt;p&gt;プロキシを立て、モデルを切り替え、パラメータを調整し、Claude Code をより多くのモデル環境へ接続したいなら、このプロジェクトは研究する価値があります。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Alishahryar1/free-claude-code&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Alishahryar1/free-claude-code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; の価値は「free」という言葉ではなく、Claude Code とより多くのモデルバックエンドの間に橋を架けることです。&lt;/p&gt;
&lt;p&gt;Claude Code の開発体験を保ちながら、OpenRouter、DeepSeek、ローカルモデル、企業向け推論サービスを試したいとき、このような Anthropic-compatible proxy は役に立ちます。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Compound Engineering Plugin：AI コーディングを計画、実行、レビューの工程ループにする</title>
        <link>https://knightli.com/ja/2026/05/01/compound-engineering-plugin-ai-coding-workflow/</link>
        <pubDate>Fri, 01 May 2026 03:15:39 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/compound-engineering-plugin-ai-coding-workflow/</guid>
        <description>&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; は、Every Inc が公開している AI コーディングワークフロープラグインです。&lt;/p&gt;
&lt;p&gt;注目しているのは「AI により速くコードを書かせること」ではありません。AI コーディングを、よりエンジニアリングチームに近いループへ入れることです。まず計画し、次に実装し、その後レビューし、最後に経験を蓄積します。Claude Code、Codex、Cursor、Copilot のようなツールをよく使う人にとって、この種のプラグインはプロンプト問題ではなくワークフロー問題を解決します。&lt;/p&gt;
&lt;p&gt;AI コーディングツールは強力になっていますが、実プロジェクトで難しいのはコード生成そのものではありません。AI に継続してプロジェクトルールを守らせ、タスク境界を理解させ、同じ間違いを繰り返させず、複数回の反復でコンテキストを蓄積させることです。&lt;/p&gt;
&lt;h2 id=&#34;解決する問題&#34;&gt;解決する問題
&lt;/h2&gt;&lt;p&gt;多くの人は AI コーディングアシスタントを次のような流れで使います。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;要件を直接説明する&lt;/li&gt;
&lt;li&gt;AI にコードを変更させる&lt;/li&gt;
&lt;li&gt;結果が動くか確認する&lt;/li&gt;
&lt;li&gt;エラーが出たら追加説明する&lt;/li&gt;
&lt;li&gt;次のタスクでまた背景を最初から説明する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;小さなタスクならこれで十分なこともあります。しかし複雑なプロジェクトでは問題が起こりやすくなります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;要件を整理しないまま AI が編集を始める&lt;/li&gt;
&lt;li&gt;コード変更後に体系的な review がない&lt;/li&gt;
&lt;li&gt;プロジェクト規約がユーザーの繰り返しの注意に依存する&lt;/li&gt;
&lt;li&gt;同じ種類のミスが次回も起こる&lt;/li&gt;
&lt;li&gt;複数の Agent ツール間で統一した作業方法がない&lt;/li&gt;
&lt;li&gt;経験が再利用可能なルールとして蓄積されない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; が解決したいのは、この種の問題です。AI コーディングを複数の段階に分け、Agent を単なるコマンド実行者ではなく、より完全なエンジニアリングプロセスの参加者にします。&lt;/p&gt;
&lt;h2 id=&#34;compound-engineering-とは何か&#34;&gt;Compound Engineering とは何か
&lt;/h2&gt;&lt;p&gt;プロジェクト README の説明から見ると、Compound Engineering は AI 支援ソフトウェア開発の方法と理解できます。&lt;/p&gt;
&lt;p&gt;重視するのは次のループです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;計画：目的を理解し、タスクを分解し、方針を確認する&lt;/li&gt;
&lt;li&gt;実行：計画に沿ってコードを変更し、コマンドを実行し、問題を処理する&lt;/li&gt;
&lt;li&gt;レビュー：実装品質、リスク、テストカバレッジを確認する&lt;/li&gt;
&lt;li&gt;学習：経験を後続で再利用できるルールとして蓄積する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このループは実際のエンジニアリングチームの働き方に近いです。&lt;/p&gt;
&lt;p&gt;信頼できるエンジニアは、要件を受け取ってすぐに無秩序に変更することはありません。変更後に何も確認せず渡すこともありません。まず影響範囲を判断し、実装し、リスクとテスト結果を確認し、最後に踏んだ落とし穴を記録します。AI Agent にも同じような制約が必要です。&lt;/p&gt;
&lt;h2 id=&#34;なぜプラグインが必要なのか&#34;&gt;なぜプラグインが必要なのか
&lt;/h2&gt;&lt;p&gt;プロンプトで AI に「先に計画してから実行してください」と伝えることはできます。しかしプロンプト自体は必ずしも安定しません。&lt;/p&gt;
&lt;p&gt;会話が長くなり、コンテキストが複雑になると、モデルは計画を飛ばしたり、ルールを無視したり、タスク完了を急いで過度に自信を持ったりします。プラグインの価値は、ワークフローを固定し、異なる Agent 環境でも似た方法を守れるようにすることです。&lt;/p&gt;
&lt;p&gt;この種のプラグインは通常、ワークフローをコマンド、ルール、テンプレート、サブフローに分解します。ユーザーは毎回完全なプロンプトを書く必要がなく、固定された入口から特定の段階を起動します。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;まず Agent に計画を生成させる&lt;/li&gt;
&lt;li&gt;計画に沿って段階的に実装する&lt;/li&gt;
&lt;li&gt;変更後に review を起動する&lt;/li&gt;
&lt;li&gt;問題が見つかったら修正に戻る&lt;/li&gt;
&lt;li&gt;残す価値のある経験を記憶やルールに書く&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これにより AI コーディングは、一回限りのチャットではなく「制御された協作」に近づきます。&lt;/p&gt;
&lt;h2 id=&#34;対応する-agent-環境&#34;&gt;対応する Agent 環境
&lt;/h2&gt;&lt;p&gt;README では、複数の AI コーディング環境をサポートすると説明されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code&lt;/li&gt;
&lt;li&gt;Codex&lt;/li&gt;
&lt;li&gt;Cursor&lt;/li&gt;
&lt;li&gt;GitHub Copilot&lt;/li&gt;
&lt;li&gt;Amp&lt;/li&gt;
&lt;li&gt;Factory&lt;/li&gt;
&lt;li&gt;Qwen Code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは注目すべき点です。&lt;/p&gt;
&lt;p&gt;多くのワークフローツールは 1 つのクライアントにだけ結びついており、ツールを替えるとルールを再利用できません。&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; は、クロス Agent のエンジニアリング方法に近く、計画、実行、レビューのような流れを異なるツールへ持ち込みます。&lt;/p&gt;
&lt;p&gt;複数の AI コーディングアシスタントを同時に使うなら、このような統一ワークフローには価値があります。ツールごとに能力は違っても、プロジェクト規約、レビュー習慣、タスク分解方法はできるだけ一貫している方がよいです。&lt;/p&gt;
&lt;h2 id=&#34;計画段階の役割&#34;&gt;計画段階の役割
&lt;/h2&gt;&lt;p&gt;計画段階の価値は、AI が早すぎる段階で手を動かすのを防ぐことです。&lt;/p&gt;
&lt;p&gt;複雑なタスクで本当に重要なのは、たいてい次のような問いです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;どのファイルを変更するのか&lt;/li&gt;
&lt;li&gt;どのモジュールが影響を受ける可能性があるか&lt;/li&gt;
&lt;li&gt;既存のパターンは何か&lt;/li&gt;
&lt;li&gt;テストはあるか&lt;/li&gt;
&lt;li&gt;リスクはどこにあるか&lt;/li&gt;
&lt;li&gt;先に読むべきドキュメントはあるか&lt;/li&gt;
&lt;li&gt;より小さなステップに分解できるか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Agent がこれらを考える前にコードを書き始めると、完成しているように見えてもプロジェクト構造から外れた実装になりやすくなります。&lt;/p&gt;
&lt;p&gt;計画は長い必要はありません。良い計画は短く、具体的で、実行可能です。目的はドキュメントを増やすことではなく、後続の実装に境界を与えることです。&lt;/p&gt;
&lt;h2 id=&#34;実行段階で避けるべきこと&#34;&gt;実行段階で避けるべきこと
&lt;/h2&gt;&lt;p&gt;AI がコードタスクを実行するとき、よく起こる問題があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;関係ないコードをついでにリファクタリングする&lt;/li&gt;
&lt;li&gt;ユーザーの既存変更を上書きする&lt;/li&gt;
&lt;li&gt;happy path だけを処理する&lt;/li&gt;
&lt;li&gt;エラーハンドリングを無視する&lt;/li&gt;
&lt;li&gt;既存のプロジェクトスタイルに従わない&lt;/li&gt;
&lt;li&gt;必要な検証を実行しない&lt;/li&gt;
&lt;li&gt;エラー後に場当たり的に試す&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ワークフロープラグインはこれらの問題を完全には消せませんが、ルールと段階制約によって発生確率を下げられます。&lt;/p&gt;
&lt;p&gt;たとえば、実行段階では Agent に計画どおり段階的に進めさせます。計画範囲外の発見があった場合は、まずリスクを説明します。共有モジュールを変更する場合は、テストを追加するか、少なくとも関連検証を実行します。&lt;/p&gt;
&lt;p&gt;この制約は大規模コードベースで特に重要です。AI が速くコードを書くほど、その勢いを制限するプロセスが必要になります。&lt;/p&gt;
&lt;h2 id=&#34;レビュー段階が重要な理由&#34;&gt;レビュー段階が重要な理由
&lt;/h2&gt;&lt;p&gt;多くの AI コーディング失敗は、コードがまったく動かないからではありません。細部に問題があるからです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;境界条件が処理されていない&lt;/li&gt;
&lt;li&gt;状態更新が一貫していない&lt;/li&gt;
&lt;li&gt;API 契約がこっそり変わっている&lt;/li&gt;
&lt;li&gt;テストが重要経路をカバーしていない&lt;/li&gt;
&lt;li&gt;エラーメッセージが分かりにくい&lt;/li&gt;
&lt;li&gt;性能やセキュリティリスクが触れられていない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;レビュー段階は Agent を「作者モード」から「レビューモード」へ切り替えます。&lt;/p&gt;
&lt;p&gt;作者モードでは自分の実装を正当化しがちです。レビューモードでは、穴、回帰リスク、テスト漏れを積極的に探すべきです。この 2 つの段階を分ける方が、同じ回答内で実装と自己レビューを同時に行わせるより信頼しやすくなります。&lt;/p&gt;
&lt;p&gt;ユーザーにとっても、レビュー出力は価値があります。その変更をマージしてよいか、まだ修正が必要かを素早く判断できます。&lt;/p&gt;
&lt;h2 id=&#34;学習と記憶の意味&#34;&gt;学習と記憶の意味
&lt;/h2&gt;&lt;p&gt;プロジェクト名の “Compound” は、重要な考え方を示しています。エンジニアリング経験は複利的に増えるべきだ、ということです。&lt;/p&gt;
&lt;p&gt;AI が毎回のミスをその場で直すだけで、次回また同じミスをするなら、生産性向上は限られます。より良い方法は、価値ある経験を蓄積することです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;このプロジェクトのディレクトリ規約&lt;/li&gt;
&lt;li&gt;ある種類のエラーの調査方法&lt;/li&gt;
&lt;li&gt;テストコマンドと注意事項&lt;/li&gt;
&lt;li&gt;触ってはいけない生成ファイル&lt;/li&gt;
&lt;li&gt;コードスタイルの好み&lt;/li&gt;
&lt;li&gt;よく使う実装パターン&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの経験は、ルール、記憶、ドキュメント、テンプレートになります。後続タスクでは、Agent がまずそれらの蓄積を読み、その後作業を始めます。&lt;/p&gt;
&lt;p&gt;これが AI コーディングを「一回限りの問答」から「長期協作」へ進める鍵です。&lt;/p&gt;
&lt;h2 id=&#34;向いている場面&#34;&gt;向いている場面
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; は次のような場面に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI Agent を長期的に使ってコードを書く&lt;/li&gt;
&lt;li&gt;1 つのプロジェクトを何度も、複数回にわたって変更する&lt;/li&gt;
&lt;li&gt;AI に先に計画してから実装してほしい&lt;/li&gt;
&lt;li&gt;変更後に review 思考へ自動で入ってほしい&lt;/li&gt;
&lt;li&gt;チームで AI コーディングフローを統一したい&lt;/li&gt;
&lt;li&gt;Claude Code、Codex、Cursor など複数ツールを同時に使う&lt;/li&gt;
&lt;li&gt;プロジェクト経験を再利用可能なルールにしたい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たまに小さなスクリプトを AI に書かせるだけなら、完全なフローは重く感じるかもしれません。&lt;/p&gt;
&lt;p&gt;しかし AI コーディングアシスタントを日常開発の相棒として使うなら、計画、実行、レビュー、学習のループは明らかに役立ちます。&lt;/p&gt;
&lt;h2 id=&#34;通常のプロンプトテンプレートとの違い&#34;&gt;通常のプロンプトテンプレートとの違い
&lt;/h2&gt;&lt;p&gt;通常のプロンプトテンプレートは、「タスクをどう明確に伝えるか」を解決します。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一歩ずつ考えてください&lt;/li&gt;
&lt;li&gt;先にファイルを読んでください&lt;/li&gt;
&lt;li&gt;コードスタイルを揃えてください&lt;/li&gt;
&lt;li&gt;テストを実行してください&lt;/li&gt;
&lt;li&gt;変更内容を要約してください&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらのプロンプトはもちろん有用です。しかし、毎回ユーザーが正しく使うことに依存しています。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; は、よりワークフロー層にあります。これらの要求を再現可能なプロセスとして整理し、異なる Agent ツールに適用します。毎回ゼロからプロンプトを書くのではなく、一つのフローの中でタスクを進めます。&lt;/p&gt;
&lt;p&gt;簡単に言えば、プロンプトテンプレートはリマインダーであり、ワークフロープラグインは制度に近いものです。&lt;/p&gt;
&lt;h2 id=&#34;利用時の注意&#34;&gt;利用時の注意
&lt;/h2&gt;&lt;p&gt;第一に、フローを負担にしないことです。&lt;/p&gt;
&lt;p&gt;小さなタスクに完全な計画と長いレビューが常に必要なわけではありません。良いワークフローはタスクの複雑さに応じて調整できます。単純な問題は素早く処理し、複雑な問題では完全なループを使います。&lt;/p&gt;
&lt;p&gt;第二に、レビューはテストの代わりにはなりません。&lt;/p&gt;
&lt;p&gt;Agent review は多くの問題を見つけられますが、実行時エラーを見逃すことがあります。最終判断には、テスト、型チェック、ビルド結果、人間のレビューが必要です。&lt;/p&gt;
&lt;p&gt;第三に、ルールは継続的に整理することです。&lt;/p&gt;
&lt;p&gt;経験の蓄積は重要ですが、ルールが増えすぎるとノイズになります。古いルール、重複ルール、一回のタスクにしか合わなかった一時的な経験は、定期的に整理すべきです。&lt;/p&gt;
&lt;p&gt;第四に、ツール間で一貫していることは完全に同じであることではありません。&lt;/p&gt;
&lt;p&gt;Claude Code、Codex、Cursor、Copilot などは能力や対話方式が異なります。統一すべきなのは作業方法であり、すべてのコマンドや設定詳細が同じである必要はありません。&lt;/p&gt;
&lt;h2 id=&#34;向いているチーム&#34;&gt;向いているチーム
&lt;/h2&gt;&lt;p&gt;チームがすでに AI Agent に実コードの変更を許可しているなら、「どのモデルが強いか」だけを議論しても不十分です。&lt;/p&gt;
&lt;p&gt;より重要なのは次の点です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI は変更前にタスクを理解しているか&lt;/li&gt;
&lt;li&gt;AI は変更中にプロジェクト境界を守っているか&lt;/li&gt;
&lt;li&gt;AI は変更後にリスクを自発的にレビューしているか&lt;/li&gt;
&lt;li&gt;AI は過去のミスから学べるか&lt;/li&gt;
&lt;li&gt;チームに統一された Agent 利用規約があるか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; のようなプロジェクトの意味はここにあります。AI コーディングを個人の小技から、チームで再利用できるプロセスへ一歩進めます。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EveryInc/compound-engineering-plugin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EveryInc/compound-engineering-plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; が注目に値する理由は、AI コーディングコマンドを一つ増やすことではありません。AI コーディングを、継続的に改善できるエンジニアリングフローとして整理することです。&lt;/p&gt;
&lt;p&gt;AI Agent が実プロジェクトに参加し始めると、計画、実行、レビュー、経験の蓄積は、一回限りのコード生成より重要になります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>TradingAgents-CN：中国語ユーザー向けのマルチエージェント金融取引研究フレームワーク</title>
        <link>https://knightli.com/ja/2026/05/01/tradingagents-cn-multi-agent-financial-research-framework/</link>
        <pubDate>Fri, 01 May 2026 03:14:15 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/tradingagents-cn-multi-agent-financial-research-framework/</guid>
        <description>&lt;p&gt;&lt;code&gt;TradingAgents-CN&lt;/code&gt; は、中国語ユーザー向けのマルチエージェント金融取引研究フレームワークです。&lt;/p&gt;
&lt;p&gt;目的は「どの株を買うべきか」という単純な答えを出すことではありません。複数の AI Agent を使い、より完全な金融分析チームを模擬します。ある役割はファンダメンタルズを見て、別の役割はテクニカルを見ます。ニュースやセンチメントを追う役割もあれば、リスクや最終判断を担当する役割もあります。LLM + Agent + 金融分析を研究したい人にとって、この種のプロジェクトは良い実験入口になります。&lt;/p&gt;
&lt;p&gt;まず明確にしておくべきことがあります。この種のツールは学習、研究、補助分析に向いています。実際の売買助言として扱うべきではありません。金融市場にはリスクがあり、モデル出力も間違い、遅れ、過度な自信を含む可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;解決する問題&#34;&gt;解決する問題
&lt;/h2&gt;&lt;p&gt;通常のチャットモデルでも株式分析はできます。&lt;/p&gt;
&lt;p&gt;たとえば「ある会社を買ってよいか分析して」と聞けば、モデルは一見まとまった回答を返します。しかし、この方法にはいくつか問題があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;分析の流れが透明ではない&lt;/li&gt;
&lt;li&gt;異なる観点が混ざりやすい&lt;/li&gt;
&lt;li&gt;役割分担がない&lt;/li&gt;
&lt;li&gt;賛成と反対の視点の衝突が少ない&lt;/li&gt;
&lt;li&gt;リスク注意が形式的になりやすい&lt;/li&gt;
&lt;li&gt;同じ分析フローを再現しにくい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;TradingAgents-CN&lt;/code&gt; は金融分析を複数の役割に分解し、それぞれの Agent が別の視点を担当します。その後、協調、議論、要約を通じて分析結果を作ります。&lt;/p&gt;
&lt;p&gt;これは実際の投資調査フローに近い形です。投資判断は通常、1 つのニュースや 1 つのテクニカル指標だけでは決まりません。企業のファンダメンタルズ、市場環境、価格推移、資金のセンチメント、政策リスク、ポジション管理を組み合わせて考える必要があります。&lt;/p&gt;
&lt;h2 id=&#34;マルチエージェント分析とは何か&#34;&gt;マルチエージェント分析とは何か
&lt;/h2&gt;&lt;p&gt;マルチエージェント分析は、複数のモデルに順番に話させるだけではありません。&lt;/p&gt;
&lt;p&gt;より価値があるのは、異なる Agent に明確な責務を割り当てることです。たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;市場分析 Agent：相場の流れ、価格変化、市場環境を見る&lt;/li&gt;
&lt;li&gt;ファンダメンタル分析 Agent：事業、財務データ、長期価値を見る&lt;/li&gt;
&lt;li&gt;ニュース分析 Agent：公告、ニュース、世論、イベント影響を見る&lt;/li&gt;
&lt;li&gt;テクニカル分析 Agent：トレンド、指標、支持線と抵抗線、売買シグナルを見る&lt;/li&gt;
&lt;li&gt;リスク管理 Agent：ボラティリティ、ドローダウン、ポジション、不確実性を見る&lt;/li&gt;
&lt;li&gt;意思決定 Agent：異なる意見を総合し、最終判断を作る&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この構造により、単一モデルが「すべての結論を一気に言う」問題を減らせます。&lt;/p&gt;
&lt;p&gt;異なる役割が同じ対象を分析すると、システムは多面的な判断を示しやすくなり、意見の違いも見えやすくなります。学習者にとっては、単なる要約を読むより得るものがあります。&lt;/p&gt;
&lt;h2 id=&#34;なぜ中国語版が必要なのか&#34;&gt;なぜ中国語版が必要なのか
&lt;/h2&gt;&lt;p&gt;金融分析は言語環境と深く関係しています。&lt;/p&gt;
&lt;p&gt;中国語ユーザーが注目する情報源、市場習慣、銘柄名、取引制度、ニュース表現、一般的な用語は、英語環境とは異なります。英語のフレームワークをそのまま使うと、よく次のような問題が出ます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;中国語の株式名とコードの処理がうまくいかない&lt;/li&gt;
&lt;li&gt;A 株、香港株、米国株の文脈が混ざる&lt;/li&gt;
&lt;li&gt;中国語の金融ニュース理解が安定しない&lt;/li&gt;
&lt;li&gt;国内データソースの接続が不便&lt;/li&gt;
&lt;li&gt;出力スタイルが中国語ユーザーの読書習慣に合わない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;TradingAgents-CN&lt;/code&gt; の意味は、このマルチエージェント金融分析フローを中国語ユーザー向けに適応していることです。中国語ユーザーが取引分析の実験フロー全体を構築、実行、理解しやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;何に使えるか&#34;&gt;何に使えるか
&lt;/h2&gt;&lt;p&gt;このプロジェクトは、自動発注よりも研究と補助分析に向いています。&lt;/p&gt;
&lt;p&gt;適した用途は次のようなものです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;マルチエージェントシステムの協調方法を学ぶ&lt;/li&gt;
&lt;li&gt;金融分析における LLM の挙動を研究する&lt;/li&gt;
&lt;li&gt;株式を多角的に情報整理する&lt;/li&gt;
&lt;li&gt;投資調査タスクで異なるモデルを比較する&lt;/li&gt;
&lt;li&gt;自分の金融分析 Agent プロトタイプを作る&lt;/li&gt;
&lt;li&gt;ある銘柄の履歴情報とリスク点を振り返る&lt;/li&gt;
&lt;li&gt;投資調査フローを実行可能なタスクへ分解する練習をする&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;量的取引、金融工学、AI Agent、LLM アプリ開発を学んでいるなら、この種のプロジェクトは「AI 投資調査アシスタント」の裏側にあるエンジニアリング構造を理解する助けになります。&lt;/p&gt;
&lt;h2 id=&#34;何に向かないか&#34;&gt;何に向かないか
&lt;/h2&gt;&lt;p&gt;これは確実に利益を出す道具ではありません。&lt;/p&gt;
&lt;p&gt;特に次のような使い方には向きません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;出力に基づいて直接全力で売買する&lt;/li&gt;
&lt;li&gt;モデルの結論で自分のリスク判断を置き換える&lt;/li&gt;
&lt;li&gt;短期価格予測を確定結果として扱う&lt;/li&gt;
&lt;li&gt;取引コスト、スリッページ、流動性を無視する&lt;/li&gt;
&lt;li&gt;バックテストなしで実口座に接続する&lt;/li&gt;
&lt;li&gt;1 回の分析結論で長期投資戦略を置き換える&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;LLM は情報整理、説明生成、推論フローの模擬に強いですが、市場を安定して予測する能力を自然に持っているわけではありません。金融市場には情報ノイズ、突発イベント、行動ゲームが多くあります。モデル出力は参考資料の一つにすぎません。&lt;/p&gt;
&lt;h2 id=&#34;通常の量的フレームワークとの違い&#34;&gt;通常の量的フレームワークとの違い
&lt;/h2&gt;&lt;p&gt;従来の量的フレームワークは、データ、ファクター、バックテスト、ポートフォリオ最適化、取引実行により重点を置きます。&lt;/p&gt;
&lt;p&gt;たとえば次のような戦略ルールを定義します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;移動平均ブレイクアウト&lt;/li&gt;
&lt;li&gt;モメンタムファクター&lt;/li&gt;
&lt;li&gt;バリューファクター&lt;/li&gt;
&lt;li&gt;ボラティリティフィルター&lt;/li&gt;
&lt;li&gt;損切りと利確&lt;/li&gt;
&lt;li&gt;ポジション管理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;その後、履歴データで戦略の成績をバックテストします。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;TradingAgents-CN&lt;/code&gt; は「エージェント分析フレームワーク」に近いものです。複数の LLM Agent が金融タスクでどのように協調するか、投資調査の議論をどう模擬するか、ニュース、ファンダメンタルズ、テクニカル、リスク判断をどう整理するかに注目します。&lt;/p&gt;
&lt;p&gt;両者は置き換え関係ではありません。&lt;/p&gt;
&lt;p&gt;より現実的な使い方は、従来の量的システムが検証可能なルールとバックテストを担当し、Agent システムが情報整理、レポート生成、視点比較、意思決定支援を担当する形です。実取引に入れるかどうかは、厳密なバックテスト、リスク管理、人間の審査を経る必要があります。&lt;/p&gt;
&lt;h2 id=&#34;chatgpt-に直接聞く場合との違い&#34;&gt;ChatGPT に直接聞く場合との違い
&lt;/h2&gt;&lt;p&gt;モデルに直接聞くのは最も簡単ですが、プロセスは緩いです。&lt;/p&gt;
&lt;p&gt;一度聞くと一度答えます。聞き方を変えると結論も変わるかもしれません。毎回同じ観点から分析する保証も、複数の相互牽制する役割を安定して演じさせることも難しいです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;TradingAgents-CN&lt;/code&gt; の価値は、分析フローを構造化することです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;役割がより明確&lt;/li&gt;
&lt;li&gt;手順がより再現しやすい&lt;/li&gt;
&lt;li&gt;情報源を整理しやすい&lt;/li&gt;
&lt;li&gt;視点の衝突が自然&lt;/li&gt;
&lt;li&gt;リスクチェックを個別に扱いやすい&lt;/li&gt;
&lt;li&gt;出力が投資調査フローの結果に近い&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは学習と研究に役立ちます。異なる Agent が最終結論にどう影響するかを観察できますし、モデルを替えたり、プロンプトを調整したり、役割分担を変更したりして結果の変化を比較できます。&lt;/p&gt;
&lt;h2 id=&#34;利用時に注意すべきリスク&#34;&gt;利用時に注意すべきリスク
&lt;/h2&gt;&lt;p&gt;第一に、データ品質です。&lt;/p&gt;
&lt;p&gt;金融分析はデータに強く依存します。相場、財務報告、ニュース、公告データが不完全または遅れている場合、Agent の分析が流暢でも間違った基礎の上に立っている可能性があります。&lt;/p&gt;
&lt;p&gt;第二に、モデルの幻覚です。&lt;/p&gt;
&lt;p&gt;LLM は存在しない事実を作ったり、データの意味を誤解したり、古い情報を新しい情報として扱ったりする可能性があります。具体的な株式に関わる場合は、必ずデータソースで確認する必要があります。&lt;/p&gt;
&lt;p&gt;第三に、過剰な説明です。&lt;/p&gt;
&lt;p&gt;モデルは「もっともらしい」説明を作るのが得意ですが、市場価格の変化が本当にその理由によるとは限りません。事後説明を因果証明と誤解しないことが重要です。&lt;/p&gt;
&lt;p&gt;第四に、バックテストと実取引の差です。&lt;/p&gt;
&lt;p&gt;ある戦略が履歴データで良い成績を示しても、実取引ではスリッページ、手数料、流動性、取引停止、値幅制限、極端な相場などに直面します。&lt;/p&gt;
&lt;p&gt;第五に、ライセンスと商用利用の境界です。&lt;/p&gt;
&lt;p&gt;README では、このプロジェクトが混合ライセンスを採用していると説明されています。個人の学習研究と商用利用では条件が異なる可能性があります。商用製品やサービスに組み込む場合は、まずライセンス説明をよく読む必要があります。&lt;/p&gt;
&lt;h2 id=&#34;研究に向いている人&#34;&gt;研究に向いている人
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;TradingAgents-CN&lt;/code&gt; は次のような人に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI Agent アーキテクチャを学びたい開発者&lt;/li&gt;
&lt;li&gt;LLM の金融分析能力を研究したい人&lt;/li&gt;
&lt;li&gt;量的取引をしていて自然言語分析を加えたい人&lt;/li&gt;
&lt;li&gt;投資調査支援ツールを作りたいチーム&lt;/li&gt;
&lt;li&gt;複数役割の協調が意思決定にどう影響するか知りたい人&lt;/li&gt;
&lt;li&gt;中国語環境で取引 Agent を実験したいユーザー&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;単純な売買提案だけが目的なら、このプロジェクトは最適な使い方ではありません。注目すべきなのは、1 回の出力の結論ではなく、フロー、役割、協調、リスク管理です。&lt;/p&gt;
&lt;h2 id=&#34;拡張できる方向&#34;&gt;拡張できる方向
&lt;/h2&gt;&lt;p&gt;この種のフレームワークには多くの拡張方向があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;より信頼できるデータソースを接続する&lt;/li&gt;
&lt;li&gt;ローカルモデル対応を追加する&lt;/li&gt;
&lt;li&gt;バックテストモジュールを追加する&lt;/li&gt;
&lt;li&gt;A 株、香港株、米国株の市場ルールを細かく分ける&lt;/li&gt;
&lt;li&gt;業界分析 Agent を追加する&lt;/li&gt;
&lt;li&gt;ポートフォリオ管理とポジション制御を追加する&lt;/li&gt;
&lt;li&gt;レポート引用とデータ追跡を強化する&lt;/li&gt;
&lt;li&gt;Agent の結論と従来の量的シグナルを組み合わせる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本当に価値のある金融 AI システムは、通常モデルだけにすべてを決めさせるものではありません。検証可能で、追跡可能で、リスク管理されたフローの中にモデルを組み込むものです。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/hsliuping/TradingAgents-CN&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;hsliuping/TradingAgents-CN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;TradingAgents-CN&lt;/code&gt; が注目に値する理由は、次のローソク足を予測できるかどうかではなく、金融分析をマルチエージェント協調フローに分解していることです。&lt;/p&gt;
&lt;p&gt;自動で利益を出す機械としてではなく、学習と研究の道具として扱う方が合理的です。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>qmd：AI Agent 向けのローカル Markdown ドキュメント検索ツール</title>
        <link>https://knightli.com/ja/2026/05/01/qmd-markdown-search-for-ai-agents/</link>
        <pubDate>Fri, 01 May 2026 03:12:57 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/qmd-markdown-search-for-ai-agents/</guid>
        <description>&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; は、ローカル Markdown ドキュメント向けの検索ツールです。主な利用対象は AI Agent です。&lt;/p&gt;
&lt;p&gt;解決する問題は具体的です。プロジェクトに大量の &lt;code&gt;.md&lt;/code&gt; ドキュメントがある場合、AI コーディングアシスタントは、どのファイルを読むべきか、どの段落を引用すべきか、どの説明が最新かを判断しづらくなります。全文 grep はキーワードを見つけられますが、意味の理解は苦手です。ドキュメント全体をコンテキストに詰め込むと、ウィンドウを浪費し、無関係な内容も混ざりやすくなります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; の考え方は、まず Markdown ドキュメントにインデックスを作り、その後検索インターフェースを通じて最も関連する断片を AI に渡すことです。CLI ツールとして使うことも、SDK で統合することも、MCP Server として MCP 対応クライアントに接続することもできます。&lt;/p&gt;
&lt;h2 id=&#34;解決する問題&#34;&gt;解決する問題
&lt;/h2&gt;&lt;p&gt;実際のプロジェクトのドキュメントは、README が 1、2 個あるだけではありません。&lt;/p&gt;
&lt;p&gt;たとえば次のようなものがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;アーキテクチャ説明&lt;/li&gt;
&lt;li&gt;API ドキュメント&lt;/li&gt;
&lt;li&gt;開発規約&lt;/li&gt;
&lt;li&gt;デプロイ手順&lt;/li&gt;
&lt;li&gt;設計判断記録&lt;/li&gt;
&lt;li&gt;トラブルシューティングメモ&lt;/li&gt;
&lt;li&gt;要件ドキュメント&lt;/li&gt;
&lt;li&gt;AI 利用説明&lt;/li&gt;
&lt;li&gt;各種ツールチェーンのメモ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;人間はディレクトリをたどってドキュメントを読めますが、AI Agent には明確な検索入口が必要です。そうでないと、次のようなことが起こります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;間違ったドキュメントを読む&lt;/li&gt;
&lt;li&gt;重要な制約を見落とす&lt;/li&gt;
&lt;li&gt;古い説明を使う&lt;/li&gt;
&lt;li&gt;無関係な内容をコンテキストに入れる&lt;/li&gt;
&lt;li&gt;存在しないルールを経験で補完して回答する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; の価値はここにあります。ローカル Markdown ドキュメントを検索可能な知識源にし、AI がコンテキストを必要とするときにまず検索し、一致した断片に基づいて回答や作業を行えるようにします。&lt;/p&gt;
&lt;h2 id=&#34;検索方式の特徴&#34;&gt;検索方式の特徴
&lt;/h2&gt;&lt;p&gt;README によると、&lt;code&gt;qmd&lt;/code&gt; は複数の検索方式を組み合わせています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BM25 キーワード検索&lt;/li&gt;
&lt;li&gt;ベクトル検索&lt;/li&gt;
&lt;li&gt;LLM reranking&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;BM25 は明確なキーワードに向いています。関数名、設定項目、エラーコード、ファイル名を探す場合は直接的です。&lt;/p&gt;
&lt;p&gt;ベクトル検索は意味的な質問に向いています。たとえば「このプロジェクトは権限検証をどう扱っているか」と聞く場合、ドキュメントにその exact な語句がなくても、認証、アクセス制御、ロール判定に関する説明が見つかる可能性があります。&lt;/p&gt;
&lt;p&gt;LLM reranking は候補結果の並べ替えに使われます。最初の 2 つのステップで関連しそうな内容を集め、その後モデルが現在の質問により合う断片を判断します。&lt;/p&gt;
&lt;p&gt;この組み合わせは、単純なキーワード検索より AI Agent に向いています。Agent の質問は固定キーワードではなく、タスク意図であることが多いからです。&lt;/p&gt;
&lt;h2 id=&#34;なぜ-markdown-なのか&#34;&gt;なぜ Markdown なのか
&lt;/h2&gt;&lt;p&gt;Markdown は開発プロジェクトで最もよく使われるドキュメント形式です。&lt;/p&gt;
&lt;p&gt;Git に入れやすいほど単純で、見出し、リスト、コードブロック、リンク、表を持てる程度には構造化されています。AI にとっても、Markdown は PDF、Web スナップショット、スクリーンショットより解析しやすい形式です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; が Markdown に集中しているため、開発ドキュメントに対してより直接的な処理ができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;見出しと段落で内容を分割する&lt;/li&gt;
&lt;li&gt;コードブロックを保持する&lt;/li&gt;
&lt;li&gt;ドキュメントパスを保持する&lt;/li&gt;
&lt;li&gt;引用しやすい断片を返す&lt;/li&gt;
&lt;li&gt;Agent が回答の出典ドキュメントを把握できる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは、AI にリポジトリをランダムに走査させるより安定しており、すべてのドキュメントを一度に prompt へ入れるよりコンテキストを節約できます。&lt;/p&gt;
&lt;h2 id=&#34;3-つの利用入口&#34;&gt;3 つの利用入口
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; は CLI、SDK、MCP Server の 3 つの入口を提供します。&lt;/p&gt;
&lt;h3 id=&#34;1-cli&#34;&gt;1. CLI
&lt;/h3&gt;&lt;p&gt;CLI はターミナルで直接使う場合や、スクリプトに組み込む場合に向いています。&lt;/p&gt;
&lt;p&gt;ドキュメントディレクトリをインデックス化し、コマンドで関連内容を検索できます。開発者にとって CLI は最も効果を確認しやすい入口です。まず正しいドキュメントが見つかるかを確認し、その後より複雑なワークフローへの統合を考えられます。&lt;/p&gt;
&lt;p&gt;この種のツールはローカルプロジェクトで便利です。コード変更前に設計ドキュメントを検索し、デバッグ前に障害メモを確認し、API を書く前に API 規約を調べることができます。&lt;/p&gt;
&lt;h3 id=&#34;2-sdk&#34;&gt;2. SDK
&lt;/h3&gt;&lt;p&gt;SDK は &lt;code&gt;qmd&lt;/code&gt; を自分のツールに組み込む場合に向いています。&lt;/p&gt;
&lt;p&gt;社内開発アシスタント、ドキュメント Q&amp;amp;A システム、コードレビューボット、プロジェクト知識ベースを作っている場合、ユーザーに直接コマンドを打たせるのではなく、SDK から検索機能を呼び出せます。&lt;/p&gt;
&lt;p&gt;SDK では次のような制御がしやすくなります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;検索ディレクトリ&lt;/li&gt;
&lt;li&gt;クエリ内容&lt;/li&gt;
&lt;li&gt;返す件数&lt;/li&gt;
&lt;li&gt;結果形式&lt;/li&gt;
&lt;li&gt;後続でモデルに要約させるか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;深い統合が必要な場面に向いています。&lt;/p&gt;
&lt;h3 id=&#34;3-mcp-server&#34;&gt;3. MCP Server
&lt;/h3&gt;&lt;p&gt;MCP は、&lt;code&gt;qmd&lt;/code&gt; が AI Agent にとって最も価値を持つ入口です。&lt;/p&gt;
&lt;p&gt;MCP Server を通じて、MCP 対応クライアントは &lt;code&gt;qmd&lt;/code&gt; をドキュメント検索ツールとして呼び出せます。これにより Agent は、タスク実行時にプロジェクトルールを推測するのではなく、まずローカル Markdown ドキュメントを検索できます。&lt;/p&gt;
&lt;p&gt;典型的な流れは次のようになります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ユーザーが AI にある機能の変更を依頼する&lt;/li&gt;
&lt;li&gt;AI がまず &lt;code&gt;qmd&lt;/code&gt; を呼び出して関連設計ドキュメントを検索する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;qmd&lt;/code&gt; が最も関連する Markdown 断片を返す&lt;/li&gt;
&lt;li&gt;AI がドキュメント制約に基づいてコードを変更する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;これは「新しい会話のたびにすべてのルールを手で貼る」より自然で、長期プロジェクトにも向いています。&lt;/p&gt;
&lt;h2 id=&#34;向いている場面&#34;&gt;向いている場面
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; は次のような場面に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロジェクトに大量の Markdown ドキュメントがある&lt;/li&gt;
&lt;li&gt;AI Agent が頻繁にプロジェクトルールを調べる必要がある&lt;/li&gt;
&lt;li&gt;チームが AI の回答にローカルドキュメントを引用させたい&lt;/li&gt;
&lt;li&gt;ドキュメントが複数ディレクトリに分散している&lt;/li&gt;
&lt;li&gt;CLI、SDK、MCP の間で同じ検索機能を再利用したい&lt;/li&gt;
&lt;li&gt;AI コーディングアシスタントがプロジェクト規約を推測するのを減らしたい&lt;/li&gt;
&lt;li&gt;ローカル知識ベースを Claude Desktop、Claude Code、その他の MCP クライアントに接続したい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;プロジェクトに短い README が 1 つだけなら、AI にそのファイルを読ませれば十分です。&lt;/p&gt;
&lt;p&gt;しかし、ドキュメントが数十、数百ファイルに増えている場合や、Agent に毎回ドキュメントを検索してから行動してほしい場合、この種のインデックスツールには意味があります。&lt;/p&gt;
&lt;h2 id=&#34;grep-との違い&#34;&gt;grep との違い
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;grep&lt;/code&gt; や &lt;code&gt;rg&lt;/code&gt; は正確な検索に非常に向いています。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DATABASE_URL&lt;/code&gt;、&lt;code&gt;authMiddleware&lt;/code&gt;、&lt;code&gt;404&lt;/code&gt;、&lt;code&gt;docker compose&lt;/code&gt; を探したいと分かっているなら、キーワード検索がたいてい最速です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; は、正確な語句が分からない場合に向いています。&lt;/p&gt;
&lt;p&gt;たとえば次のような質問です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;このプロジェクトのリリース手順は何か&lt;/li&gt;
&lt;li&gt;新しい API を追加するときに守る規約は何か&lt;/li&gt;
&lt;li&gt;キャッシュ戦略について過去に記録があるか&lt;/li&gt;
&lt;li&gt;AI がコードを変更する前に読むべきドキュメントはどれか&lt;/li&gt;
&lt;li&gt;あるモジュールの設計背景はどこにあるか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらは一語の一致ではなく、意味検索が必要なことが多いです。&lt;code&gt;qmd&lt;/code&gt; の BM25 + ベクトル + reranking の組み合わせは、こうした質問で正しいコンテキストを見つけやすくするためのものです。&lt;/p&gt;
&lt;h2 id=&#34;rag-との関係&#34;&gt;RAG との関係
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; は、Markdown ドキュメント向けの軽量 RAG コンポーネントと見ることができます。&lt;/p&gt;
&lt;p&gt;完全な Q&amp;amp;A システムを代わりに作るものではありません。「関連するドキュメント断片を見つける」ことに集中しています。その後、それらの断片をどう使うかは、CLI、SDK、MCP クライアント、または自分の Agent ワークフローに任せられます。&lt;/p&gt;
&lt;p&gt;この位置づけは実用的です。多くのプロジェクトは巨大な知識ベースシステムを必要としていません。必要なのは、AI がローカルドキュメントをより正確かつ素早く検索し、その結果を現在のタスクへ戻せることです。&lt;/p&gt;
&lt;h2 id=&#34;利用時の注意&#34;&gt;利用時の注意
&lt;/h2&gt;&lt;p&gt;第一に、ドキュメント品質は依然として重要です。&lt;/p&gt;
&lt;p&gt;検索ツールは既存の内容を見つけるだけです。ドキュメント自体が古い、重複している、矛盾している場合、AI は誤ったコンテキストを受け取る可能性があります。&lt;code&gt;qmd&lt;/code&gt; を Agent に接続する前に、重要なドキュメントを整理した方がよいです。&lt;/p&gt;
&lt;p&gt;第二に、インデックス範囲を広げすぎないことです。&lt;/p&gt;
&lt;p&gt;リポジトリ内のすべての Markdown を入れれば良いとは限りません。依存パッケージのドキュメント、一時メモ、古い案の草稿は結果を汚す可能性があります。どのディレクトリが信頼できるドキュメントソースかを明確にする方がよいです。&lt;/p&gt;
&lt;p&gt;第三に、検索結果には出典を残すことです。&lt;/p&gt;
&lt;p&gt;AI がドキュメント断片を使うとき、それがどのファイル、どの章から来たのか分かる方がよいです。人間が確認しやすくなり、「ドキュメントの結論に見えるが実はモデルの要約」という問題も減ります。&lt;/p&gt;
&lt;p&gt;第四に、人間の判断を完全に置き換えないことです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; はコンテキストの再現率を高められますが、プロジェクトの真実の源を置き換えるものではありません。重要な変更では、現在のコード、テスト結果、最新要件を確認する必要があります。&lt;/p&gt;
&lt;h2 id=&#34;向いているチーム&#34;&gt;向いているチーム
&lt;/h2&gt;&lt;p&gt;チームがすでに AI Agent を日常開発フローに入れ始めているなら、&lt;code&gt;qmd&lt;/code&gt; のようなツールは価値があります。&lt;/p&gt;
&lt;p&gt;特に次のようなチームに向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ドキュメントを多く書いている&lt;/li&gt;
&lt;li&gt;プロジェクト履歴が長い&lt;/li&gt;
&lt;li&gt;新メンバーと AI の両方が素早く背景を理解する必要がある&lt;/li&gt;
&lt;li&gt;アーキテクチャ決定記録をよく保守している&lt;/li&gt;
&lt;li&gt;Markdown の規約ドキュメントが多い&lt;/li&gt;
&lt;li&gt;AI がコード変更前にルールを確認するようにしたい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;目的は AI を「全知全能」にすることではありません。AI が推測を減らし、より多く調べるようにすることです。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/tobi/qmd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tobi/qmd&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; の価値は、ローカル Markdown ドキュメントを AI Agent が安定して呼び出せる検索入口に変えることです。&lt;/p&gt;
&lt;p&gt;プロジェクトドキュメントが「人間が読む説明」から「人間と AI の両方が検索できるコンテキスト源」になると、AI コーディングアシスタントはプロジェクトルールに従いやすくなります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude Code Hooks Mastery：13 個の Hooks ライフサイクルと自動化制御の入門</title>
        <link>https://knightli.com/ja/2026/05/01/claude-code-hooks-mastery-guide/</link>
        <pubDate>Fri, 01 May 2026 03:11:27 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/claude-code-hooks-mastery-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;claude-code-hooks-mastery&lt;/code&gt; は、&lt;code&gt;Claude Code Hooks&lt;/code&gt; を学ぶためのプロジェクトです。&lt;/p&gt;
&lt;p&gt;単にいくつかのスクリプトを並べただけではありません。Claude Code の hooks ライフサイクル、設定方法、スクリプトの書き方、よくある自動化シナリオをまとめて説明しています。Claude Code をより制御しやすく、よりエンジニアリング向けの助手として使いたい人にとって、読む価値のある資料です。&lt;/p&gt;
&lt;p&gt;Claude Code は標準でもコードを読み、ファイルを編集し、コマンドを実行できます。しかし、特定のタイミングで権限を確認したり、危険な操作を止めたり、プロジェクト規約を注入したり、テストを実行したり、チームルールを思い出させたりしたい場合、チャット指示だけでは安定しません。Hooks の価値は、「毎回 AI に思い出させたいルール」を実行可能なワークフローに変えることです。&lt;/p&gt;
&lt;h2 id=&#34;hooks-が解決する問題&#34;&gt;Hooks が解決する問題
&lt;/h2&gt;&lt;p&gt;Claude Code をしばらく使うと、よく次のような課題が出てきます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;新しい会話のたびに同じプロジェクトルールを説明する必要がある&lt;/li&gt;
&lt;li&gt;実行してはいけないコマンドを実行しないか不安&lt;/li&gt;
&lt;li&gt;ファイル変更の前後で自動チェックしたい&lt;/li&gt;
&lt;li&gt;コミット前にフォーマット、テスト、セキュリティスキャンを走らせたい&lt;/li&gt;
&lt;li&gt;チーム規約を口頭の注意ではなく固定フローにしたい&lt;/li&gt;
&lt;li&gt;ツール呼び出しの前後でコンテキストを取得し、ログやブロックに使いたい&lt;/li&gt;
&lt;li&gt;複雑なタスクでサブエージェントや専用スクリプトを起動したい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hooks は、こうした「決まったタイミングでの自動動作」のためにあります。&lt;/p&gt;
&lt;p&gt;Claude Code ワークフロー内のイベントフックとして考えるとわかりやすいです。セッション開始、ユーザーのプロンプト送信、モデルがツールを呼び出す直前、ツール呼び出し完了、エージェント終了直前などのタイミングで、設定したスクリプトを実行できます。&lt;/p&gt;
&lt;h2 id=&#34;13-個の-hooks-ライフサイクル&#34;&gt;13 個の Hooks ライフサイクル
&lt;/h2&gt;&lt;p&gt;このプロジェクト README の重要な点の一つは、Claude Code の 13 個の hook イベントを体系的に整理していることです。&lt;/p&gt;
&lt;p&gt;これらのイベントは、セッション開始からツール呼び出し、ユーザー入力からエージェント終了まで、複数の段階をカバーします。用途別には、おおまかに次のように分けられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;セッション起動関連：環境初期化、プロジェクトコンテキスト注入&lt;/li&gt;
&lt;li&gt;ユーザー入力関連：プロンプト確認、ルール補足、監査&lt;/li&gt;
&lt;li&gt;ツール呼び出し前関連：権限判断、コマンドブロック、安全チェック&lt;/li&gt;
&lt;li&gt;ツール呼び出し後関連：結果記録、フォーマット起動、検証実行&lt;/li&gt;
&lt;li&gt;タスク終了関連：要約、クリーンアップ、通知、状態保存&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このライフサイクル設計により、すべてのルールを長いプロンプトに詰め込む必要がなくなります。&lt;/p&gt;
&lt;p&gt;たとえば、権限制御はツール呼び出し前に行うべきです。フォーマットチェックはファイル変更後の方が自然です。プロジェクト規約の注入は、セッション開始時やユーザー入力後が向いています。正しい hook ポイントにルールを置く方が、すべてを system prompt に詰めるより信頼しやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;設定ファイルの場所&#34;&gt;設定ファイルの場所
&lt;/h2&gt;&lt;p&gt;Claude Code の hooks は通常、設定ファイルで構成します。&lt;/p&gt;
&lt;p&gt;よく使われる場所は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ユーザー単位の設定：&lt;code&gt;~/.claude/settings.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;プロジェクト単位の設定：&lt;code&gt;.claude/settings.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ユーザー単位の設定は、一般的な安全ルール、コマンドブロック、ログパスなど、個人の好みに向いています。&lt;/p&gt;
&lt;p&gt;プロジェクト単位の設定は、そのリポジトリに関するルールに向いています。たとえば、必ず実行するテスト、編集禁止のディレクトリ、生成ファイルの扱い、コミット前のチェックなどです。&lt;/p&gt;
&lt;p&gt;チームで Claude Code を使うなら、プロジェクト単位の設定をリポジトリに置くのがおすすめです。そうすれば、各自が記憶で AI に注意するのではなく、全員が同じ AI 協作制約を持ってプロジェクトを開けます。&lt;/p&gt;
&lt;h2 id=&#34;単一ファイルスクリプトが重要な理由&#34;&gt;単一ファイルスクリプトが重要な理由
&lt;/h2&gt;&lt;p&gt;このプロジェクトでは &lt;code&gt;UV&lt;/code&gt; の単一ファイルスクリプトが強調されています。&lt;/p&gt;
&lt;p&gt;利点はデプロイが簡単なことです。1 つの Python ファイルで依存関係を宣言して実行できるため、1 つの hook のために複雑な環境を維持する必要がありません。多くの hook は小さな処理を 1 つ行うだけなので、この形式は適しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コマンドの実行可否を確認する&lt;/li&gt;
&lt;li&gt;ファイルパスが安全か判断する&lt;/li&gt;
&lt;li&gt;プロジェクト規約を読み、Claude に返す&lt;/li&gt;
&lt;li&gt;出力に機密情報が含まれていないか調べる&lt;/li&gt;
&lt;li&gt;変更後にフォーマットやテストを実行する&lt;/li&gt;
&lt;li&gt;イベントをログに書く&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hook スクリプトは小さいほど保守しやすく、新しい複雑なシステムになりにくくなります。&lt;/p&gt;
&lt;h2 id=&#34;どんな自動化ができるか&#34;&gt;どんな自動化ができるか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;claude-code-hooks-mastery&lt;/code&gt; は多くの方向性を示しています。実務でよく使うのは次のようなものです。&lt;/p&gt;
&lt;h3 id=&#34;1-権限と安全制御&#34;&gt;1. 権限と安全制御
&lt;/h3&gt;&lt;p&gt;これは hooks の最も直接的な用途です。&lt;/p&gt;
&lt;p&gt;Claude Code がコマンドを実行する前に、その内容をチェックできます。削除、リセット、クリア、上書きなどの高リスク操作が含まれている場合、実行を止めるか、人間の確認を求められます。&lt;/p&gt;
&lt;p&gt;同様のルールはファイルパスにも使えます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本番設定を変更しない&lt;/li&gt;
&lt;li&gt;秘密鍵ファイルに書き込まない&lt;/li&gt;
&lt;li&gt;マイグレーションスクリプトを削除しない&lt;/li&gt;
&lt;li&gt;指定ディレクトリに触れない&lt;/li&gt;
&lt;li&gt;未承認のネットワークコマンドを実行しない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この保護をツール呼び出し前に置く方が、「危険な操作をしないで」とプロンプトに書くより確実です。&lt;/p&gt;
&lt;h3 id=&#34;2-コンテキスト注入&#34;&gt;2. コンテキスト注入
&lt;/h3&gt;&lt;p&gt;多くのプロジェクトには固定された背景があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;技術スタック&lt;/li&gt;
&lt;li&gt;コーディング規約&lt;/li&gt;
&lt;li&gt;テストコマンド&lt;/li&gt;
&lt;li&gt;ブランチ戦略&lt;/li&gt;
&lt;li&gt;ディレクトリ構造&lt;/li&gt;
&lt;li&gt;禁止事項&lt;/li&gt;
&lt;li&gt;生成ファイルの扱い&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらを毎回手動で Claude Code に伝えるのは面倒で、漏れやすいです。Hooks を使えば、セッション開始時やユーザーのプロンプト送信後に必要なコンテキストを自動注入できます。&lt;/p&gt;
&lt;p&gt;これは Claude Code にプロジェクト単位の作業マニュアルを渡すようなものです。README や開発ドキュメントを置き換えるものではありませんが、AI がタスクを始める前に正しい状態へ入りやすくなります。&lt;/p&gt;
&lt;h3 id=&#34;3-変更後の検証&#34;&gt;3. 変更後の検証
&lt;/h3&gt;&lt;p&gt;Claude Code がファイルを変更した後、hook で自動チェックを起動できます。&lt;/p&gt;
&lt;p&gt;よくある処理は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;フォーマットを実行する&lt;/li&gt;
&lt;li&gt;lint を実行する&lt;/li&gt;
&lt;li&gt;単体テストを実行する&lt;/li&gt;
&lt;li&gt;型エラーを確認する&lt;/li&gt;
&lt;li&gt;生成ファイルをスキャンする&lt;/li&gt;
&lt;li&gt;Markdown や JSON の形式を検証する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは低レベルなミスを減らすのに役立ちます。AI が複数ファイルを変更した場合、変更後に軽量な検証を走らせることで、問題を早めに見つけられます。&lt;/p&gt;
&lt;p&gt;ただし、hook に重い処理をデフォルトで入れるのは向きません。ファイル変更のたびに完全なテストスイートを走らせると、体験が遅くなります。より実用的なのは、ファイル種別、ディレクトリ、タスクのリスクに応じてチェック範囲を選ぶことです。&lt;/p&gt;
&lt;h3 id=&#34;4-チームルールの検証&#34;&gt;4. チームルールの検証
&lt;/h3&gt;&lt;p&gt;チームに明確な約束があるなら、その一部を hooks に入れられます。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コミットメッセージ形式&lt;/li&gt;
&lt;li&gt;コードスタイルルール&lt;/li&gt;
&lt;li&gt;特定の生成ファイルを直接変更しない&lt;/li&gt;
&lt;li&gt;ドキュメントを同時に更新する&lt;/li&gt;
&lt;li&gt;API 変更ではテストも更新する&lt;/li&gt;
&lt;li&gt;特定ディレクトリは指定ツールでのみ生成する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これにより Claude Code は、制約のない外部アシスタントではなく、チームワークフローの一部に近づきます。&lt;/p&gt;
&lt;p&gt;もちろん、hooks は CI の代わりではありません。ローカルでの早めの注意や前置ブロックに向いています。最終検証は CI、review、テストシステムに任せるべきです。&lt;/p&gt;
&lt;h3 id=&#34;5-サブエージェントと専用タスク&#34;&gt;5. サブエージェントと専用タスク
&lt;/h3&gt;&lt;p&gt;README ではサブエージェント関連の内容にも触れています。&lt;/p&gt;
&lt;p&gt;この使い方は、複雑なタスクをより専門的なフローに分ける場合に向いています。たとえばメイン会話が要求を理解し、hook や設定が専用のチェック、監査、要約、ドキュメント整理タスクを起動します。&lt;/p&gt;
&lt;p&gt;個人ユーザーにとって、最初にやる価値があるのは複雑なエージェント編成ではありません。まずは反復的で明確かつ低リスクな処理を hooks に任せることです。ルールが安定してから、より複雑な自動化を検討すれば十分です。&lt;/p&gt;
&lt;h2 id=&#34;statusline-と出力スタイル&#34;&gt;Statusline と出力スタイル
&lt;/h2&gt;&lt;p&gt;プロジェクトは statusline と出力スタイルも扱っています。&lt;/p&gt;
&lt;p&gt;一見すると体験面の細部ですが、Claude Code を長期的に使う場合には重要です。Statusline は現在のコンテキスト、タスク状態、環境情報、ヒントを表示できます。出力スタイルは Claude Code の回答を自分の作業習慣に合わせやすくします。&lt;/p&gt;
&lt;p&gt;毎日同じターミナルで AI と協作するなら、こうした細部は効率に影響します。良い状態表示は誤操作を減らし、現在の会話が正しいプロジェクト、正しいブランチ、正しい環境にいるかを素早く判断できます。&lt;/p&gt;
&lt;h2 id=&#34;hooks-を重くしすぎない&#34;&gt;hooks を重くしすぎない
&lt;/h2&gt;&lt;p&gt;Hooks は強力ですが、何でも詰め込む場所ではありません。&lt;/p&gt;
&lt;p&gt;良いルールは次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;高頻度の処理は速くする&lt;/li&gt;
&lt;li&gt;安全ブロックは明確にする&lt;/li&gt;
&lt;li&gt;出力は短くする&lt;/li&gt;
&lt;li&gt;失敗理由は読みやすくする&lt;/li&gt;
&lt;li&gt;スクリプトはできるだけ単一責務にする&lt;/li&gt;
&lt;li&gt;重いチェックは明示コマンドや CI に任せる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;毎回 10 秒以上かかる hook は、すぐに無効化したくなります。ブロックルールが曖昧な hook も、Claude Code とユーザーの両方にとって次に何をすべきか分かりにくくなります。&lt;/p&gt;
&lt;p&gt;Hooks は、境界が明確な処理に最も向いています。許可または拒否、コンテキスト追加、ログ記録、軽量チェック、次の手順提示などです。&lt;/p&gt;
&lt;h2 id=&#34;向いているユーザー&#34;&gt;向いているユーザー
&lt;/h2&gt;&lt;p&gt;たまに Claude Code に小さなコード変更を頼むだけなら、hooks を深く学ぶ必要はまだないかもしれません。&lt;/p&gt;
&lt;p&gt;しかし、次のような場合はこのプロジェクトを調べる価値があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code を頻繁に使う&lt;/li&gt;
&lt;li&gt;AI に実際のプロジェクトコードをよく変更させる&lt;/li&gt;
&lt;li&gt;AI が危険なコマンドを実行しないか不安&lt;/li&gt;
&lt;li&gt;チーム規約を AI ワークフローに自動注入したい&lt;/li&gt;
&lt;li&gt;変更後に自動チェックを走らせたい&lt;/li&gt;
&lt;li&gt;繰り返しの注意を設定に変えたい&lt;/li&gt;
&lt;li&gt;より安定した AI コーディングフローを作っている&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;特に複数人で作業するプロジェクトでは、hooks の意味が大きくなります。チーム経験の一部をスクリプトとして残せるため、各メンバーがその場で AI に注意する必要が減ります。&lt;/p&gt;
&lt;h2 id=&#34;利用時の注意&#34;&gt;利用時の注意
&lt;/h2&gt;&lt;p&gt;第一に、安全系 hook から始めることです。&lt;/p&gt;
&lt;p&gt;複雑な自動化よりも、コマンドブロック、パス保護、機密ファイルチェックの方が実装しやすく、すぐにリスクを下げられます。&lt;/p&gt;
&lt;p&gt;第二に、プロジェクト単位のルールは慎重にコミットすることです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.claude/settings.json&lt;/code&gt; は、そのリポジトリを使う全員に影響します。コミット前に、通常開発を過度に制限しないこと、自分のマシンにしかないパスに依存しないことを確認した方がよいです。&lt;/p&gt;
&lt;p&gt;第三に、hook の出力は簡潔にすることです。&lt;/p&gt;
&lt;p&gt;Claude Code はその出力を消費します。長すぎるとコンテキストを汚し、曖昧すぎると次の行動を導けません。必要な判断と次の提案だけを返すのがよいです。&lt;/p&gt;
&lt;p&gt;第四に、デバッグしやすく保つことです。&lt;/p&gt;
&lt;p&gt;Hooks が増えると、問題は設定、スクリプト、権限、パス、依存関係、Claude Code 本体のどこからでも起こり得ます。明確なログを残すと、後の調査がずっと楽になります。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/disler/claude-code-hooks-mastery&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;disler/claude-code-hooks-mastery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude Code Hooks&lt;/code&gt; の価値は、「AI に毎回覚えていてほしいルール」を、実際に実行されるフローへ変えることです。&lt;/p&gt;
&lt;p&gt;すでに Claude Code を実プロジェクトで使い始めているなら、hooks は「会話できるコーディング助手」から「制約を持つエンジニアリング協作者」へ進むための重要な一歩です。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Prompt Optimizer：プロンプト最適化、テスト、MCP に対応したオープンソースツール</title>
        <link>https://knightli.com/ja/2026/05/01/prompt-optimizer-prompt-engineering-tool/</link>
        <pubDate>Fri, 01 May 2026 03:09:07 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/prompt-optimizer-prompt-engineering-tool/</guid>
        <description>&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; は、プロンプトを改善するためのオープンソースツールです。目的は明確で、粗いプロンプトをより明確で安定し、LLM が実行しやすい形に整えることです。&lt;/p&gt;
&lt;p&gt;単に「prompt をきれいに書き直す」ページではありません。プロンプト最適化、結果テスト、比較評価、複数モデル接続、画像生成プロンプト処理、MCP 連携まで備えています。システムプロンプト、ユーザープロンプト、AI ワークフローテンプレートをよく書く人にとっては、専用のプロンプト作業台に近いツールです。&lt;/p&gt;
&lt;h2 id=&#34;解決する問題&#34;&gt;解決する問題
&lt;/h2&gt;&lt;p&gt;AI を使っていると、よく次のような問題にぶつかります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロンプトは長くなるのに、出力品質があまり改善しない&lt;/li&gt;
&lt;li&gt;同じタスクでも、モデルを替えると挙動が安定しない&lt;/li&gt;
&lt;li&gt;システムプロンプトとユーザープロンプトが混ざり、デバッグしにくい&lt;/li&gt;
&lt;li&gt;プロンプトを変更しても、前の版より良くなったか判断しにくい&lt;/li&gt;
&lt;li&gt;変数テンプレートを再利用したいが、毎回の置換とテストが面倒&lt;/li&gt;
&lt;li&gt;他の AI ツールからプロンプト最適化を呼びたいが、標準的な入口がない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; は、こうした問題を中心に設計されています。「prompt を書く」という作業を、最適化、テスト、評価、比較、反復に分けることで、感覚だけに頼らない調整をしやすくします。&lt;/p&gt;
&lt;h2 id=&#34;主な機能&#34;&gt;主な機能
&lt;/h2&gt;&lt;h3 id=&#34;1-システムプロンプトとユーザープロンプトの最適化&#34;&gt;1. システムプロンプトとユーザープロンプトの最適化
&lt;/h3&gt;&lt;p&gt;プロンプトには複数の種類があります。&lt;/p&gt;
&lt;p&gt;システムプロンプトは通常、役割、目的、境界、出力ルール、作業方法を定義します。ユーザープロンプトは、個別タスクの入力に近いものです。この 2 つが混ざると、モデルが重要点を捉えにくくなり、再利用もしづらくなります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; は、システムプロンプトとユーザープロンプトの両方の最適化に対応しています。長期的に使うロール設定と、特定タスクの入力表現を分けて扱えます。&lt;/p&gt;
&lt;p&gt;次のような場面で役立ちます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI コーディングアシスタントの作業ルールを書く&lt;/li&gt;
&lt;li&gt;カスタマーサポート、レビュー、翻訳、分析ロールのプロンプトを書く&lt;/li&gt;
&lt;li&gt;text-to-image 用プロンプトを最適化する&lt;/li&gt;
&lt;li&gt;一時的な要件を再利用可能なテンプレートにする&lt;/li&gt;
&lt;li&gt;モデルごとに異なるスタイルの prompt を用意する&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-出力のテストと比較&#34;&gt;2. 出力のテストと比較
&lt;/h3&gt;&lt;p&gt;プロンプトを最適化するだけでは不十分です。重要なのは、最適化後に本当に良くなったかどうかです。&lt;/p&gt;
&lt;p&gt;このプロジェクトは、分析、単一結果の評価、複数結果の比較評価をサポートしています。元のプロンプトと最適化後のプロンプトを同じタスクで実行し、出力がより正確で安定し、目的に合っているかを比較できます。&lt;/p&gt;
&lt;p&gt;これは、単に「見た目が専門的」な prompt より実用的です。表面上は整っていても、実際には冗長、硬直的、あるいはモデルを誤った方向へ導くプロンプトもあります。比較テストは、そうした問題を早めに見つける助けになります。&lt;/p&gt;
&lt;h3 id=&#34;3-複数モデル対応&#34;&gt;3. 複数モデル対応
&lt;/h3&gt;&lt;p&gt;README によると、このプロジェクトは OpenAI、Gemini、DeepSeek、Zhipu AI、SiliconFlow などのモデルサービスに対応し、OpenAI 互換のカスタム API も利用できます。&lt;/p&gt;
&lt;p&gt;これは重要です。プロンプトの効果はモデルに強く依存します。同じ prompt でも、モデルが変わると結果が大きく変わることがあります。複数モデルのテストにより、次の判断がしやすくなります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロンプト自体が弱いのか&lt;/li&gt;
&lt;li&gt;特定のモデルがそのタスクに向いていないのか&lt;/li&gt;
&lt;li&gt;モデルごとに別バージョンを用意すべきか&lt;/li&gt;
&lt;li&gt;小さいモデルでも、より明確なプロンプトで実用に近づけるか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ローカルで Ollama を使っている場合や、社内に OpenAI 互換 API のモデルサービスがある場合も、カスタム API として接続できます。&lt;/p&gt;
&lt;h3 id=&#34;4-高度なテストモード&#34;&gt;4. 高度なテストモード
&lt;/h3&gt;&lt;p&gt;プロジェクトは、コンテキスト変数管理、複数ターン会話テスト、Function Calling に対応しています。&lt;/p&gt;
&lt;p&gt;変数管理はテンプレート化されたタスクに向いています。たとえば、中古取引の返信、商品説明、メール返信、コードレビュー、ドキュメント生成用のプロンプトがある場合、商品、価格、口調、対象ユーザーなどの変数を差し替えるだけで、入力ごとの挙動を素早く確認できます。&lt;/p&gt;
&lt;p&gt;複数ターン会話テストは、長い対話での挙動を確認するのに向いています。単発の質問では良く見える prompt でも、追質問が続くと制約を忘れたり、役割から外れたり、説明を繰り返したりします。複数ターンテストは、実利用に近い検証になります。&lt;/p&gt;
&lt;p&gt;Function Calling 対応は、よりエンジニアリング寄りの AI アプリに適しています。ツール呼び出し、パラメータ生成、構造化出力におけるモデルの挙動を確認できます。&lt;/p&gt;
&lt;h3 id=&#34;5-画像生成プロンプト&#34;&gt;5. 画像生成プロンプト
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; は、text-to-image と image-to-image に関連する機能にも対応しています。README では Gemini、Seedream などの画像モデルとの連携が紹介されています。&lt;/p&gt;
&lt;p&gt;画像生成プロンプトの最適化は、テキストタスクとは重点が異なります。主体、構図、空間関係、スタイル、質感、光、感情、制約条件などが重要になります。曖昧な一文を制御しやすい視覚記述に分解することは、単にプロンプトを長くするより価値があります。&lt;/p&gt;
&lt;p&gt;商品画像、カバー、イラスト、キービジュアル、スタイル参照画像をよく生成するなら、この種の最適化は実用的です。&lt;/p&gt;
&lt;h2 id=&#34;使い方&#34;&gt;使い方
&lt;/h2&gt;&lt;p&gt;プロジェクトには複数の入口があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;オンライン版&lt;/li&gt;
&lt;li&gt;Vercel でのセルフホスト&lt;/li&gt;
&lt;li&gt;デスクトップアプリ&lt;/li&gt;
&lt;li&gt;Chrome 拡張&lt;/li&gt;
&lt;li&gt;Docker デプロイ&lt;/li&gt;
&lt;li&gt;Docker Compose デプロイ&lt;/li&gt;
&lt;li&gt;MCP Server&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;オンライン版は素早い試用に向いています。プロジェクト説明では、純粋なフロントエンドアプリであり、データはブラウザローカルに保存され、AI プロバイダーと直接やり取りすると説明されています。&lt;/p&gt;
&lt;p&gt;デスクトップアプリは、さまざまなモデル API に直接接続したい場合に向いています。ブラウザ環境では CORS の制限に遭遇しやすいですが、デスクトップアプリならそれを回避しやすく、ローカル Ollama や厳しい CORS ポリシーを持つ商用 API にも向いています。&lt;/p&gt;
&lt;p&gt;Docker デプロイは、自分のサーバーや社内環境で使う場合に向いています。README の基本コマンドは次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 8081:80 --restart unless-stopped --name prompt-optimizer linshen/prompt-optimizer
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;API キーとアクセスパスワードを設定する場合は、環境変数を渡します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 8081:80 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;VITE_OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_key &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;ACCESS_USERNAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_username &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;ACCESS_PASSWORD&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_password &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --restart unless-stopped &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name prompt-optimizer &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  linshen/prompt-optimizer
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;中国国内で Docker Hub へのアクセスが遅い場合は、README の説明に従って Alibaba Cloud のイメージ名に置き換えることもできます。&lt;/p&gt;
&lt;h2 id=&#34;mcp-でできること&#34;&gt;MCP でできること
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; は Model Context Protocol、つまり MCP に対応しています。&lt;/p&gt;
&lt;p&gt;Docker で実行する場合、MCP サービスは Web アプリと一緒に起動でき、&lt;code&gt;/mcp&lt;/code&gt; パスからアクセスできます。これにより、単なる Web ツールではなく、Claude Desktop などの MCP 対応アプリから呼び出せるツールになります。&lt;/p&gt;
&lt;p&gt;README に記載されている MCP ツールは次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;optimize-user-prompt&lt;/code&gt;：ユーザープロンプトを最適化&lt;/li&gt;
&lt;li&gt;&lt;code&gt;optimize-system-prompt&lt;/code&gt;：システムプロンプトを最適化&lt;/li&gt;
&lt;li&gt;&lt;code&gt;iterate-prompt&lt;/code&gt;：既存プロンプトを目的に沿って反復改善&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうしたインターフェースは AI ワークフローに向いています。たとえば複雑なタスク用プロンプトを書くとき、MCP 対応クライアントから直接プロンプト最適化を呼び出せるため、毎回 Web ページを開いてコピーする必要がありません。&lt;/p&gt;
&lt;h2 id=&#34;通常のチャットツールとの違い&#34;&gt;通常のチャットツールとの違い
&lt;/h2&gt;&lt;p&gt;通常のチャットツールでも prompt の書き直しはできますが、次のような点が不足しがちです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;複数バージョンの保存と比較がしづらい&lt;/li&gt;
&lt;li&gt;複数モデルを同時にテストしづらい&lt;/li&gt;
&lt;li&gt;変数をテンプレート化しづらい&lt;/li&gt;
&lt;li&gt;複数ターン会話の検証がしづらい&lt;/li&gt;
&lt;li&gt;MCP 連携やセルフホストがしづらい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; の価値は、プロンプト最適化を再現可能なプロセスにすることです。「より完成度が高く見える」文章を出すだけでなく、実際の出力を見ながら継続的に調整できます。&lt;/p&gt;
&lt;h2 id=&#34;向いている人&#34;&gt;向いている人
&lt;/h2&gt;&lt;p&gt;次のような人は、このプロジェクトに注目するとよいでしょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;システムプロンプトをよく書く&lt;/li&gt;
&lt;li&gt;AI アプリ用のロールや出力形式を設計する&lt;/li&gt;
&lt;li&gt;異なるモデルの出力を比較したい&lt;/li&gt;
&lt;li&gt;prompt を再利用可能なテンプレートにしたい&lt;/li&gt;
&lt;li&gt;複数ターン対話やツール呼び出しをテストしたい&lt;/li&gt;
&lt;li&gt;プロンプト最適化を MCP ワークフローに接続したい&lt;/li&gt;
&lt;li&gt;ローカルまたは社内環境にプロンプトツールをデプロイしたい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たまに AI に簡単な質問をするだけなら、普通のチャット画面で十分です。このツールは、プロンプトを保守可能な資産として扱う人に向いています。&lt;/p&gt;
&lt;h2 id=&#34;利用時の注意&#34;&gt;利用時の注意
&lt;/h2&gt;&lt;p&gt;第一に、最適化結果を絶対に正しいものとして扱わないことです。&lt;/p&gt;
&lt;p&gt;プロンプト最適化ツールは表現品質を高められますが、モデルが誤解しないことを保証するものではありません。重要なタスクでは、テストケース、人手の確認、バージョン比較が必要です。&lt;/p&gt;
&lt;p&gt;第二に、長さだけを追わないことです。&lt;/p&gt;
&lt;p&gt;良い prompt は必ずしも長いとは限りません。目的、境界、入出力形式、判断基準をより明確に表すべきです。意味の薄いルールを積み重ねると、かえってモデルが要点を見失います。&lt;/p&gt;
&lt;p&gt;第三に、モデルに合わせて prompt を調整することです。&lt;/p&gt;
&lt;p&gt;モデルによって、役割設定、形式制約、推論手順、例への反応は異なります。大きなモデルでうまく動くプロンプトが、小さなモデルにも合うとは限りません。複数モデルテストは、このツールを使う理由の一つです。&lt;/p&gt;
&lt;p&gt;第四に、デプロイ時はキーとアクセス制御を考慮することです。&lt;/p&gt;
&lt;p&gt;公開環境にデプロイする場合は、アクセスパスワードを設定し、API key を慎重に扱うべきです。プロジェクトは環境変数によるアクセス制御に対応しています。機密設定を公開リポジトリへ直接書かないようにしてください。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/linshenkx/prompt-optimizer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;linshenkx/prompt-optimizer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; は、プロンプトを「その場で手書きした一段落」から「テスト、比較、反復できる作業資産」へ整理するためのツールです。&lt;/p&gt;
&lt;p&gt;複数のモデル、複数の場面、複数のバージョンにまたがって prompt を保守し始めると、通常のチャット画面よりもこうしたツールの方が扱いやすくなります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude-Mem：Claude Code にセッションをまたぐ長期記憶を追加する</title>
        <link>https://knightli.com/ja/2026/05/01/claude-mem-persistent-memory-for-claude-code/</link>
        <pubDate>Fri, 01 May 2026 03:01:02 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/claude-mem-persistent-memory-for-claude-code/</guid>
        <description>&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; は、&lt;code&gt;Claude Code&lt;/code&gt; 向けの永続的な記憶システムです。&lt;/p&gt;
&lt;p&gt;解決しようとしている問題は明確です。AI コーディングアシスタントは、新しいセッションを始めるたびに、以前話したアーキテクチャ判断、踏んだ落とし穴、プロジェクトの好み、実装背景を忘れがちです。&lt;br&gt;
長く続くプロジェクトでは、毎回同じ文脈を説明し直すのはかなり無駄です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; の考え方は、Claude Code の会話内容を記憶として圧縮し、ローカルデータベースとベクトルストアに保存し、あとから検索ツールで取り戻すというものです。&lt;/p&gt;
&lt;h2 id=&#34;何を解決するのか&#34;&gt;何を解決するのか
&lt;/h2&gt;&lt;p&gt;Claude Code はコードタスクに強いですが、セッションの文脈には限界があります。&lt;/p&gt;
&lt;p&gt;よくある課題は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;新しいセッションが過去の作業を知らない&lt;/li&gt;
&lt;li&gt;プロジェクトの設計判断を何度も説明する必要がある&lt;/li&gt;
&lt;li&gt;以前調査した問題を再び踏みやすい&lt;/li&gt;
&lt;li&gt;長期タスクに連続した記憶がない&lt;/li&gt;
&lt;li&gt;複数の会話にまたがるプロジェクト知識を蓄積しにくい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; はこれらの問題を中心に設計されています。&lt;/p&gt;
&lt;p&gt;単にチャットログを保存するのではありません。会話を検索しやすい記憶断片に圧縮します。後で必要になったとき、意味検索で関連する文脈を取り戻せます。&lt;/p&gt;
&lt;h2 id=&#34;仕組み&#34;&gt;仕組み
&lt;/h2&gt;&lt;p&gt;README の設計を見ると、&lt;code&gt;Claude-Mem&lt;/code&gt; は主にいくつかの部分で構成されています。&lt;/p&gt;
&lt;p&gt;第一の部分は hooks です。&lt;/p&gt;
&lt;p&gt;Claude Code の会話フローに接続し、適切なタイミングで会話データを捕捉します。&lt;/p&gt;
&lt;p&gt;第二の部分はバックグラウンド worker です。&lt;/p&gt;
&lt;p&gt;worker は原始的な会話内容を、より短く、検索しやすい記憶へ処理します。&lt;/p&gt;
&lt;p&gt;第三の部分はローカルストレージです。&lt;/p&gt;
&lt;p&gt;プロジェクトは構造化メタデータの保存に &lt;code&gt;SQLite&lt;/code&gt; を使い、ベクトルインデックスには &lt;code&gt;Chroma&lt;/code&gt; を使います。これにより、会話記録の基本情報を保ちながら、意味検索にも対応できます。&lt;/p&gt;
&lt;p&gt;第四の部分は &lt;code&gt;mem-search&lt;/code&gt; です。&lt;/p&gt;
&lt;p&gt;これは Claude Code が使う検索入口です。過去の文脈が必要なとき、関連する記憶を検索できます。&lt;/p&gt;
&lt;p&gt;全体の流れは次のように理解できます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Claude Code のセッションで内容が生まれる&lt;/li&gt;
&lt;li&gt;hooks が会話データを捕捉する&lt;/li&gt;
&lt;li&gt;worker が非同期に圧縮・整理する&lt;/li&gt;
&lt;li&gt;記憶を SQLite と Chroma に書き込む&lt;/li&gt;
&lt;li&gt;後のセッションで &lt;code&gt;mem-search&lt;/code&gt; によって検索する&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;どんな場面に向いているか&#34;&gt;どんな場面に向いているか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; は長期プロジェクト向けで、一回きりの小さなタスク向けではありません。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ひとつのリポジトリを何日も開発し続ける&lt;/li&gt;
&lt;li&gt;コード構造が複雑で、背景説明が多い&lt;/li&gt;
&lt;li&gt;プロジェクト規約、命名習慣、アーキテクチャ選択を覚えてほしい&lt;/li&gt;
&lt;li&gt;Claude Code に頻繁にバグ修正、機能追加、文書整理を任せる&lt;/li&gt;
&lt;li&gt;AI に「以前なぜこう変更したのか」を覚えてほしい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Claude Code に一行だけ直してもらう程度なら、長期記憶の意味は大きくありません。&lt;br&gt;
しかし Claude Code を長期的な協力者として使うなら、これは役に立ちます。&lt;/p&gt;
&lt;h2 id=&#34;インストールと起動&#34;&gt;インストールと起動
&lt;/h2&gt;&lt;p&gt;README では、インストール方法は直接的です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g claude-mem
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;起動には次を使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;状態確認：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;停止したい場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem stop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これらのコマンドの目的は、記憶システムを長く動くローカルサービスとして Claude Code のワークフローに接続することです。&lt;/p&gt;
&lt;h2 id=&#34;mem-search-の使い方&#34;&gt;&lt;code&gt;mem-search&lt;/code&gt; の使い方
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;mem-search&lt;/code&gt; は記憶を取り戻すための重要な入口です。&lt;/p&gt;
&lt;p&gt;普通の検索を置き換えるものではなく、Claude Code が過去の会話内容を意味で検索できるようにするものです。&lt;/p&gt;
&lt;p&gt;たとえば Claude Code に次のようなことを検索させられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;あるモジュールがなぜそのように設計されたのか&lt;/li&gt;
&lt;li&gt;ある Bug を当時どう調査したのか&lt;/li&gt;
&lt;li&gt;プロジェクトで合意した命名規則&lt;/li&gt;
&lt;li&gt;以前議論した技術的な取捨選択&lt;/li&gt;
&lt;li&gt;あるリファクタリングの背景&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは単純なキーワード検索とは違います。&lt;br&gt;
記憶圧縮とベクトルインデックスがうまく機能すれば、正確な言い回しを覚えていなくても、意味的に近い内容を取り戻せます。&lt;/p&gt;
&lt;h2 id=&#34;普通のプロジェクト文書との違い&#34;&gt;普通のプロジェクト文書との違い
&lt;/h2&gt;&lt;p&gt;プロジェクト文書は、安定した結論を記録するのに向いています。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;アーキテクチャ説明&lt;/li&gt;
&lt;li&gt;デプロイ手順&lt;/li&gt;
&lt;li&gt;API 規約&lt;/li&gt;
&lt;li&gt;データベース構造&lt;/li&gt;
&lt;li&gt;開発ルール&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; は、会話過程で生まれる文脈を記録するのに向いています。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;なぜある案が却下されたのか&lt;/li&gt;
&lt;li&gt;一時的な問題をどう回避したのか&lt;/li&gt;
&lt;li&gt;実装の背後にあった議論&lt;/li&gt;
&lt;li&gt;まだ文書化されていないプロジェクトの好み&lt;/li&gt;
&lt;li&gt;複数の会話で積み重なったタスク背景&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;両者は互いの代替ではありません。&lt;br&gt;
安定した知識はプロジェクト文書へ書き、過程的な文脈は記憶システムで検索できるようにするのがよいです。&lt;/p&gt;
&lt;h2 id=&#34;使うときの注意点&#34;&gt;使うときの注意点
&lt;/h2&gt;&lt;p&gt;第一に、長期記憶は多ければよいわけではありません。&lt;/p&gt;
&lt;p&gt;すべての会話を区別なく保存すると、後の検索がノイズだらけになる可能性があります。価値が高いのは、プロジェクト判断、実装背景、問題調査、長期的な好みです。&lt;/p&gt;
&lt;p&gt;第二に、記憶はコードや文書の代わりにはなりません。&lt;/p&gt;
&lt;p&gt;AI が見つけた古い文脈は参考にすぎません。最終判断は現在のコード、テスト結果、最新の要求に基づくべきです。&lt;/p&gt;
&lt;p&gt;第三に、プライバシーとローカルデータに注意が必要です。&lt;/p&gt;
&lt;p&gt;会話内容を保存する以上、どのプロジェクトに接続してよいか、どの機密情報を会話に入れるべきでないかを理解しておく必要があります。&lt;/p&gt;
&lt;p&gt;第四に、記憶システムにはメンテナンスが必要です。&lt;/p&gt;
&lt;p&gt;プロジェクトが進むにつれて、古い記憶は古くなる可能性があります。古い文脈が誤って使われると、後続タスクを誤導することがあります。&lt;/p&gt;
&lt;h2 id=&#34;この種のツールが注目に値する理由&#34;&gt;この種のツールが注目に値する理由
&lt;/h2&gt;&lt;p&gt;AI コーディングツールは、「一回限りの質問応答」から「長期的な協力」へ向かっています。&lt;/p&gt;
&lt;p&gt;一回限りの質問応答では、モデルは現在の質問に答えれば十分です。&lt;br&gt;
長期的な協力では、プロジェクト履歴、過去の判断、チームの好み、すでに踏んだ落とし穴を知っている必要があります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; のようなツールの意味はここにあります。「文脈を覚える」ことを、一時的なチャット能力ではなく、インストールし、実行し、検索できるローカルシステムにします。&lt;/p&gt;
&lt;p&gt;実際のエンジニアリングプロジェクトでは、単にモデルのコンテキストウィンドウを長くするより実用的です。&lt;br&gt;
多くの情報は一度に文脈へ詰め込めばよいのではなく、必要なタイミングで取り戻せることが重要だからです。&lt;/p&gt;
&lt;h2 id=&#34;誰が試すべきか&#34;&gt;誰が試すべきか
&lt;/h2&gt;&lt;p&gt;次のような場合は試す価値があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code を高頻度で使っている&lt;/li&gt;
&lt;li&gt;同じプロジェクトを日をまたいで扱うことが多い&lt;/li&gt;
&lt;li&gt;プロジェクト文脈が複雑&lt;/li&gt;
&lt;li&gt;AI に同じ背景を何度も説明している&lt;/li&gt;
&lt;li&gt;会話内の経験を蓄積したい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Claude Code をたまに使うだけ、またはプロジェクトが小さい場合は、まだ必要ないかもしれません。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/thedotmack/claude-mem&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;thedotmack/claude-mem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; の重点は「チャットログを保存すること」ではなく、Claude Code が後続タスクで有用な文脈を取り戻せるようにすることです。&lt;/p&gt;
&lt;p&gt;AI コーディングが一回限りのタスクから長期プロジェクト協力へ移るにつれ、記憶システムはますます重要になります。&lt;br&gt;
文書やテストを置き換えるものではありませんが、繰り返し説明を減らし、AI をプロジェクト履歴を理解した助手に近づけます。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Google LangExtract：LLM で長文から構造化データを抽出する</title>
        <link>https://knightli.com/ja/2026/05/01/google-langextract-llm-structured-data-extraction/</link>
        <pubDate>Fri, 01 May 2026 02:58:21 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/google-langextract-llm-structured-data-extraction/</guid>
        <description>&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; は、Google が公開している Python ライブラリで、非構造化テキストから構造化情報を抽出するためのものです。&lt;/p&gt;
&lt;p&gt;使い方は分かりやすく、テキスト、プロンプト、少数の例を与えると、大規模言語モデルが定義したフィールドに従って内容を抽出し、後続処理しやすいデータとして整理します。&lt;/p&gt;
&lt;p&gt;普通に「モデルに要約してもらう」のとは違い、&lt;code&gt;LangExtract&lt;/code&gt; は主に 3 つの点を重視します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;固定した構造で情報を抽出する&lt;/li&gt;
&lt;li&gt;抽出結果と原文位置の対応を保つ&lt;/li&gt;
&lt;li&gt;長文ドキュメントと可視化チェックを支援する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;レポート、論文、診療記録、契約書、ログ、Web ページなどから、エンティティ、イベント、関係、属性をよく抽出するなら、この種のツールは手書きの正規表現より柔軟で、単なるチャット型の質問より後続のデータ処理につなげやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;何を解決するのか&#34;&gt;何を解決するのか
&lt;/h2&gt;&lt;p&gt;多くのテキスト抽出タスクは簡単そうに見えますが、実際には面倒です。&lt;/p&gt;
&lt;p&gt;たとえば、長文から次のようなものを抽出したい場合があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;人名、組織名、場所&lt;/li&gt;
&lt;li&gt;イベント、時間、参加者&lt;/li&gt;
&lt;li&gt;薬剤、投与量、副作用&lt;/li&gt;
&lt;li&gt;製品型番、パラメーター、価格&lt;/li&gt;
&lt;li&gt;契約条項、義務、期限&lt;/li&gt;
&lt;li&gt;ログ内のエラー種別とコンテキスト&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;形式が固定されていれば、正規表現や従来のパーサーで対応できます。&lt;br&gt;
しかし文章表現が少し自然になるだけで、ルールは急に複雑になります。&lt;/p&gt;
&lt;p&gt;大規模言語モデルは自然言語の理解に向いていますが、単に「抽出して」と頼むだけでは、いくつかの問題が起きやすくなります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;出力形式が安定しない&lt;/li&gt;
&lt;li&gt;情報が原文のどこから来たのか分からない&lt;/li&gt;
&lt;li&gt;長文では漏れやすい&lt;/li&gt;
&lt;li&gt;バッチ処理しにくい&lt;/li&gt;
&lt;li&gt;人間が結果をレビューしにくい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; が解決しようとしているのはこの部分です。LLM の理解力を、より制御しやすい抽出ワークフローとして扱えるようにします。&lt;/p&gt;
&lt;h2 id=&#34;langextract-の特徴&#34;&gt;LangExtract の特徴
&lt;/h2&gt;&lt;h3 id=&#34;1-例で抽出形式を制約する&#34;&gt;1. 例で抽出形式を制約する
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; は、曖昧な一文のプロンプトだけに頼るのではなく、prompt と examples を使ってモデルに次を伝えます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;何を抽出するか&lt;/li&gt;
&lt;li&gt;フィールド名は何か&lt;/li&gt;
&lt;li&gt;各フィールドをどう埋めるか&lt;/li&gt;
&lt;li&gt;不確実な場合にどう扱うか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この few-shot 方式は情報抽出タスクに向いています。&lt;br&gt;
例が実データに近いほど、モデルは同じ構造で安定して出力しやすくなります。&lt;/p&gt;
&lt;h3 id=&#34;2-抽出結果を原文へ対応付けられる&#34;&gt;2. 抽出結果を原文へ対応付けられる
&lt;/h3&gt;&lt;p&gt;情報抽出で困るのは、「正しそうに見えるが、どこから来たのか分からない」結果です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; の重要な点のひとつは、抽出結果と原文位置を対応付けることです。後から確認するとき、JSON の結果だけでなく、その情報が原文のどの部分に由来するのかも確認できます。&lt;/p&gt;
&lt;p&gt;これは、医療テキスト、法律文書、研究資料、社内文書など、レビューが必要な場面で重要です。&lt;/p&gt;
&lt;h3 id=&#34;3-長文ドキュメントを扱える&#34;&gt;3. 長文ドキュメントを扱える
&lt;/h3&gt;&lt;p&gt;長文の抽出では、コンテキストウィンドウ、抽出漏れ、重複抽出の問題が起きやすくなります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; は長文向けの処理方法を提供し、ドキュメントを分割して並列処理し、抽出結果を整理できます。&lt;/p&gt;
&lt;p&gt;そのため、短いテキスト片だけでなく、完全なレポート、論文、長い Web ページ、まとまった資料の処理にも向いています。&lt;/p&gt;
&lt;h3 id=&#34;4-可視化チェックを支援する&#34;&gt;4. 可視化チェックを支援する
&lt;/h3&gt;&lt;p&gt;抽出結果が JSON だけだと、問題を見落としやすくなります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; は抽出結果の可視化を支援し、モデルがどこから何を抽出したのかを直感的に確認できます。&lt;br&gt;
これは prompt の調整、抽出漏れの確認、誤抽出の確認に役立ちます。&lt;/p&gt;
&lt;h2 id=&#34;どんなときに使うべきか&#34;&gt;どんなときに使うべきか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; は次のような場面に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自然言語テキストから構造化フィールドを抽出したい&lt;/li&gt;
&lt;li&gt;テキスト形式が完全には固定されていない&lt;/li&gt;
&lt;li&gt;抽出結果と原文の対応関係を残したい&lt;/li&gt;
&lt;li&gt;長いドキュメントを処理したい&lt;/li&gt;
&lt;li&gt;結果に人間のレビューが必要&lt;/li&gt;
&lt;li&gt;後続で表、データベース、データ分析に流したい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;典型例は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;医療テキストから症状、薬剤、投与量、反応を抽出する&lt;/li&gt;
&lt;li&gt;契約書から当事者、義務、金額、期限を抽出する&lt;/li&gt;
&lt;li&gt;論文から研究対象、方法、結論を抽出する&lt;/li&gt;
&lt;li&gt;製品資料から仕様パラメーターを抽出する&lt;/li&gt;
&lt;li&gt;カスタマーサポート記録から問題種別と対応結果を抽出する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;短いテキストの概要を一時的に知りたいだけなら、普通のチャットモデルで十分です。&lt;br&gt;
テキストを後続処理できるデータに変えたい場合は、&lt;code&gt;LangExtract&lt;/code&gt; のほうが向いています。&lt;/p&gt;
&lt;h2 id=&#34;基本的なインストール&#34;&gt;基本的なインストール
&lt;/h2&gt;&lt;p&gt;プロジェクトは &lt;code&gt;pip&lt;/code&gt; でインストールできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install langextract
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ソースからインストールすることもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/google/langextract.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; langextract
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -e .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;モデル API を使う場合は、対応するモデルプロバイダーの API key を設定します。&lt;br&gt;
プロジェクト文書では Gemini 関連の使い方が中心に紹介されており、アダプター経由で他のモデルプロバイダーにも接続できます。&lt;/p&gt;
&lt;h2 id=&#34;基本的な使い方&#34;&gt;基本的な使い方
&lt;/h2&gt;&lt;p&gt;典型的な流れは次のようになります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;原文テキストを準備する&lt;/li&gt;
&lt;li&gt;抽出対象を明確に書く&lt;/li&gt;
&lt;li&gt;少数の例を与える&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LangExtract&lt;/code&gt; を呼び出して抽出する&lt;/li&gt;
&lt;li&gt;構造化結果を確認する&lt;/li&gt;
&lt;li&gt;必要なら可視化ページを生成してレビューする&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;特に重要なのは 2 番目と 3 番目です。&lt;/p&gt;
&lt;p&gt;プロンプトではタスクを明確に書く必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;テキスト内に明示された情報だけを抽出する&lt;/li&gt;
&lt;li&gt;常識で補完しない&lt;/li&gt;
&lt;li&gt;フィールドが欠けている場合は空にする&lt;/li&gt;
&lt;li&gt;同じ種類のエンティティでは同じフィールド構造を保つ&lt;/li&gt;
&lt;li&gt;出力に原文断片または位置を残す&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例は実際の入力にできるだけ近づけるべきです。&lt;br&gt;
実テキストにノイズ、略語、改行、表の残骸があるなら、例にもそれを反映するとよいです。&lt;/p&gt;
&lt;h2 id=&#34;使うときの注意点&#34;&gt;使うときの注意点
&lt;/h2&gt;&lt;p&gt;第一に、抽出タスクを広くしすぎないことです。&lt;/p&gt;
&lt;p&gt;「有用な情報を抽出する」は広すぎます。&lt;br&gt;
「薬剤名、投与量、投与頻度、副作用を抽出する」のように書くほうがよいです。&lt;/p&gt;
&lt;p&gt;第二に、モデル出力を完全には信頼しないことです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; は結果と原文を対応付けられますが、モデルが漏れや誤抽出をしないという意味ではありません。重要な場面ではサンプリング確認や人間のレビューが必要です。&lt;/p&gt;
&lt;p&gt;第三に、長い説明より例が有効です。&lt;/p&gt;
&lt;p&gt;情報抽出タスクでは、モデルは出力形式を理解するために例へ強く依存します。&lt;br&gt;
抽象的なルールを長く書くより、高品質な example をいくつか用意するほうが有効です。&lt;/p&gt;
&lt;p&gt;第四に、長文ではコストと速度を見ることです。&lt;/p&gt;
&lt;p&gt;長文分割、並列抽出、モデル呼び出しにはコストがかかります。本格的なバッチ処理の前に、小さなサンプルでプロンプトとフィールド構造を調整するのがよいです。&lt;/p&gt;
&lt;h2 id=&#34;正規表現や従来-nlp-との違い&#34;&gt;正規表現や従来 NLP との違い
&lt;/h2&gt;&lt;p&gt;正規表現は、形式が安定しルールが明確なテキストに向いています。&lt;/p&gt;
&lt;p&gt;従来の NLP パイプラインは、タスク境界が明確で、モデルや辞書がすでに準備されている場面に向いています。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; は、形式がそこまで固定されていないが、意味は比較的明確なテキストに向いています。&lt;br&gt;
すべての表現に対してルールを書くのではなく、LLM が例から抽出対象を理解します。&lt;/p&gt;
&lt;p&gt;ただし、正規表現の完全な代替ではありません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;固定形式のテキストでは、正規表現のほうが安価で安定している&lt;/li&gt;
&lt;li&gt;高リスク場面では検証とレビューが必要&lt;/li&gt;
&lt;li&gt;大規模バッチ処理ではモデル呼び出しコストを考える必要がある&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;現実的には、ルールが明確な部分はプログラムで処理し、意味の揺れが大きい部分を &lt;code&gt;LangExtract&lt;/code&gt; に任せるのがよいです。&lt;/p&gt;
&lt;h2 id=&#34;どんな開発者に向いているか&#34;&gt;どんな開発者に向いているか
&lt;/h2&gt;&lt;p&gt;次のようなことをしているなら、&lt;code&gt;LangExtract&lt;/code&gt; を試す価値があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;長文を表に整理する&lt;/li&gt;
&lt;li&gt;文書からエンティティと関係を抽出する&lt;/li&gt;
&lt;li&gt;ナレッジベース投入前のデータクレンジングをする&lt;/li&gt;
&lt;li&gt;業務テキストからフィールドを抽出する&lt;/li&gt;
&lt;li&gt;LLM 駆動の情報抽出プロトタイプを作る&lt;/li&gt;
&lt;li&gt;抽出結果と原文証拠を残したい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは「クリックすればすべての文書を理解する」ツールではありません。LLM 抽出フローを工程化するためのライブラリに近いものです。&lt;/p&gt;
&lt;p&gt;それでも、フィールド設計、例の作成、結果確認は必要です。&lt;br&gt;
しかし毎回モデル呼び出しを書き、prompt を組み、出力を解析するより、より完整な抽出フレームワークを提供します。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/google/langextract&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/langextract&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; の価値は、「LLM にテキストから情報を探させる」作業をより制御しやすくすることにあります。&lt;/p&gt;
&lt;p&gt;気軽な要約ではなく、フィールド、根拠、レビュー要求がある情報抽出タスクに向いています。&lt;br&gt;
長文を構造化データに変える仕事が多いなら、試す価値のあるツールです。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude.md は長ければよいわけではない：AI コーディング用のグローバルメモリファイルの書き方</title>
        <link>https://knightli.com/ja/2026/04/29/how-to-write-claude-md-for-ai-coding/</link>
        <pubDate>Wed, 29 Apr 2026 21:07:37 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/29/how-to-write-claude-md-for-ai-coding/</guid>
        <description>&lt;p&gt;最近、AI コーディング用のグローバルメモリファイルについての議論を見かけました。プロジェクトに &lt;code&gt;Claude.md&lt;/code&gt; や &lt;code&gt;AGENTS.md&lt;/code&gt; のようなファイルを追加しても、必ずしも結果がよくなるとは限らず、場合によっては成功率が下がり、推論コストも上がるという話です。&lt;/p&gt;
&lt;p&gt;一見すると直感に反します。AI にプロジェクト背景、ルール、説明を多く渡せば、より正確にコードを書けるはずだと思いがちです。&lt;br&gt;
しかし本当の問題は、&lt;code&gt;Claude.md&lt;/code&gt; が普通のドキュメントではないことにあります。これは毎回の会話でコンテキストに挿入されるグローバルメモリです。内容が多ければ、モデルは毎回それだけ多く読む必要があります。内容が曖昧なら、毎回余計な判断が増えます。本来入れるべきではない手順を書いてしまうと、関係のないタスクでも不要な動作が発火する可能性があります。&lt;/p&gt;
&lt;p&gt;つまり、&lt;code&gt;Claude.md&lt;/code&gt; を書く難しさは、内容をすべて書き切ることではありません。どの情報が長期的にコンテキストを占有する価値があるかを判断することです。&lt;/p&gt;
&lt;h2 id=&#34;claudemd-とは何か&#34;&gt;Claude.md とは何か
&lt;/h2&gt;&lt;p&gt;AI コーディングツールにおいて、&lt;code&gt;Claude.md&lt;/code&gt; や &lt;code&gt;AGENTS.md&lt;/code&gt; のようなファイルは、本質的にはグローバルメモリファイルです。&lt;/p&gt;
&lt;p&gt;通常の会話もコンテキストに入りますが、コンテキスト長には上限があります。会話が長くなると、履歴は圧縮され、一部の細部は失われます。グローバルメモリファイルの役割は、重要なルールを固定し、モデルが毎回のタスク開始時に参照できるようにすることです。&lt;/p&gt;
&lt;p&gt;これは二つの意味を持ちます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;書いた内容は忘れられにくい&lt;/li&gt;
&lt;li&gt;書いた内容は毎回のタスクでコストになる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは必要なときだけ読まれる README とは違います。長期的に有効な作業制約に近いものです。一度入れると、デフォルトで毎回モデルの判断に影響します。&lt;/p&gt;
&lt;p&gt;そのため、&lt;code&gt;Claude.md&lt;/code&gt; はプロジェクト紹介でも、経験メモでも、すべての開発手順を詰め込む場所でもありません。モデルが知らないと同じミスを繰り返しやすいルールだけを置くべきです。&lt;/p&gt;
&lt;h2 id=&#34;なぜ逆効果になることがあるのか&#34;&gt;なぜ逆効果になることがあるのか
&lt;/h2&gt;&lt;p&gt;グローバルメモリファイルの書き方が悪いと、主に三つの問題が起きます。&lt;/p&gt;
&lt;p&gt;一つ目は、コンテキストを消費することです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Claude.md&lt;/code&gt; が一千行ある場合、その一千行は長期的にモデルのコンテキストに入ります。現在のタスクに本当に関係するコード、エラーメッセージ、要求仕様が圧迫されるかもしれません。コンテキストは無料の空間ではありません。グローバルルールが大きいほど、現在のタスクの焦点は薄まりやすくなります。&lt;/p&gt;
&lt;p&gt;二つ目は、余計な行動を誘発することです。&lt;/p&gt;
&lt;p&gt;たとえば、グローバルファイルに次のように書いたとします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;毎回タスクを始める前に、プロジェクトディレクトリを完全に読む。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;毎回変更後に、完全なエンドツーエンドテストを実行する。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これらは責任ある指示に見えますが、グローバルメモリに置くと「すべてのタスクで実行する」という意味になります。たとえ一行の文言修正であっても、モデルはこのルールに従って不要な探索やテストを行うかもしれません。結果として、作業は遅くなり、コストは上がり、ときには新しい干渉も生まれます。&lt;/p&gt;
&lt;p&gt;三つ目は、判断負荷を増やすことです。&lt;/p&gt;
&lt;p&gt;「コードをエレガント、簡潔、保守しやすく、拡張しやすく保つ」のような文は正しく聞こえますが、実際の制約としては弱いです。モデルはコードを生成するたびに、何がエレガントで何が拡張しやすいのかを判断しなければなりません。しかし明確な境界は与えられていません。&lt;/p&gt;
&lt;p&gt;よりよい書き方は、抽象的な美徳を並べることではなく、具体的な禁止事項や反例を書くことです。たとえば：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;単一の呼び出し箇所のために汎用抽象を追加しない。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;テストカバレッジなしで共有パース処理を変更しない。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一時スクリプトをアプリケーションのソースディレクトリに置かない。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これらのルールは具体的で、実行しやすいものです。&lt;/p&gt;
&lt;h2 id=&#34;何を書くべきか&#34;&gt;何を書くべきか
&lt;/h2&gt;&lt;p&gt;ある内容を &lt;code&gt;Claude.md&lt;/code&gt; に書くべきかどうかは、単純な基準で判断できます。&lt;/p&gt;
&lt;p&gt;それを書かないと AI が同じ種類のミスを繰り返すなら、書く価値があります。&lt;/p&gt;
&lt;p&gt;グローバルメモリファイルに向いている内容には、だいたい次の特徴があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;長期的に有効である&lt;/li&gt;
&lt;li&gt;現在のリポジトリと強く関係している&lt;/li&gt;
&lt;li&gt;コード構造から自然には推測できない&lt;/li&gt;
&lt;li&gt;モデルの行動を明確に変える&lt;/li&gt;
&lt;li&gt;制約、禁止事項、パス規則、固定コマンドであることが望ましい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;すべての Hugo 記事では index.zh-cn.md だけを編集し、他言語版を自動生成しない。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;記事の front matter には title/date/draft/tags/categories/slug/description が必須。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;public/ 配下の生成物を変更しない。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PowerShell でデプロイするときは scripts/deploy.ps1 を使う。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これらは曖昧な助言ではありません。リポジトリの実際の作業方法に結びついています。モデルが知らなければ間違える可能性があり、知っていれば実際に誤操作を減らせます。&lt;/p&gt;
&lt;h2 id=&#34;書くべきではないもの&#34;&gt;書くべきではないもの
&lt;/h2&gt;&lt;p&gt;多くの人は &lt;code&gt;Claude.md&lt;/code&gt; をプロジェクト説明書にしてしまいがちですが、通常それは不要です。&lt;/p&gt;
&lt;p&gt;あまり向いていない内容は次のようなものです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロジェクトのビジョンや背景紹介&lt;/li&gt;
&lt;li&gt;長いディレクトリ構成説明&lt;/li&gt;
&lt;li&gt;一時的なタスク計画&lt;/li&gt;
&lt;li&gt;一回限りのデバッグ手順&lt;/li&gt;
&lt;li&gt;抽象的なコード品質スローガン&lt;/li&gt;
&lt;li&gt;一部の状況でしか必要ない長いワークフロー&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たとえば「これは商品、注文、ユーザーモジュールを含む EC プロジェクトです」という説明は、具体的なコーディングタスクにはあまり役立ちません。実際の開発では、モデルは現在の要求、仕様書、コード構造、テストに基づいて判断すべきであり、グローバルメモリ内の粗い紹介に頼るべきではありません。&lt;/p&gt;
&lt;p&gt;ディレクトリ構成も同じです。「共有コンポーネントはこのディレクトリからのみ参照する」のような特別な約束がある場合を除き、ツリー全体を書く必要はありません。モデルはプロジェクトディレクトリを自分で読めます。静的な構成説明は古くなりやすいだけです。&lt;/p&gt;
&lt;h2 id=&#34;手順は-skills-やコマンドに向いている&#34;&gt;手順は skills やコマンドに向いている
&lt;/h2&gt;&lt;p&gt;ある内容が「第一にこれをする、第二にこれをする、第三にこれをする」という手順なら、それは &lt;code&gt;Claude.md&lt;/code&gt; に置くべきではないかもしれません。&lt;/p&gt;
&lt;p&gt;長期的なワークフローは、skills、スクリプト、コマンドに分離できます。そうすれば、グローバルメモリには名前と発火条件だけを残し、詳細な手順は必要なときだけ読み込めます。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ユーザーが Hugo 記事の翻訳を依頼したら、post-translate skill を使う。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ユーザーがサイトのデプロイを依頼したら、hugo-rsync-deploy ワークフローを実行する。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;完全な翻訳手順やデプロイ手順を &lt;code&gt;Claude.md&lt;/code&gt; に書くより軽くなります。グローバルメモリは短く保ち、具体的な流れは起動可能なツールに任せます。&lt;/p&gt;
&lt;p&gt;Claude の最近の初期化フローもこの方向に進んでいます。単に &lt;code&gt;Claude.md&lt;/code&gt; を生成するだけでなく、再利用可能なワークフローを skills に、固定イベントを hooks に分けようとします。この変化の背景にある考え方は明確です。グローバルメモリは入口だけを担い、詳細は必要に応じて読み込むべきです。&lt;/p&gt;
&lt;h2 id=&#34;claudemd-は継続的に改善するもの&#34;&gt;Claude.md は継続的に改善するもの
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude.md&lt;/code&gt; は一度書いて終わりにすべきではありません。&lt;/p&gt;
&lt;p&gt;より現実的なのは、最初は短く保ち、実際のタスクの中で問題を露出させることです。あるミスが一度だけ起きたなら、まず人間が処理すれば十分です。同種のミスが二回以上起きたなら、それはグローバルルールとして残す価値があるかもしれません。&lt;/p&gt;
&lt;p&gt;最初から大量のルールを書くより、このような反復のほうが効果的です。初期段階では、どのルールが本当に役立つのか、どの内容がノイズになるのか分かりません。プロジェクトが大きくなり、協業が増え、モデルの挙動が安定してきたら、高頻度の問題を少しずつ追加していけばよいのです。&lt;/p&gt;
&lt;p&gt;もう一つ重要な傾向があります。モデルが強くなるほど、グローバルメモリファイルは短くあるべきです。&lt;/p&gt;
&lt;p&gt;以前はプロンプトに書く必要があった多くの要求を、今のモデルは自然に処理できます。そうした基本要求を &lt;code&gt;Claude.md&lt;/code&gt; に入れ続けると、コンテキスト負荷が増えるだけです。グローバルメモリはモデル能力の向上に合わせて縮小し、このリポジトリ固有で、モデルが自動推測できない内容だけを残すべきです。&lt;/p&gt;
&lt;h2 id=&#34;より実用的な書き方&#34;&gt;より実用的な書き方
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude.md&lt;/code&gt; を書くときは、次の順序で考えるとよいです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;このリポジトリにはどんな特別な約束があるか？&lt;/li&gt;
&lt;li&gt;モデルがすでに二回以上犯したミスは何か？&lt;/li&gt;
&lt;li&gt;誤用してはいけないディレクトリ、ファイル、コマンドは何か？&lt;/li&gt;
&lt;li&gt;どの手順は常駐コンテキストではなく、skills、スクリプト、コマンドにすべきか？&lt;/li&gt;
&lt;li&gt;どの内容は単なる紹介で、削除できるか？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;最終的なファイルは数十行だけかもしれません。プロジェクト全体を説明する必要はありません。行動を正確に制約することが目的です。&lt;/p&gt;
&lt;p&gt;よい &lt;code&gt;Claude.md&lt;/code&gt; は、たとえば次のようになります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 作業ルール
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 現在のタスクに関係するファイルだけを編集する。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- public/ や resources/ のような生成物ディレクトリを変更しない。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Hugo 記事の書き換えでは index.zh-cn.md だけを処理し、他言語版を生成しない。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- デプロイが関係する場合は、先に Hugo ビルドを実行し、その後既存の rsync スクリプトを実行する。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 既存のユーザー変更がある場合は、巻き戻さず、現在の状態を前提に続ける。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;短いですが、どの行も実際の行動に影響します。こういう内容こそ、長期的にコンテキストを占有する価値があります。&lt;/p&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude.md&lt;/code&gt; の価値は、AI に「もっと多くを知ってもらう」ことではありません。AI に「決まったミスを減らしてもらう」ことです。&lt;/p&gt;
&lt;p&gt;これは知識ベースでもプロジェクト百科でもありません。AI コーディングにおける長期的な制約ファイルです。&lt;br&gt;
具体的で、短く、実際のミスに近いほど役に立ちます。逆に、汎用的で、長く、プロジェクト紹介のようになるほど、モデルを遅くし、結果を悪化させる可能性が高くなります。&lt;/p&gt;
&lt;p&gt;グローバルメモリは無限のメモ帳ではなく、希少な資源として扱う。これが、よい &lt;code&gt;Claude.md&lt;/code&gt; を書くためのもっとも重要な原則かもしれません。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Codex がコンピューターを操作し始めると、これから何が変わるのか？</title>
        <link>https://knightli.com/ja/2026/04/29/codex-computer-use-update/</link>
        <pubDate>Wed, 29 Apr 2026 11:28:25 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/29/codex-computer-use-update/</guid>
        <description>&lt;p&gt;今回の Codex で最も注目すべき変化は、普通のボタンが一つ増えたことではありません。Codex が「コンピューターを操作する」方向へ進み始めたことです。&lt;/p&gt;
&lt;p&gt;これまで AI を使うとき、多くの場合はチャット欄で質問し、コピーして貼り付け、その後は人間が手動でソフトウェアを操作していました。&lt;br&gt;
今、その境界が外側へ広がり始めています。AI は答えるだけでなく、あなたの目的に合わせてデスクトップアプリを操作できるようになりつつあります。&lt;/p&gt;
&lt;p&gt;短期的には新機能の一つです。長期的には、多くの人のコンピューターの使い方を変えるかもしれません。&lt;/p&gt;
&lt;h2 id=&#34;この機能とは何か&#34;&gt;この機能とは何か
&lt;/h2&gt;&lt;p&gt;簡単に言えば、Codex のコンピューター操作機能は、デスクトップ環境に触れ、それを操作できるようにするものです。&lt;/p&gt;
&lt;p&gt;できることは次のようなものです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;特定のアプリを選択して操作する&lt;/li&gt;
&lt;li&gt;自然言語でタスクを受け取る&lt;/li&gt;
&lt;li&gt;ブラウザ、AI ツール、ローカルファイル、その他のソフトウェアを開く&lt;/li&gt;
&lt;li&gt;テキストを入力し、ボタンをクリックし、結果を待つ&lt;/li&gt;
&lt;li&gt;複数の手順を一つのタスクとしてつなげる&lt;/li&gt;
&lt;li&gt;ユーザーが一歩ずつ追わなくても、バックグラウンドで実行を続ける&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;役割は、単に文章を一段落書くことではありません。操作の流れそのものを代行することです。&lt;/p&gt;
&lt;p&gt;ここが Agent と普通のチャットボットの大きな違いです。&lt;br&gt;
チャットボットは主に答えを返します。Agent は「目的を受け取り、それを実行する」ものに近づきます。&lt;/p&gt;
&lt;h2 id=&#34;なぜ重要なのか&#34;&gt;なぜ重要なのか
&lt;/h2&gt;&lt;p&gt;これまで多くの自動化には、スクリプトを書く力が必要でした。&lt;/p&gt;
&lt;p&gt;たとえば、複数のソフトウェアをまたぐ作業をしたいとします。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web ページを開く&lt;/li&gt;
&lt;li&gt;情報を探す&lt;/li&gt;
&lt;li&gt;内容をコピーする&lt;/li&gt;
&lt;li&gt;別の AI ツールに渡す&lt;/li&gt;
&lt;li&gt;ファイルを保存する&lt;/li&gt;
&lt;li&gt;ローカルディレクトリを開いて結果を確認する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;従来の方法でこれを自動化するなら、ブラウザスクリプト、API、ローカルプログラム、場合によってはウィンドウ操作まで扱う必要があります。&lt;/p&gt;
&lt;p&gt;しかし、多くの一般ユーザーはそうしたものを書けません。&lt;br&gt;
書ける人でも、一時的な作業のために専用スクリプトを書く価値があるとは限りません。&lt;/p&gt;
&lt;p&gt;コンピューター操作機能の意味はここにあります。&lt;br&gt;
「スクリプト的な能力」を自然言語の方向へ一歩押し出します。&lt;/p&gt;
&lt;p&gt;どこをクリックするかを細かく教える必要はありません。&lt;br&gt;
欲しい結果を伝え、あとは Agent に試してもらう形に近づきます。&lt;/p&gt;
&lt;h2 id=&#34;どんなワークフローが変わるのか&#34;&gt;どんなワークフローが変わるのか
&lt;/h2&gt;&lt;p&gt;最初に変わるのは、極めて厳密で高リスクな仕事ではなく、面倒で、細かく、繰り返しが多く、それでも専用プログラムを書くほどではない作業だと思います。&lt;/p&gt;
&lt;h3 id=&#34;1-ソフトウェア間の情報移動&#34;&gt;1. ソフトウェア間の情報移動
&lt;/h3&gt;&lt;p&gt;典型的なのは、複数のソフトウェア間で情報を移動する作業です。&lt;/p&gt;
&lt;p&gt;これまでは、ブラウザ、文書、チャット画面、ローカルフォルダを何度も行き来していたかもしれません。&lt;br&gt;
今後は、こうした作業を Agent に任せられるようになります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ある種類の情報を探す&lt;/li&gt;
&lt;li&gt;文書にまとめる&lt;/li&gt;
&lt;li&gt;指定フォルダに保存する&lt;/li&gt;
&lt;li&gt;結果を開いて確認できる状態にする&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この作業は難しくありませんが、注意力を消耗します。&lt;br&gt;
Agent の価値は、こうした細かい操作を吸収することです。&lt;/p&gt;
&lt;h3 id=&#34;2-複数の-ai-ツールの連携&#34;&gt;2. 複数の AI ツールの連携
&lt;/h3&gt;&lt;p&gt;今では、一つの AI ツールだけで完結しない作業も増えています。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;あるツールでコードを書く&lt;/li&gt;
&lt;li&gt;あるツールで資料を調べる&lt;/li&gt;
&lt;li&gt;あるツールで画像を生成する&lt;/li&gt;
&lt;li&gt;あるツールで文書を整理する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これまでは、それらの間を人間がコピー&amp;amp;ペーストでつないでいました。&lt;br&gt;
これからは、Agent が中間層になれます。ツールを開き、文脈を渡し、出力を待ち、結果を整理します。&lt;/p&gt;
&lt;p&gt;これにより、「複数の AI ツールの協調」は手作業から半自動の流れに変わります。&lt;/p&gt;
&lt;h3 id=&#34;3-オフィスソフトの自動化&#34;&gt;3. オフィスソフトの自動化
&lt;/h3&gt;&lt;p&gt;表計算、プレゼン、文書、メールには共通点があります。機能は強力ですが、操作は細かいものが多いということです。&lt;/p&gt;
&lt;p&gt;Agent がこれらを安定して操作できるようになれば、オフィス自動化のハードルはかなり下がります。&lt;/p&gt;
&lt;p&gt;メニューの場所を覚えたり、複雑なショートカットを覚えたりする必要は薄れます。&lt;br&gt;
必要なのは、目的をはっきり伝えることです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;この表を月報にまとめる&lt;/li&gt;
&lt;li&gt;この文書から 1 ページの要約を作る&lt;/li&gt;
&lt;li&gt;これらの資料を構造の分かりやすい説明にまとめる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;面倒なボタン操作は、少しずつ自然言語の後ろに隠れていくでしょう。&lt;/p&gt;
&lt;h2 id=&#34;一般ユーザーにとっての意味&#34;&gt;一般ユーザーにとっての意味
&lt;/h2&gt;&lt;p&gt;一般ユーザーにとって、この種の機能は「モデルが少し賢くなった」ことよりも直接的な影響を持つかもしれません。&lt;/p&gt;
&lt;p&gt;下がるのは知識のハードルだけではなく、操作のハードルだからです。&lt;/p&gt;
&lt;p&gt;多くの人は、やりたいことを説明できないわけではありません。&lt;br&gt;
どこをクリックすればよいか、ソフトウェアの機能をどう組み合わせればよいかが分からないのです。&lt;/p&gt;
&lt;p&gt;Agent がそこを引き受けられるなら、コンピューターの使い方は次のようになります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;私が目的を説明する
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Agent がソフトウェアを操作する
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;私が結果を確認する
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは単なるチャットより、実際の生産性に近い形です。&lt;/p&gt;
&lt;h2 id=&#34;ソフトウェアの形にも影響する&#34;&gt;ソフトウェアの形にも影響する
&lt;/h2&gt;&lt;p&gt;この種の Agent 能力が成熟していけば、ソフトウェアそのものも影響を受けます。&lt;/p&gt;
&lt;p&gt;これまでソフトウェア設計は、主に人間のクリックに向けられていました。&lt;br&gt;
これからは、Agent による操作も意識する必要が出てきます。&lt;/p&gt;
&lt;p&gt;つまり：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;UI 要素はより明確である必要がある&lt;/li&gt;
&lt;li&gt;操作結果のフィードバックは安定している必要がある&lt;/li&gt;
&lt;li&gt;ローカル権限はより細かく管理される必要がある&lt;/li&gt;
&lt;li&gt;ソフトウェアは Agent が呼び出しやすいインターフェースを用意するかもしれない&lt;/li&gt;
&lt;li&gt;ユーザーは「AI がうまく操作できるか」を気にするようになる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;長期的には、アプリ間の境界は薄くなるかもしれません。&lt;br&gt;
ユーザーが気にするのは「どのアプリを開くか」ではなく、「どのタスクを完了したいか」になります。&lt;/p&gt;
&lt;h2 id=&#34;まだ過度に楽観する段階ではない&#34;&gt;まだ過度に楽観する段階ではない
&lt;/h2&gt;&lt;p&gt;もちろん、今すぐ完全に任せる段階ではありません。&lt;/p&gt;
&lt;p&gt;この能力には、まだ明確な制限があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;安定性はまだ見ていく必要がある&lt;/li&gt;
&lt;li&gt;複雑なタスクは途中で失敗する可能性がある&lt;/li&gt;
&lt;li&gt;権限の境界は慎重に扱う必要がある&lt;/li&gt;
&lt;li&gt;アカウント、支払い、ファイル削除のような操作は簡単に任せるべきではない&lt;/li&gt;
&lt;li&gt;利用枠の消費も無視できない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため現時点で最も向いている使い方は、コンピューター全体を完全に任せることではありません。&lt;br&gt;
低リスクで、確認可能で、手順が多い作業を任せることです。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;資料を整理する&lt;/li&gt;
&lt;li&gt;下書きを生成する&lt;/li&gt;
&lt;li&gt;ツール間で内容を移動する&lt;/li&gt;
&lt;li&gt;ファイルを開いて確認する&lt;/li&gt;
&lt;li&gt;人間が最後に確認できる半自動フローを実行する&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;今回の Codex 更新で本当に重要なのは、AI が「質問に答える」段階から「環境を操作する」段階へ進んだことです。&lt;/p&gt;
&lt;p&gt;短期的には、これはコンピューター操作機能です。&lt;br&gt;
長期的には、個人用コンピューターとの関わり方の転換点になるかもしれません。&lt;/p&gt;
&lt;p&gt;これから私たちは、ボタンを覚えたり、メニューを探したり、ウィンドウを切り替えたりする時間を減らしていくかもしれません。&lt;br&gt;
その代わりに、目的を伝え、Agent に実行させ、最後に人間が判断する場面が増えていくでしょう。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Codex Skill はディレクトリにあるのに、なぜ表示されないのか？</title>
        <link>https://knightli.com/ja/2026/04/29/codex-skill-not-loaded-because-of-utf-8-bom/</link>
        <pubDate>Wed, 29 Apr 2026 11:18:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/29/codex-skill-not-loaded-because-of-utf-8-bom/</guid>
        <description>&lt;p&gt;今回の問題はかなり見落としやすいものでした。&lt;code&gt;~/.codex/skills&lt;/code&gt; には複数の skill が置かれているのに、新しい Codex スレッドを開いても、サイドバーには一部しか表示されませんでした。&lt;/p&gt;
&lt;p&gt;最初はキャッシュやインデックスの問題に見えました。実際の原因はもっと具体的で、いくつかの &lt;code&gt;SKILL.md&lt;/code&gt; ファイルの先頭に UTF-8 BOM が付いていました。Codex 0.111.0 の skill loader はこのバイト列を読み飛ばさず、結果として有効な YAML front matter がないと誤判定していました。&lt;/p&gt;
&lt;h2 id=&#34;現象&#34;&gt;現象
&lt;/h2&gt;&lt;p&gt;ローカルディレクトリには次の skill がありました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/git-commit-push/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/hugo-rsync-deploy/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/bilibili-speech-transcriber/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/product-cutout-normalize/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;しかし新しいスレッドで実際に公開された skill は次の二つだけでした。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bilibili-speech-transcriber
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;product-cutout-normalize
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;つまり、ファイルが存在することと、現在のセッションで読み込めることは別です。Codex は各 &lt;code&gt;SKILL.md&lt;/code&gt; の front matter を先に解析し、解析に失敗した skill はそのまま除外します。&lt;/p&gt;
&lt;h2 id=&#34;調査&#34;&gt;調査
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;codex exec&lt;/code&gt; で新しいセッションを起動すると、より直接的なエラーが見えます。VS Code などの IDE では、こうした log が見えない場合があります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;failed to load skill C:\Users\knightli\.codex\skills\git-commit-push\SKILL.md: missing YAML frontmatter delimited by ---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;failed to load skill C:\Users\knightli\.codex\skills\hugo-rsync-deploy\SKILL.md: missing YAML frontmatter delimited by ---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これらのファイルは、見た目には正常な先頭を持っていました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: post-rewrite
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: ...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;本当の問題はバイト列にありました。&lt;/p&gt;
&lt;p&gt;失敗するファイルの先頭は：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;EF-BB-BF-2D-2D-2D
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;正常に読み込まれるファイルの先頭は：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2D-2D-2D
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;2D-2D-2D&lt;/code&gt; は &lt;code&gt;---&lt;/code&gt; です。その前にある &lt;code&gt;EF-BB-BF&lt;/code&gt; が UTF-8 BOM です。&lt;/p&gt;
&lt;h2 id=&#34;原因&#34;&gt;原因
&lt;/h2&gt;&lt;p&gt;Codex 0.111.0 の skill loader は、&lt;code&gt;SKILL.md&lt;/code&gt; の最初のバイトが &lt;code&gt;---&lt;/code&gt; の最初の &lt;code&gt;-&lt;/code&gt; であることを期待しています。&lt;/p&gt;
&lt;p&gt;ファイルの先頭に UTF-8 BOM があると、実際の先頭は次のようになります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BOM + ---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;そのため loader は、ファイルが front matter の区切りで始まっていないと判断し、最終的に次のエラーを出します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;missing YAML frontmatter delimited by ---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;skill の内容が間違っていたわけでも、ディレクトリが間違っていたわけでもありません。エンコーディングの細部が原因で、パーサーがファイルを認識できなかっただけです。&lt;/p&gt;
&lt;h2 id=&#34;修正&#34;&gt;修正
&lt;/h2&gt;&lt;p&gt;問題のある &lt;code&gt;SKILL.md&lt;/code&gt; を BOM なしの UTF-8 に変換します。&lt;/p&gt;
&lt;p&gt;PowerShell では次のように処理できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$paths&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;vm&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s1&#34;&gt;&amp;#39;C:\Users\knightli\.codex\skills\git-commit-push\SKILL.md&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s1&#34;&gt;&amp;#39;C:\Users\knightli\.codex\skills\hugo-rsync-deploy\SKILL.md&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$utf8NoBom&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;New-Object&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;UTF8Encoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;vm&#34;&gt;$false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;foreach&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$p&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nv&#34;&gt;$text&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;IO.File&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ReadAllText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;Text.Encoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UTF8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;IO.File&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WriteAllText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$utf8NoBom&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;処理後にファイルヘッダーを確認すると、次の状態から：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;EF-BB-BF-2D-2D-2D
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;次の状態に変わっているはずです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2D-2D-2D
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;検証&#34;&gt;検証
&lt;/h2&gt;&lt;p&gt;Codex セッションを再起動すると、表示される skill は次のように戻りました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git-commit-push-zh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hugo-rsync-deploy
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bilibili-speech-transcriber
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;product-cutout-normalize
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;それでもサイドバーに古い一覧しか表示されない場合は、現在の Codex sidebar またはウィンドウを閉じて、プロジェクトを開き直します。skill 一覧は通常セッション開始時に読み込まれるため、途中でファイルを変更してもすぐには反映されないことがあります。&lt;/p&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;この種の問題は、「Codex が再インデックスしていない」または「skill のインストールに失敗した」と誤解しやすいです。&lt;/p&gt;
&lt;p&gt;実際に調べるときは、まず次の三点を確認するとよいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;SKILL.md&lt;/code&gt; が正しいディレクトリにあるか&lt;/li&gt;
&lt;li&gt;ファイル先頭に有効な &lt;code&gt;---&lt;/code&gt; front matter があるか&lt;/li&gt;
&lt;li&gt;ファイルが BOM なしの UTF-8 か&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;今回のポイントは三つ目です。ファイルは見た目には問題ありませんでしたが、最初のバイトが &lt;code&gt;-&lt;/code&gt; ではなかったため、Codex はそれを有効な skill として扱いませんでした。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Codex の ~/.codex/skills と プロジェクト/.codex/skills の違い</title>
        <link>https://knightli.com/ja/2026/04/29/difference-between-global-and-project-codex-skills/</link>
        <pubDate>Wed, 29 Apr 2026 11:08:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/29/difference-between-global-and-project-codex-skills/</guid>
        <description>&lt;p&gt;Codex skills を整理するとき、多くの人がつまずきやすい問題は主に二つあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.codex/skills&lt;/code&gt; と &lt;code&gt;プロジェクト/.codex/skills&lt;/code&gt; は何が違うのか&lt;/li&gt;
&lt;li&gt;skill はディレクトリにあるのに、なぜ現在のセッションに表示されないことがあるのか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この文章では結論から整理します。&lt;/p&gt;
&lt;h2 id=&#34;両者の違い&#34;&gt;両者の違い
&lt;/h2&gt;&lt;p&gt;まず短く覚えるなら、こうです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.codex/skills&lt;/code&gt; は自分用のグローバルなスキルライブラリ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;プロジェクト/.codex/skills&lt;/code&gt; はそのリポジトリ用のローカルなスキルライブラリ&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;codexskills&#34;&gt;&lt;code&gt;~/.codex/skills&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;ここに置くのに向いているもの：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自分が複数プロジェクトで繰り返し使う skill&lt;/li&gt;
&lt;li&gt;特定のリポジトリに依存しない汎用的な手順&lt;/li&gt;
&lt;li&gt;明らかに個人の作業習慣に属するワークフロー&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;post-rewrite&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;post-translate&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git-commit-push&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hugo-rsync-deploy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bilibili-speech-transcriber&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このタイプの skill の特徴は、&lt;strong&gt;現在のプロジェクトを離れても使える&lt;/strong&gt;ことです。&lt;/p&gt;
&lt;h3 id=&#34;プロジェクトcodexskills&#34;&gt;&lt;code&gt;プロジェクト/.codex/skills&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;ここに置くのに向いているもの：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;このリポジトリでだけ成立する手順&lt;/li&gt;
&lt;li&gt;現在のプロジェクトのディレクトリ構成、スクリプト、テンプレートに強く結びついたルール&lt;/li&gt;
&lt;li&gt;チームで共有したい skill&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;このリポジトリ固有の公開フロー&lt;/li&gt;
&lt;li&gt;このプロジェクト内でしか使えない生成テンプレート&lt;/li&gt;
&lt;li&gt;プロジェクト固有のスクリプトに強く依存する自動化手順&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このタイプの skill の特徴は、&lt;strong&gt;このリポジトリを離れると意味が薄くなる&lt;/strong&gt;ことです。&lt;/p&gt;
&lt;h2 id=&#34;グローバルに置くかプロジェクトに置くか&#34;&gt;グローバルに置くか、プロジェクトに置くか
&lt;/h2&gt;&lt;p&gt;判断基準はシンプルです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;個人の作業習慣に関係するなら &lt;code&gt;~/.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;リポジトリのルールに関係するなら &lt;code&gt;プロジェクト/.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;複数プロジェクトで再利用できるなら、まずはグローバル&lt;/li&gt;
&lt;li&gt;複数人で共有し、リポジトリと一緒に育てたいなら、プロジェクト側&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;今回のリポジトリの状態&#34;&gt;今回のリポジトリの状態
&lt;/h2&gt;&lt;p&gt;現在見えている状態では：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ローカル環境には &lt;code&gt;~/.codex/skills&lt;/code&gt; がある&lt;/li&gt;
&lt;li&gt;現在のリポジトリには &lt;code&gt;.codex/skills&lt;/code&gt; がない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、今は主にグローバル skills に依存しています。&lt;/p&gt;
&lt;p&gt;言い換えると、&lt;code&gt;post-rewrite&lt;/code&gt;、&lt;code&gt;post-translate&lt;/code&gt;、&lt;code&gt;git-commit-push&lt;/code&gt; のような手順は、このリポジトリに明示的に含まれているものではなく、あなた個人のワークフローに近いものです。&lt;/p&gt;
&lt;h2 id=&#34;ディスク上にあるのに現在のセッションに表示されない理由&#34;&gt;ディスク上にあるのに、現在のセッションに表示されない理由
&lt;/h2&gt;&lt;p&gt;ここでは二つの状態を分けて考える必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ディスク上に存在する&lt;/strong&gt;：skill ファイルがローカルのディレクトリにある&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;セッションに公開されている&lt;/strong&gt;：現在のセッションがそれを利用可能な skill として登録している&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この二つは同じではありません。&lt;/p&gt;
&lt;p&gt;そのため、次のようなことが起きます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.codex/skills&lt;/code&gt; にはすでに skill がある&lt;/li&gt;
&lt;li&gt;しかし &lt;code&gt;/&lt;/code&gt; の後に出る一覧には表示されない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは通常、skill が壊れているという意味ではありません。より多い原因は、&lt;strong&gt;現在のセッションがそれを再インデックスしていない&lt;/strong&gt;ことです。&lt;/p&gt;
&lt;h2 id=&#34;現在のセッションに-skill-を表示させるには&#34;&gt;現在のセッションに skill を表示させるには
&lt;/h2&gt;&lt;p&gt;実用上の手順は次の通りです。&lt;/p&gt;
&lt;h3 id=&#34;1-正しいディレクトリに置く&#34;&gt;1. 正しいディレクトリに置く
&lt;/h3&gt;&lt;p&gt;グローバル：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/&amp;lt;skill-name&amp;gt;/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;プロジェクト単位：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;プロジェクト/.codex/skills/&amp;lt;skill-name&amp;gt;/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;2-skillmd-の先頭を認識できる形にする&#34;&gt;2. &lt;code&gt;SKILL.md&lt;/code&gt; の先頭を認識できる形にする
&lt;/h3&gt;&lt;p&gt;最低限、次のような front matter が必要です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: your-skill-name
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: この skill が何をするものか
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;3-新規作成または編集後は新しいセッションを開く&#34;&gt;3. 新規作成または編集後は、新しいセッションを開く
&lt;/h3&gt;&lt;p&gt;skill が表示されない原因は、ファイルの問題ではなく、現在のセッション開始時に利用可能な skill 一覧がすでに確定していたことかもしれません。&lt;/p&gt;
&lt;p&gt;そのため、セッション中に skill を作成しても、ディスク上には存在する一方で、そのセッションでは認識されない場合があります。&lt;/p&gt;
&lt;p&gt;いちばん確実な流れは次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;skill を正しい場所に置く&lt;/li&gt;
&lt;li&gt;現在のセッションを終了する&lt;/li&gt;
&lt;li&gt;プロジェクトに入り直す&lt;/li&gt;
&lt;li&gt;新しいセッションを開く&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/&lt;/code&gt; に表示されるか確認する&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;4-プロジェクト-skill-は事前に置いておく&#34;&gt;4. プロジェクト skill は事前に置いておく
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;プロジェクト/.codex/skills&lt;/code&gt; をより安定して認識させたいなら、リポジトリに入り、セッションを開始する前に、それらの skill をプロジェクト内に置いておくのが無難です。&lt;/p&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;短くまとめると：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.codex/skills&lt;/code&gt; は個人用のスキルライブラリ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;プロジェクト/.codex/skills&lt;/code&gt; はリポジトリ用のローカルルールライブラリ&lt;/li&gt;
&lt;li&gt;skill がディレクトリにあることと、現在のセッションに表示されることは別&lt;/li&gt;
&lt;li&gt;表示させたいなら、正しいディレクトリに置き、正しい &lt;code&gt;SKILL.md&lt;/code&gt; を書き、新しいセッションを開くのが基本&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT 5.5、Claude Opus 4.7、DeepSeek V4、Qwen 3.6 Max はどう選ぶべきか</title>
        <link>https://knightli.com/ja/2026/04/28/coding-ai-benchmark-gpt55-claude-opus47-deepseek-v4-qwen36max/</link>
        <pubDate>Tue, 28 Apr 2026 22:18:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/28/coding-ai-benchmark-gpt55-claude-opus47-deepseek-v4-qwen36max/</guid>
        <description>&lt;p&gt;もし今すぐ一言だけ答えが欲しいなら、まずはこの形で覚えておけば十分です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;いちばん安定していて、時間も無駄にしにくいのは &lt;code&gt;GPT 5.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;ページの見た目、創意、プレゼン感を重視するなら &lt;code&gt;Claude Opus 4.7&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;中国系モデルの中で最前線にかなり近いのは &lt;code&gt;Qwen 3.6 Max&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek V4&lt;/code&gt; も弱くはないが、出力の波はやや大きい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;「今いちばん強いコーディングAIはどれか」と聞く人は多いですが、実際にはランキングを知りたいというより、もっと現実的なことを知りたいはずです。&lt;br&gt;
&lt;strong&gt;ページを書きたい、デモを作りたい、小さなツールを作りたい、インタラクションを足したい。そのとき最初の一回で使えるものを出してくれるのはどれか。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;その視点で見ると、この数モデルの違いはかなりはっきりしています。&lt;/p&gt;
&lt;h2 id=&#34;まず全体の判断&#34;&gt;まず全体の判断
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT 5.5&lt;/code&gt;、&lt;code&gt;Claude Opus 4.7&lt;/code&gt;、&lt;code&gt;DeepSeek V4&lt;/code&gt;、&lt;code&gt;Qwen 3.6 Max&lt;/code&gt; を並べて見たとき、総合的にいちばん安定しているのはやはり &lt;code&gt;GPT 5.5&lt;/code&gt; です。&lt;/p&gt;
&lt;p&gt;毎回いちばん派手というわけではありません。ただ、露骨にがっかりさせられることが少ないです。速度が速く、最初の生成物の完成度も高く、ロジック、インタラクション、動き、小さなゲームのような総合課題に強いです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Claude Opus 4.7&lt;/code&gt; は性格がかなり違います。最大の強みは安定感そのものではなく、ページの雰囲気、UIの整理、見せ方です。出てきたものを開いた瞬間に「見た目がちゃんとしている」と感じやすいタイプです。ページの見え方を重視するなら、今でもかなり魅力があります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Qwen 3.6 Max&lt;/code&gt; は、この中でいちばん見直す価値が大きいモデルです。もはや「中国系モデルとしては使える」という段階ではありません。場面によっては &lt;code&gt;GPT 5.5&lt;/code&gt; と出力品質で正面から比べられるところまで来ています。特にフロントエンドのページ、見た目の完成度、擬似的なリアルさの部分では、かなり存在感が出てきました。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DeepSeek V4&lt;/code&gt; は、できないわけではありません。問題は安定性です。うまくいくときは普通に良く、場面によってはかなり悪くありません。ただ、良いときと崩れるときの差が、他のモデルより見えやすいです。&lt;/p&gt;
&lt;h2 id=&#34;gpt-55-は何が強いのか&#34;&gt;&lt;code&gt;GPT 5.5&lt;/code&gt; は何が強いのか
&lt;/h2&gt;&lt;p&gt;普段やりたいことが次のような内容なら、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;完成したWebページをそのまま出したい&lt;/li&gt;
&lt;li&gt;動きのある小さなデモを作りたい&lt;/li&gt;
&lt;li&gt;少しロジックのあるインタラクティブなページを書きたい&lt;/li&gt;
&lt;li&gt;ミニゲームや複数状態のUIを作りたい&lt;/li&gt;
&lt;li&gt;なるべく手戻りを減らしたい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;GPT 5.5&lt;/code&gt; はやはり最も無難な答えです。&lt;/p&gt;
&lt;p&gt;主な強みは次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コード生成が速い&lt;/li&gt;
&lt;li&gt;最初の出力の usable さが高い&lt;/li&gt;
&lt;li&gt;ロジックやインタラクションで大きな傷を作りにくい&lt;/li&gt;
&lt;li&gt;複合課題に対して安定している&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もっと直截に言うと、&lt;code&gt;GPT 5.5&lt;/code&gt; は「要件を投げたら、まず土台を正しく組みやすい」タイプのモデルです。&lt;br&gt;
多くの人が本当に欲しいのは、どこか一項目だけで最も驚く結果ではなく、最初の版が破綻しないことです。その点では今でもかなり安心できます。&lt;/p&gt;
&lt;p&gt;もちろん弱みがないわけではありません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ビジュアル寄りのページでは、いちばん驚きがあるとは限らない&lt;/li&gt;
&lt;li&gt;安定しているぶん、デザイン面での強い記憶点が薄いこともある&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;なので、デフォルトで一つ選ぶなら &lt;code&gt;GPT 5.5&lt;/code&gt; です。&lt;br&gt;
ただし、それだけ見ていれば十分という話でもありません。&lt;/p&gt;
&lt;h2 id=&#34;claude-opus-47-はどんな人に向くか&#34;&gt;&lt;code&gt;Claude Opus 4.7&lt;/code&gt; はどんな人に向くか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude Opus 4.7&lt;/code&gt; の魅力は、見た目の質感にあります。&lt;/p&gt;
&lt;p&gt;長所として出やすいのは、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;UI構成がきれい&lt;/li&gt;
&lt;li&gt;ビジュアル表現がまとまりやすい&lt;/li&gt;
&lt;li&gt;ページにプレゼン感が出やすい&lt;/li&gt;
&lt;li&gt;可視化やデザイン面で個性が出やすい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もしモデルにやらせたいものが次のような内容なら、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;デモページ&lt;/li&gt;
&lt;li&gt;データ表示ページ&lt;/li&gt;
&lt;li&gt;見た目の印象が重要な小規模ページ&lt;/li&gt;
&lt;li&gt;開いた瞬間に完成品っぽく見えてほしいもの&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude&lt;/code&gt; は今でもかなり有力です。&lt;/p&gt;
&lt;p&gt;一方で弱みもはっきりしています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPT 5.5&lt;/code&gt; ほど安定しない&lt;/li&gt;
&lt;li&gt;見た目はよくても、細かいロジックがずれることがある&lt;/li&gt;
&lt;li&gt;動くけれど、肝心の体験が少し外れる場面がある&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり &lt;code&gt;Claude&lt;/code&gt; は、美意識の強いフロントエンド寄りの選手という感じです。&lt;br&gt;
ページがどう見えるかを最優先するならかなり魅力がありますが、最初の一回でロジック事故を避けたいなら少し慎重に見たほうがいいです。&lt;/p&gt;
&lt;h2 id=&#34;なぜ-qwen-36-max-を真面目に見るべきか&#34;&gt;なぜ &lt;code&gt;Qwen 3.6 Max&lt;/code&gt; を真面目に見るべきか
&lt;/h2&gt;&lt;p&gt;この中で、勢いの変化をいちばん感じさせるのが &lt;code&gt;Qwen 3.6 Max&lt;/code&gt; です。&lt;/p&gt;
&lt;p&gt;少し前まで、中国系のコーディングAIを見るときは「そもそも追いつけるか」が主な論点でした。今の &lt;code&gt;Qwen 3.6 Max&lt;/code&gt; では、問いそのものが変わっています。&lt;br&gt;
&lt;strong&gt;フロントエンド寄りの直出しタスクで、海外トップモデルと正面から比べられるか。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;今の強みはおおむね次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ページの見た目が良い&lt;/li&gt;
&lt;li&gt;動きや擬似的なリアルさをうまく出せる場面がある&lt;/li&gt;
&lt;li&gt;出力に完成感がある&lt;/li&gt;
&lt;li&gt;場面によっては &lt;code&gt;GPT 5.5&lt;/code&gt; にかなり近いところまで行く&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは大きいです。&lt;br&gt;
Webページ、フロントエンド、見せるための出力が中心なら、&lt;code&gt;Qwen 3.6 Max&lt;/code&gt; はもはや単なる予備候補ではありません。十分に主力候補として扱えます。&lt;/p&gt;
&lt;p&gt;もちろんまだ弱みはあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;インタラクション寄りのロジック課題では完成度が少し落ちることがある&lt;/li&gt;
&lt;li&gt;かなり見栄えのいいページもあれば、急に平凡に感じる課題もある&lt;/li&gt;
&lt;li&gt;ばらつきはまだ &lt;code&gt;GPT 5.5&lt;/code&gt; より大きい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;それでも、今いちばん注目すべき中国系モデルはどれかと聞かれたら、&lt;code&gt;Qwen 3.6 Max&lt;/code&gt; を外すのは難しいです。&lt;/p&gt;
&lt;h2 id=&#34;deepseek-v4-は今どの位置にいるか&#34;&gt;&lt;code&gt;DeepSeek V4&lt;/code&gt; は今どの位置にいるか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;DeepSeek V4&lt;/code&gt; の立ち位置は少し複雑です。&lt;/p&gt;
&lt;p&gt;問題は、できないことではなく、どの水準で出てくるか読みづらいことです。&lt;br&gt;
ちゃんと作れるときは、見た目も機能もそこそこ悪くありません。ですが、アニメーション、ロジック、データ表現を同時に求めるような課題になると、崩れやすさが出ます。&lt;/p&gt;
&lt;p&gt;今の印象をまとめると、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;能力はある&lt;/li&gt;
&lt;li&gt;弱いわけではない&lt;/li&gt;
&lt;li&gt;課題によっては普通に提出できる&lt;/li&gt;
&lt;li&gt;ただし安定性はまだ心許ない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;だから向いている人もはっきりします。&lt;/p&gt;
&lt;p&gt;何度か試すことを気にしない人、たまにやり直しが入ってもいい人、自分でコードを見て直す前提の人なら、&lt;code&gt;DeepSeek V4&lt;/code&gt; はまだ十分使えます。&lt;br&gt;
ですが、とにかく手間を減らしたい人、最初の一回の成功率を重視する人には、まだ最適解とは言いにくいです。&lt;/p&gt;
&lt;h2 id=&#34;普通のユーザーは結局どう選ぶべきか&#34;&gt;普通のユーザーは結局どう選ぶべきか
&lt;/h2&gt;&lt;p&gt;モデル比較そのものが目的ではなく、実際に作業を進めたいなら、用途で選ぶのがいちばん簡単です。&lt;/p&gt;
&lt;h3 id=&#34;1-手間を減らして一回目の成功率を上げたい&#34;&gt;1. 手間を減らして、一回目の成功率を上げたい
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT 5.5&lt;/code&gt; を選ぶ。&lt;/p&gt;
&lt;p&gt;「要件を渡すから、まず使える一版を返してほしい」という流れに最も向いています。&lt;br&gt;
何度もやり取りしたり、細かく修正したりする時間がないときほど、その総合的な安定感が効いてきます。&lt;/p&gt;
&lt;h3 id=&#34;2-ページの見た目や仕上がりを重視したい&#34;&gt;2. ページの見た目や仕上がりを重視したい
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Claude Opus 4.7&lt;/code&gt; を選ぶ。&lt;/p&gt;
&lt;p&gt;より完成品っぽく見えるページが欲しいなら、あるいはデモや見せるための制作が中心なら、&lt;code&gt;Claude&lt;/code&gt; の長所はかなり分かりやすく出ます。&lt;/p&gt;
&lt;h3 id=&#34;3-中国系で最も強いフロントエンド直出し能力を見たい&#34;&gt;3. 中国系で最も強いフロントエンド直出し能力を見たい
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Qwen 3.6 Max&lt;/code&gt; を優先する。&lt;/p&gt;
&lt;p&gt;もう「妥協して使う」段階ではありません。正面から比べる価値があります。&lt;br&gt;
タスクがWeb、動き、見た目重視に寄るなら、かなり現実的な選択肢です。&lt;/p&gt;
&lt;h3 id=&#34;4-ばらつきを許容しつつ中国系の総合力を追いたい&#34;&gt;4. ばらつきを許容しつつ、中国系の総合力を追いたい
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;DeepSeek V4&lt;/code&gt; を見続ける。&lt;/p&gt;
&lt;p&gt;能力不足ではなく、出力の揃い方がまだ弱いという段階です。&lt;br&gt;
この先、安定性が改善されれば、存在感はもっと強くなるはずです。&lt;/p&gt;
&lt;h2 id=&#34;最後に一言&#34;&gt;最後に一言
&lt;/h2&gt;&lt;p&gt;今の主流コーディングAIの差は、もう「書けるか、書けないか」ではありません。&lt;br&gt;
「どれがより安定しているか」「どれがより見た目に強いか」「どれが自分の仕事に合っているか」の差です。&lt;/p&gt;
&lt;p&gt;いちばん手堅い答えが欲しいなら、まだ &lt;code&gt;GPT 5.5&lt;/code&gt; が第一候補です。&lt;br&gt;
見た目の仕上がりやプレゼン感を重視するなら、&lt;code&gt;Claude Opus 4.7&lt;/code&gt; はまだかなり魅力があります。&lt;br&gt;
中国系の中で今いちばん真面目に見るべきものを挙げるなら、&lt;code&gt;Qwen 3.6 Max&lt;/code&gt; はかなり前の位置にいます。&lt;br&gt;
&lt;code&gt;DeepSeek V4&lt;/code&gt; は、まだ安定性を伸ばしている途中の有力選手という印象です。&lt;/p&gt;
&lt;p&gt;最短でまとめるなら、&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;安定性なら &lt;code&gt;GPT 5.5&lt;/code&gt;、見た目なら &lt;code&gt;Claude&lt;/code&gt;、中国系で最も注目すべきは &lt;code&gt;Qwen 3.6 Max&lt;/code&gt;。&lt;/strong&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Ralph とマルチエージェント協調：AI を長時間安定して働かせるには</title>
        <link>https://knightli.com/ja/2026/04/27/ralph-multi-agent-long-running-ai-workflows/</link>
        <pubDate>Mon, 27 Apr 2026 08:19:02 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/27/ralph-multi-agent-long-running-ai-workflows/</guid>
        <description>&lt;p&gt;最近 coding agent を使っていると、すぐにひとつの現実的な問題にぶつかります。&lt;strong&gt;AI は確かに仕事をしてくれる。でも、どうすれば何時間も動かし続けても途中で脱線せず、要件を忘れず、同じ作業をやり直さずに済むのか。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Ralph&lt;/code&gt; やマルチエージェント協調をめぐる議論で本当に重要なのも、まさにこの点です。単にどのモデルが強いかを比べる話ではありません。より実用的な問いは、&lt;strong&gt;長いタスクでも AI が安定して動けるように、どうワークフローを設計するか&lt;/strong&gt; です。&lt;/p&gt;
&lt;p&gt;この問題を分解すると、よく出てくるルートは大きく 2 つあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ralph&lt;/code&gt; 方式：新しいセッションを繰り返し起動し、ファイルシステムで文脈をつなぐ&lt;/li&gt;
&lt;li&gt;マルチエージェント方式：リード Agent が調整し、子 Agent が分担して実行する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もっと平たく言えば、問われているのは「どのモデルが強いか」ではなく、「どう AI を組織して、継続的に成果を出す小さなチームのように動かすか」です。&lt;/p&gt;
&lt;h2 id=&#34;01-なぜ長時間タスクは崩れやすいのか&#34;&gt;01 なぜ長時間タスクは崩れやすいのか
&lt;/h2&gt;&lt;p&gt;短いタスクでは、多くの問題は表に出ません。指示を 1 つ出し、モデルが数ファイルを読み、少しコードを書き換えれば終わります。&lt;/p&gt;
&lt;p&gt;ところがタスクが長くなると、問題が一気に表面化します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;会話が伸び続けてコンテキストが膨らむ&lt;/li&gt;
&lt;li&gt;初期の要件が新しい情報に押し流される&lt;/li&gt;
&lt;li&gt;ひとつの Agent が設計、実装、テストまで全部抱える&lt;/li&gt;
&lt;li&gt;明確な受け入れ確認がないと、「終わった」と「終わったと言っているだけ」が混ざる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、長時間 AI を動かすときに本当に問われるのは単発の出力性能ではなく、&lt;strong&gt;タスク分割、状態の受け渡し、役割分担、フィードバックループ&lt;/strong&gt; です。&lt;/p&gt;
&lt;h2 id=&#34;02-ralph-方式長いタスクを短いラウンドに分ける&#34;&gt;02 Ralph 方式：長いタスクを短いラウンドに分ける
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Ralph&lt;/code&gt; の考え方は、まず「コンテキストがどんどん汚れていく」問題を解くのに向いています。&lt;/p&gt;
&lt;p&gt;やっていることはシンプルです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ループで新しい agent セッションを何度も起動する&lt;/li&gt;
&lt;li&gt;各ラウンドでは十分小さなタスクを 1 つだけ扱う&lt;/li&gt;
&lt;li&gt;ラウンドをまたぐ状態は会話ではなくファイルに置く&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;利点は明快です。毎回 fresh context から始まるので、1 ラウンドごとの集中が保ちやすく、過去の履歴に引きずられにくくなります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Ralph&lt;/code&gt; 系のプロジェクトを見たことがあるなら、構造はかなり一貫しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;現在のタスクは構造化ファイルに書く&lt;/li&gt;
&lt;li&gt;途中の学びは進捗ファイルに残す&lt;/li&gt;
&lt;li&gt;コードの変化は git 履歴に残す&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり &lt;code&gt;Ralph&lt;/code&gt; は、1 つの Agent に「全部を永遠に覚えさせる」ことを目指していません。記憶を意図的に外へ逃がし、セッションそのものを軽く保とうとします。&lt;/p&gt;
&lt;p&gt;この種の方式は、特に次のような条件で相性がいいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;作業がすでに小さな story に分けられている&lt;/li&gt;
&lt;li&gt;各 story が 1 つの context window に収まる&lt;/li&gt;
&lt;li&gt;プロジェクトに tests、typecheck、その他のチェックがある&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは &lt;strong&gt;AI を一歩ずつ安定して前に進めるにはどうするか&lt;/strong&gt; という問題への答えです。&lt;/p&gt;
&lt;h2 id=&#34;03-マルチエージェント方式1-人では抱えきれない仕事を分担する&#34;&gt;03 マルチエージェント方式：1 人では抱えきれない仕事を分担する
&lt;/h2&gt;&lt;p&gt;もうひとつのルートがマルチエージェント協調です。&lt;/p&gt;
&lt;p&gt;この種のワークフロー設計でより有望なのは、リード Agent が自分で全部やるのではなく、調整役に回り、ほかの Agent が実装、テスト、確認、受け入れを分担する形です。&lt;/p&gt;
&lt;p&gt;ここが &lt;code&gt;Ralph&lt;/code&gt; との大きな違いです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ralph&lt;/code&gt; は直列の反復に近い&lt;/li&gt;
&lt;li&gt;マルチエージェントは並列の分業に近い&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;タスクの中に自然な役割分担があるなら、マルチエージェントのほうが扱いやすくなります。たとえば次のように分けられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ひとりがタスク分解と実行計画を担当する&lt;/li&gt;
&lt;li&gt;ひとりが実装する&lt;/li&gt;
&lt;li&gt;ひとりがテストして検証する&lt;/li&gt;
&lt;li&gt;ひとりが結果が最初の要件に合っているか見直す&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;大事なのは、ただウィンドウを増やすことではありません。価値があるのは役割を分離することです。もともと 1 つの Agent に押し込んでいた仕事を、より明確な段階に分けられます。&lt;/p&gt;
&lt;p&gt;役割の境界がはっきりすると、いくつかの問題が軽くなります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;書く人とレビューする人を分けられる&lt;/li&gt;
&lt;li&gt;テストする側が毎回ゼロから要件を再構築しなくていい&lt;/li&gt;
&lt;li&gt;リード Agent が実装詳細に埋もれにくい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは &lt;strong&gt;AI を小さなチームのように協調させるにはどうするか&lt;/strong&gt; という問題への答えです。&lt;/p&gt;
&lt;h2 id=&#34;04-本当に重要なのは並列化ではなくどう分けるか&#34;&gt;04 本当に重要なのは並列化ではなく、どう分けるか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Ralph&lt;/code&gt; を使うにしてもマルチエージェントを使うにしても、見落とされやすいのはこの点です。&lt;strong&gt;大事なのは Agent の数より、ワークフロー設計の質です。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;タスク分解が悪ければ、Agent を増やしても混乱を並列化するだけです。&lt;/p&gt;
&lt;p&gt;より安定しやすい分け方には、だいたい次の特徴があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 タスクに 1 つの明確な目標がある&lt;/li&gt;
&lt;li&gt;1 役割に 1 種類の出力責任がある&lt;/li&gt;
&lt;li&gt;各ラウンドに明確な完了条件がある&lt;/li&gt;
&lt;li&gt;前のラウンドの成果が次のラウンドでそのまま使える&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たとえば「機能を全部作って」と一気に投げるより、次のように段階を切るほうが安定しやすいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;まず要件と境界を分ける&lt;/li&gt;
&lt;li&gt;次に実装を分ける&lt;/li&gt;
&lt;li&gt;次にテストを分ける&lt;/li&gt;
&lt;li&gt;最後に受け入れ確認を独立させる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この分け方の利点は、問題が起きたときに、理解、実装、テスト、受け入れ基準のどこに原因があるのか見つけやすいことです。&lt;/p&gt;
&lt;h2 id=&#34;05-なぜ受け入れ確認が重要なのか&#34;&gt;05 なぜ受け入れ確認が重要なのか
&lt;/h2&gt;&lt;p&gt;多くの AI ワークフローが崩れるのは、前半で何もしていないからではありません。最後に、本当に独立した確認ステップがないからです。&lt;/p&gt;
&lt;p&gt;長いタスクでは、「結果が生成された」と「その結果が本当に使える」のあいだに、かなり大きな差があることがよくあります。&lt;/p&gt;
&lt;p&gt;だからこそ、開発と受け入れを分けて考える方向が重要です。複雑な仕組みにしなくても、少なくとも次の問いは独立して投げる価値があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;最初のタスクを本当に完了しているか&lt;/li&gt;
&lt;li&gt;表面だけ直して根本原因を残していないか&lt;/li&gt;
&lt;li&gt;テストが都合のいい経路だけを見ていないか&lt;/li&gt;
&lt;li&gt;上流の要件を途中で勝手に変えていないか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この層が欠けると、AI は長いフローの中で何度でも「成功した」と自己申告しがちです。&lt;/p&gt;
&lt;h2 id=&#34;06-どう選ぶべきか&#34;&gt;06 どう選ぶべきか
&lt;/h2&gt;&lt;p&gt;手早い目安としては、次のように考えられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;いちばん痛いのがコンテキスト肥大化や長セッションの失焦なら &lt;code&gt;Ralph&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;いちばん痛いのが 1 つの Agent に役割を詰め込みすぎていることならマルチエージェント&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もう少し具体的に言うと、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ralph&lt;/code&gt; は、流れが明快で、粒度が細かく、ラウンド単位で進めやすい仕事に向く&lt;/li&gt;
&lt;li&gt;マルチエージェントは、役割分担が明確で、並行処理や相互検証が必要な仕事に向く&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;実際には、この 2 つは対立するものではありません。むしろ成熟したやり方は組み合わせです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;外側は &lt;code&gt;Ralph&lt;/code&gt; のような反復ループで大きなタスクを進める&lt;/li&gt;
&lt;li&gt;内側は各ラウンドでマルチエージェントを使い、調査、実装、テスト、受け入れを分担する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうすれば、長いコンテキストの制御と、1 ラウンド内の協調効率を両方取りにいけます。&lt;/p&gt;
&lt;h2 id=&#34;07-ひとことでまとめると&#34;&gt;07 ひとことでまとめると
&lt;/h2&gt;&lt;p&gt;これらの方法が重要なのは、&lt;code&gt;Ralph&lt;/code&gt; やマルチエージェントそのものを単独で推しているからではありません。むしろ、ひとつの現実的な事実をはっきりさせているからです。&lt;strong&gt;AI を長時間安定して働かせる鍵は、モデル単体の強さよりも、コンテキスト、タスク、役割、受け入れ確認をどう設計したかにある。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;すでに &lt;code&gt;Claude Code&lt;/code&gt;、&lt;code&gt;Codex&lt;/code&gt;、そのほかの coding agent に長めの実タスクを任せ始めているなら、こうしたワークフロー発想は「もっと強いモデルに替える」より優先して学ぶ価値があります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Ralph とは何か：Claude Code と Amp を反復実行できる自律開発フローに変える方法</title>
        <link>https://knightli.com/ja/2026/04/27/ralph-autonomous-agent-loop-claude-code-amp/</link>
        <pubDate>Mon, 27 Apr 2026 08:08:55 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/27/ralph-autonomous-agent-loop-claude-code-amp/</guid>
        <description>&lt;p&gt;最近、coding agent の長時間ワークフローに注目しているなら、&lt;code&gt;snarktank/ralph&lt;/code&gt; は一度見ておきたい小さなプロジェクトです。これは新しいモデルのラッパーでも、チャット UI をもう一枚かぶせたものでもありません。&lt;code&gt;Claude Code&lt;/code&gt; や &lt;code&gt;Amp&lt;/code&gt; を autonomous loop として組み立て、&lt;code&gt;PRD&lt;/code&gt; にある story を 1 つずつ進め、すべて終わるまで回し続ける仕組みです。&lt;/p&gt;
&lt;p&gt;核になる発想はかなりシンプルです。&lt;strong&gt;同じ agent を、どんどん長くて汚れていくコンテキストの中で無理に走らせ続けないこと。代わりに、各イテレーションごとに新しい AI coding session を立ち上げること。&lt;/strong&gt; これによって、コンテキストの膨張を抑えつつ、タスク境界もはっきりします。&lt;/p&gt;
&lt;h2 id=&#34;01-ralph-とは何か&#34;&gt;01 Ralph とは何か
&lt;/h2&gt;&lt;p&gt;Ralph の公式な位置づけは明快です。&lt;code&gt;PRD&lt;/code&gt; の項目が完了するまで、AI coding tool を繰り返し実行する autonomous AI agent loop です。&lt;/p&gt;
&lt;p&gt;現在のリポジトリでは、次の 2 つのツールに対応しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Amp CLI&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Claude Code&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;各イテレーションでは fresh instance が起動されます。つまり、1 本の会話を延々と伸ばし続けるのではなく、次のような外部状態に記憶を持たせます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;git 履歴&lt;/li&gt;
&lt;li&gt;&lt;code&gt;progress.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prd.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ここが重要です。大きなタスクを agent に長く走らせるときの問題は、モデルがコードを書けないことではない場合が多いです。むしろ、会話が重くなり、コンテキストを落とし、要件を忘れ、同じ作業を繰り返しやすくなることのほうが大きい。Ralph は、ほぼこの問題に正面から向き合って設計されています。&lt;/p&gt;
&lt;h2 id=&#34;02-どう動くのか&#34;&gt;02 どう動くのか
&lt;/h2&gt;&lt;p&gt;Ralph のワークフローは 3 段階です。&lt;/p&gt;
&lt;h3 id=&#34;1-まず-prd-を作る&#34;&gt;1. まず PRD を作る
&lt;/h3&gt;&lt;p&gt;README では、まず付属の &lt;code&gt;prd&lt;/code&gt; skill を使って要件書を作り、機能を小さめの story に分割することを勧めています。&lt;/p&gt;
&lt;h3 id=&#34;2-prd-を-prdjson-に変換する&#34;&gt;2. PRD を &lt;code&gt;prd.json&lt;/code&gt; に変換する
&lt;/h3&gt;&lt;p&gt;次に &lt;code&gt;ralph&lt;/code&gt; skill を使って、Markdown の PRD を構造化された &lt;code&gt;prd.json&lt;/code&gt; に変換します。このファイルには user stories と、それぞれが通過済みかどうかが記録されます。&lt;/p&gt;
&lt;h3 id=&#34;3-ループスクリプトを実行する&#34;&gt;3. ループスクリプトを実行する
&lt;/h3&gt;&lt;p&gt;実際の実行を担うのは &lt;code&gt;ralph.sh&lt;/code&gt; です。コマンドはおおむね次の形です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./scripts/ralph/ralph.sh &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;max_iterations&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./scripts/ralph/ralph.sh --tool claude &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;max_iterations&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;デフォルトは 10 イテレーションです。各ラウンドではおおよそ次のことを行います。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;branchName&lt;/code&gt; からブランチを作る&lt;/li&gt;
&lt;li&gt;&lt;code&gt;passes: false&lt;/code&gt; で最優先の story を選ぶ&lt;/li&gt;
&lt;li&gt;その story だけを実装する&lt;/li&gt;
&lt;li&gt;typecheck や tests などの品質チェックを走らせる&lt;/li&gt;
&lt;li&gt;チェックを通過したらコミットする&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prd.json&lt;/code&gt; を更新する&lt;/li&gt;
&lt;li&gt;学びを &lt;code&gt;progress.txt&lt;/code&gt; に追記する&lt;/li&gt;
&lt;li&gt;次のラウンドへ進む&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;つまり Ralph は、すべてを一気に終わらせようとはしません。1 つのコンテキストウィンドウに収まる小さなループへと仕事を圧縮していくわけです。&lt;/p&gt;
&lt;h2 id=&#34;03-ralph-の面白いところ&#34;&gt;03 Ralph の面白いところ
&lt;/h2&gt;&lt;h3 id=&#34;1-毎回-fresh-context-を使う&#34;&gt;1. 毎回 fresh context を使う
&lt;/h3&gt;&lt;p&gt;これが Ralph のいちばん中心的な設計です。README でも、各イテレーションは新しい AI instance であり、イテレーション間の記憶は git、&lt;code&gt;progress.txt&lt;/code&gt;、&lt;code&gt;prd.json&lt;/code&gt; にしか残らないと強調されています。&lt;/p&gt;
&lt;p&gt;これは、&lt;code&gt;Claude Code&lt;/code&gt; などを 1 本の長い会話の中で使い続ける一般的なやり方とはかなり違います。後者はタスクが大きくなるほど履歴に引きずられて重くなり、少しずつ焦点を失いがちです。Ralph は、1 回の実行ですべてを覚えさせることを諦め、その代わりに記憶をファイルに逃がします。&lt;/p&gt;
&lt;h3 id=&#34;2-タスクを小さく保つことを前提にしている&#34;&gt;2. タスクを小さく保つことを前提にしている
&lt;/h3&gt;&lt;p&gt;ドキュメントでは、各 PRD item は 1 つの context window で終えられる大きさでなければならないと明言されています。たとえば、フィルターを 1 つ追加する、server action を更新する、DB のカラムを 1 本足す、といった粒度は適切です。一方で、API 全体の再設計やダッシュボード全体の構築は大きすぎます。&lt;/p&gt;
&lt;p&gt;この制約はとても現実的です。多くの autonomous agent loop が崩れる理由は、loop そのものではなく、タスク分割が粗すぎて 1 ラウンドに抱え込む量が多すぎることにあります。&lt;/p&gt;
&lt;h3 id=&#34;3-コードだけでなく学びも残す&#34;&gt;3. コードだけでなく学びも残す
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;progress.txt&lt;/code&gt; だけでなく、README は &lt;code&gt;AGENTS.md&lt;/code&gt; の更新も強く勧めています。理由は単純で、今後のイテレーションや将来の開発者がそのメモを読むからです。各ラウンドで見つかったパターン、注意点、慣習は、プロジェクト文書として残しておいたほうがいい。&lt;/p&gt;
&lt;p&gt;言い換えると、Ralph は agent に継続してコードを書かせるだけでなく、コードベースに対する作業記憶も蓄積させようとしています。&lt;/p&gt;
&lt;h2 id=&#34;04-どんな場面に向いているか&#34;&gt;04 どんな場面に向いているか
&lt;/h2&gt;&lt;p&gt;次のような条件なら、Ralph はかなり相性がいいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;すでに明確な user stories に分解できている&lt;/li&gt;
&lt;li&gt;テスト、typecheck、CI のような信頼できるフィードバックループがある&lt;/li&gt;
&lt;li&gt;1 本の長い会話に全部を押し込まず、agent を継続的に前進させたい&lt;/li&gt;
&lt;li&gt;一発完了より、反復で少しずつ進む形を受け入れられる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;逆に、要件がまだ曖昧だったり、議論を何度も往復しながら方向を頻繁に変える必要がある作業では、Ralph は最初の選択肢ではないかもしれません。要件が固まり、実装を安定して前に進めたい段階のほうが向いています。&lt;/p&gt;
&lt;h2 id=&#34;05-普通の-claude-code-利用と何が違うか&#34;&gt;05 普通の Claude Code 利用と何が違うか
&lt;/h2&gt;&lt;p&gt;ふつうに &lt;code&gt;Claude Code&lt;/code&gt; を使う場合は、1 つのセッションを開いて、そこからコードを読み、編集し、コマンドを実行し続ける形が一般的です。これは小規模から中規模の作業では非常に便利ですが、大きな作業になると次の 2 点が問題になりやすいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コンテキストが伸び続ける&lt;/li&gt;
&lt;li&gt;途中の判断が構造化された形で残りにくい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ralph は &lt;code&gt;Claude Code&lt;/code&gt; や &lt;code&gt;Amp&lt;/code&gt; を、より「バッチ実行器」に近いものへ変えます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;タスクの起点は都度の会話ではなく &lt;code&gt;prd.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;各ラウンドが扱うのは 1 つの story だけ&lt;/li&gt;
&lt;li&gt;完了状態はファイルへ書き戻される&lt;/li&gt;
&lt;li&gt;学びは &lt;code&gt;progress.txt&lt;/code&gt; に残る&lt;/li&gt;
&lt;li&gt;コード変更は git に残る&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;その意味で、これは新しい AI assistant というより、coding agent の上にイテレーション制御を追加する仕組みと見たほうが近いです。&lt;/p&gt;
&lt;h2 id=&#34;06-ひとつ重要な前提&#34;&gt;06 ひとつ重要な前提
&lt;/h2&gt;&lt;p&gt;Ralph がうまく機能するかどうかは、loop 自体よりもフィードバックループの質に左右されます。README もかなり率直で、typecheck、tests、CI がないと、エラーは後続イテレーションで積み重なっていくと書いています。&lt;/p&gt;
&lt;p&gt;フロントエンド作業については、acceptance criteria にブラウザ検証を含めることまで勧めています。実際の確認がないと、agent は「見た目上は終わった」と「本当に動く」を簡単に混同してしまうからです。&lt;/p&gt;
&lt;p&gt;ここは大事です。Ralph は magical automation ではありません。むしろ、すでに持っている開発の規律を増幅する仕組みに近いです。タスク分割が明快で、チェックがしっかりしているプロジェクトほど価値が出ますし、その土台がないなら、混乱を繰り返し増幅するだけになりかねません。&lt;/p&gt;
&lt;h2 id=&#34;07-ひとことでまとめると&#34;&gt;07 ひとことでまとめると
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Ralph&lt;/code&gt; の価値は、大規模な新基盤を作ったことではありません。シンプルだけれど実用的な発想を、すぐ使えるフローに落とし込んだところにあります。&lt;strong&gt;&lt;code&gt;Claude Code&lt;/code&gt; や &lt;code&gt;Amp&lt;/code&gt; に各ラウンドで十分小さな story を 1 つだけ扱わせ、fresh context で集中させつつ、&lt;code&gt;git&lt;/code&gt;、&lt;code&gt;prd.json&lt;/code&gt;、&lt;code&gt;progress.txt&lt;/code&gt; で継続性を保つ。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;もし、すでに coding agent を実プロジェクトで使い始めていて、「長いタスクをどう安定して前に進めるか」で悩んでいるなら、Ralph のやり方はかなり参考になります。&lt;/p&gt;
&lt;h2 id=&#34;参考リンク&#34;&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub リポジトリ: &lt;a class=&#34;link&#34; href=&#34;https://github.com/snarktank/ralph&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/snarktank/ralph&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;インタラクティブなフローチャート: &lt;a class=&#34;link&#34; href=&#34;https://snarktank.github.io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://snarktank.github.io&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>DeepSeek V4 Pro と GPT-5.5 を比較：フロントエンド・文章作成・コード実測で見えた想像以上の差</title>
        <link>https://knightli.com/ja/2026/04/25/deepseek-v4-pro-vs-gpt-5-5-frontend-writing-code/</link>
        <pubDate>Sat, 25 Apr 2026 11:12:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/25/deepseek-v4-pro-vs-gpt-5-5-frontend-writing-code/</guid>
        <description>&lt;p&gt;&lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; と &lt;code&gt;GPT-5.5&lt;/code&gt; の比較は、最近ますます話題になりやすくなっています。もはや問題は「使えるかどうか」ではなく、&lt;strong&gt;フロントエンド、文章作成、コードという3つの高頻度な場面で、どちらが主力として向いているのか&lt;/strong&gt;に移っています。&lt;/p&gt;
&lt;p&gt;この手の比較では、まず「どちらが強いのか」と聞きたくなりがちです。&lt;br&gt;
しかし本当に価値があるのは、たいてい別の問いです。&lt;strong&gt;実際のタスクの中で、どちらがより安定し、コミュニケーションコストが低く、そのまま次に進める成果を出しやすいのか。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;まず結論を簡単に言えば、だいたい次のように考えられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;よりバランスの取れた出力や、完成度の高いプロダクト体験を求めるなら、多くの人はまず &lt;code&gt;GPT-5.5&lt;/code&gt; を見る&lt;/li&gt;
&lt;li&gt;中国語環境での高頻度な反復、コスト意識の高さ、応答スピードを重視するなら、&lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; は有力な候補になる&lt;/li&gt;
&lt;li&gt;実際の体験を決めるのは、モデル名そのものよりも、タスクの種類、プロンプトの与え方、そしてその後も修正を続けるかどうかであることが多い&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以下、代表的な3つの比較シーンに分けて見ていきます。&lt;/p&gt;
&lt;h2 id=&#34;1-フロントエンドタスク見るべきはページを書けるかではなくその後も直し続けられるか&#34;&gt;1. フロントエンドタスク：見るべきは「ページを書けるか」ではなく、「その後も直し続けられるか」
&lt;/h2&gt;&lt;p&gt;フロントエンド作業は、結果が目に見えやすいため、モデル比較に向いているように見えます。&lt;br&gt;
ページが動くか、見た目が良いか、構造が整理されているかは、すぐに判断できます。&lt;/p&gt;
&lt;p&gt;しかし本当の差は、最初の版が書けるかどうかよりも、むしろ次のような点に現れます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;構造は十分に明確か&lt;/li&gt;
&lt;li&gt;コンポーネント分割は自然か&lt;/li&gt;
&lt;li&gt;一か所を直したときに別の場所まで壊れないか&lt;/li&gt;
&lt;li&gt;複数ラウンドの指示でも同じ実装方針を保てるか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;だからこそ、初回の見た目が派手なフロントエンドデモでも、実際のワークフローに入れると必ずしも優位とは限りません。&lt;/p&gt;
&lt;p&gt;たとえば次のようなタスクなら、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;動くページのプロトタイプを素早く作る&lt;/li&gt;
&lt;li&gt;ランディングページの案をまず形にする&lt;/li&gt;
&lt;li&gt;必要なスタイル、ボタン、カード、フォームなどを埋める&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;どちらのモデルでもかなり近いところまでは持っていけることが多く、差は出力スタイルに現れやすいです。&lt;/p&gt;
&lt;p&gt;しかしタスクが次のように変わると、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;UI を何度も継続的に修正する&lt;/li&gt;
&lt;li&gt;既存コードを読みながら続きを直す&lt;/li&gt;
&lt;li&gt;コンポーネント構成、スタイルの一貫性、保守性を同時に考える&lt;/li&gt;
&lt;li&gt;静的ページから実際のプロジェクトコードへ段階的に進める&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;見るべき点は「初回でどちらが見栄えが良いか」ではなく、「5ラウンド後でもどちらが崩れにくいか」になります。&lt;/p&gt;
&lt;p&gt;つまりフロントエンド比較で本当に見るべきなのは、ページを生成できるかどうかではありません。制約を追加し続けても、構造の安定性、命名の一貫性、修正コストの低さを保てるかどうかです。&lt;/p&gt;
&lt;h2 id=&#34;2-文章作成タスク比べるべきは文字数ではなく文体の安定性とリライトのしやすさ&#34;&gt;2. 文章作成タスク：比べるべきは文字数ではなく、文体の安定性とリライトのしやすさ
&lt;/h2&gt;&lt;p&gt;文章作成は、特に見誤りやすい領域のひとつです。&lt;/p&gt;
&lt;p&gt;というのも、最初の出力だけを見れば、どちらもそれなりによく見えることが多いからです。&lt;br&gt;
構成は整い、段落もそろい、文体も滑らかで、一見すると大差がないように感じます。&lt;/p&gt;
&lt;p&gt;しかし、そこで一歩先まで進めると差が出てきます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;想定読者を正確に理解できるか&lt;/li&gt;
&lt;li&gt;同じテーマで文体を切り替えられるか&lt;/li&gt;
&lt;li&gt;リライト時に元の要点を落とさないか&lt;/li&gt;
&lt;li&gt;要約、膨らませる作業、タイトル変更、構成変更でも安定しているか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;文章作成で怖いのは「書けないこと」ではなく、「書けたように見えるのに、結局かなり直す必要があること」です。&lt;/p&gt;
&lt;p&gt;そのため、&lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; と &lt;code&gt;GPT-5.5&lt;/code&gt; を比べるときは、単に1本ずつ記事を書かせるより、次のような連続テストのほうが実用的です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まず初稿を書く&lt;/li&gt;
&lt;li&gt;別のトーンで書き直す&lt;/li&gt;
&lt;li&gt;もっと短い版に圧縮する&lt;/li&gt;
&lt;li&gt;クリックを取りやすい見出し向け、あるいは検索流入向けに組み替える&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;その数ラウンドでも要点が散らず、表現がぶれず、構成が崩れないなら、そのモデルは実際の文章作成ワークフローでより高い価値を持ちます。&lt;/p&gt;
&lt;p&gt;つまり文章作成で本当に比べるべきなのは「文才」ではなく、&lt;strong&gt;リライト能力、指示への従いやすさ、継続的な協業感&lt;/strong&gt;です。&lt;/p&gt;
&lt;h2 id=&#34;3-コードタスク本当の差は長い作業チェーンでの安定性に出る&#34;&gt;3. コードタスク：本当の差は長い作業チェーンでの安定性に出る
&lt;/h2&gt;&lt;p&gt;コード関連の作業は、フロントエンドよりもモデルの実力を露呈しやすい分野です。なぜなら、単に出力するだけではなく、現実のプロジェクトと接続しなければならないからです。&lt;/p&gt;
&lt;p&gt;すぐに次のような問題にぶつかります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;既存のプロジェクト構造を理解できるか&lt;/li&gt;
&lt;li&gt;複数ファイルを同時に修正できるか&lt;/li&gt;
&lt;li&gt;修正後に新しい問題を持ち込まないか&lt;/li&gt;
&lt;li&gt;エラーやログを追ってデバッグを続けられるか&lt;/li&gt;
&lt;li&gt;数ラウンド後でも、すでに何をやったか覚えているか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この種のタスクでユーザーが本当に気にするのは、単体のコード片が美しいかどうかではありません。&lt;strong&gt;作業を継続的に前へ進められるか、それとも後片付けを自分がしなければならないのか&lt;/strong&gt;です。&lt;/p&gt;
&lt;p&gt;だから &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; と &lt;code&gt;GPT-5.5&lt;/code&gt; を比較するとき、本当に見るべきなのは単発のコード問題ではなく、次のような実務に近い流れです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;既存のリポジトリを読む&lt;/li&gt;
&lt;li&gt;バグを見つける&lt;/li&gt;
&lt;li&gt;関連する複数ファイルを修正する&lt;/li&gt;
&lt;li&gt;エラーに基づいてさらに直す&lt;/li&gt;
&lt;li&gt;最後に結果を整理して説明する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;タスクがこのような連続進行型になるほど、コンテキスト保持力、実行の癖、説明の質、手戻り率は、単発の回答品質よりも重要になります。&lt;/p&gt;
&lt;p&gt;そのため、コード作業では「ずっと1つのモデルだけを使う」という形ではなく、タスクの段階によって主力を切り替えるユーザーが多くなるのです。&lt;/p&gt;
&lt;h2 id=&#34;4-本当に比べるべきなのは勝敗ではなくどの種類のタスクを誰に任せると得か&#34;&gt;4. 本当に比べるべきなのは勝敗ではなく、「どの種類のタスクを誰に任せると得か」
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; と &lt;code&gt;GPT-5.5&lt;/code&gt; を並べて、ただ総合チャンピオンを決めようとしても、結局は中身の薄い結論になりがちです。&lt;/p&gt;
&lt;p&gt;現実のタスクは同じ問題ではないからです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;単発生成もある&lt;/li&gt;
&lt;li&gt;複数ラウンドの協業もある&lt;/li&gt;
&lt;li&gt;中国語での文章作成もある&lt;/li&gt;
&lt;li&gt;エンジニアリング変更もある&lt;/li&gt;
&lt;li&gt;速度重視もある&lt;/li&gt;
&lt;li&gt;安定性重視もある&lt;/li&gt;
&lt;li&gt;コスト重視もある&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;だから、実際の使い方に近いのは、タスクの目的ごとに考えることです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;より完成度の高い総合体験、成熟した対話、安定した汎用出力を求めるなら、まず &lt;code&gt;GPT-5.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;中国語環境で高頻度に試行錯誤し、素早く反復し、費用対効果も重視するなら、&lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; を本格的にワークフローへ入れる価値がある&lt;/li&gt;
&lt;li&gt;タスク自体が長いチェーン、多段階修正、複数人協業なら、初回結果だけで判断せず、5ラウンド後も安定しているかを見るべき&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;言い換えれば、本当に問うべきなのは「どちらが絶対的に強いか」ではなく、&lt;br&gt;
&lt;strong&gt;フロントエンド、文章作成、コードという3種類のタスクで、いまの自分にとってどちらがより手になじむ道具か&lt;/strong&gt;ということです。&lt;/p&gt;
&lt;h2 id=&#34;5-ちゃんと意味のある比較をするには&#34;&gt;5. ちゃんと意味のある比較をするには
&lt;/h2&gt;&lt;p&gt;自分で &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; と &lt;code&gt;GPT-5.5&lt;/code&gt; を試すなら、1ラウンドだけで判断するより、次のようなやり方のほうがずっと信頼できます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;両方に同じ初期要件を与える&lt;/li&gt;
&lt;li&gt;制約条件をそろえる&lt;/li&gt;
&lt;li&gt;3〜5ラウンド連続で追質問する&lt;/li&gt;
&lt;li&gt;出力品質、脱線回数、手戻り量を記録する&lt;/li&gt;
&lt;li&gt;最後に速度、コスト、最終的な使いやすさを比較する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;こうして得た結果のほうが、「最初にどちらが派手だったか」よりも、実際の仕事に近い判断材料になります。&lt;/p&gt;
&lt;p&gt;特にフロントエンド、文章作成、コードのような分野では、体験を決めるのはスタートの派手さではなく、&lt;strong&gt;最後まで一緒に仕事を進められるかどうか&lt;/strong&gt;です。&lt;/p&gt;
&lt;h2 id=&#34;6-まずはこう覚えておけばよい&#34;&gt;6. まずはこう覚えておけばよい
&lt;/h2&gt;&lt;p&gt;ひとまず使える形で覚えるなら、次のようにまとめられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;：総合型で、製品として洗練された、標準的な作業台に近い&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek V4 Pro&lt;/code&gt;：中国語環境や高頻度な試行錯誤で、日常ワークフローに入れる価値が高い競争相手&lt;/li&gt;
&lt;li&gt;本当の比較ポイント：初回の派手さではなく、複数ラウンド後の安定性と手間の少なさ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この種の比較で本当に重要なのは、決して「誰が勝ったか」だけではありません。&lt;br&gt;
&lt;strong&gt;自分のフロントエンド、文章作成、コードのタスクにおいて、どちらを使うと継続的に前へ進みやすく、手戻りが少なく、安定して成果を出せるか&lt;/strong&gt;です。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>ChatGPT・Claude・Gemini の役割分担はどうするべきか：日常会話、コーディング、特殊機能の選び方</title>
        <link>https://knightli.com/ja/2026/04/25/chatgpt-claude-gemini-task-selection/</link>
        <pubDate>Sat, 25 Apr 2026 10:51:19 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/25/chatgpt-claude-gemini-task-selection/</guid>
        <description>&lt;p&gt;今では、多くの人が1つのモデルだけを使うのではなく、&lt;code&gt;ChatGPT&lt;/code&gt;、&lt;code&gt;Claude&lt;/code&gt;、&lt;code&gt;Gemini&lt;/code&gt; を行き来しながら使っています。そうなると問題はかなり実務的になります。&lt;strong&gt;どんなタスクを、どのモデルに任せるべきなのか。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;この点が悩ましくなるのは、3社とも弱いからではありません。むしろ十分に強くなった結果、それぞれの得意分野が分かれてきたからです。いまだに「どれがいちばん賢いか」のような曖昧な基準で選ぶと、かえって外しやすくなります。&lt;/p&gt;
&lt;p&gt;まずは簡略版の結論から言うと、おおむね次のように考えられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;日常会話や汎用タスクなら、まず &lt;code&gt;ChatGPT&lt;/code&gt; を思い浮かべる人が多い&lt;/li&gt;
&lt;li&gt;コマンドラインでのコーディング、長いコンテキストでの協業、継続的に進めるタイプの作業なら、&lt;code&gt;Claude&lt;/code&gt; のほうが扱いやすいことが多い&lt;/li&gt;
&lt;li&gt;Google エコシステム、検索、マルチモーダルの入口、あるいは一部の製品レベルの特殊機能が必要なら、&lt;code&gt;Gemini&lt;/code&gt; の存在感が強い&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以下、3つに分けて見ていきます。&lt;/p&gt;
&lt;h2 id=&#34;1-日常会話なぜ多くの人がまず-chatgpt-を開くのか&#34;&gt;1. 日常会話：なぜ多くの人がまず &lt;code&gt;ChatGPT&lt;/code&gt; を開くのか
&lt;/h2&gt;&lt;p&gt;多くの一般的な利用シーンでは、&lt;code&gt;ChatGPT&lt;/code&gt; は今でも「標準の入口」のような存在です。&lt;/p&gt;
&lt;p&gt;ここで言いたいのは、特定の benchmark の話ではなく、全体的な使い心地です。&lt;br&gt;
ちょっとした質問をしたいとき、考えを整理したいとき、短い文章を書きたいとき、たたき台を作りたいとき、資料を要約したいときに、&lt;code&gt;ChatGPT&lt;/code&gt; は全体としてバランスがよく感じられます。&lt;/p&gt;
&lt;p&gt;強みは主に次の点にあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;回答スタイルが比較的安定している&lt;/li&gt;
&lt;li&gt;一般ユーザーにとって使い始めるハードルが低い&lt;/li&gt;
&lt;li&gt;多くの総合タスクで過度な追加調整がいらない&lt;/li&gt;
&lt;li&gt;製品としての完成度が高く、日常的に高頻度で使いやすい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たとえば次のような作業なら、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;あるテーマを整理してほしい&lt;/li&gt;
&lt;li&gt;アイデアを構造化された内容にまとめたい&lt;/li&gt;
&lt;li&gt;長文を要約したい&lt;/li&gt;
&lt;li&gt;いくつかの案をブレインストーミングしたい&lt;/li&gt;
&lt;li&gt;表現をより分かりやすく整えたい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;ChatGPT&lt;/code&gt; はかなり自然な出発点になります。&lt;/p&gt;
&lt;p&gt;これは、あらゆる専門タスクで必ず最強だという意味ではありません。むしろ「広く汎用的に使える」という点で、標準の作業台に近いということです。&lt;/p&gt;
&lt;h2 id=&#34;2-コマンドラインでのコーディングと長いタスクなぜ-claude-を好む人が多いのか&#34;&gt;2. コマンドラインでのコーディングと長いタスク：なぜ &lt;code&gt;Claude&lt;/code&gt; を好む人が多いのか
&lt;/h2&gt;&lt;p&gt;タスクが「少し会話する」段階から、「最後まで継続して進める」段階に移ると、多くの人の好みは &lt;code&gt;Claude&lt;/code&gt; に傾き始めます。&lt;/p&gt;
&lt;p&gt;特に次のような場面です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コマンドラインでのプログラミング&lt;/li&gt;
&lt;li&gt;大規模プロジェクトのコンテキスト理解&lt;/li&gt;
&lt;li&gt;複数ファイルをまたぐ修正&lt;/li&gt;
&lt;li&gt;長い流れのデバッグ&lt;/li&gt;
&lt;li&gt;コードを読みながらタスクを前進させる作業&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうしたタスクで重要なのは、1回の返答がどれだけ派手かではなく、長い作業の流れの中で安定していられるかどうかです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Claude&lt;/code&gt; が好まれる理由は、「ひとことが他よりうまいから」ではなく、主に次の点にあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;長いコンテキストのタスクでも粘り強い&lt;/li&gt;
&lt;li&gt;ファイル、ログ、ルールを連続して読むときの安定感が高い&lt;/li&gt;
&lt;li&gt;複雑なコーディング作業を段階的に進めやすい&lt;/li&gt;
&lt;li&gt;コマンドラインや agent ワークフローでは主力モデルとして扱われやすい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;vibe coding&lt;/code&gt;、コマンドラインでのバグ修正、プロジェクト構造の理解、複数ファイルにまたがる機能改修をしているなら、&lt;code&gt;Claude&lt;/code&gt; の強みはより見えやすくなります。&lt;/p&gt;
&lt;p&gt;要するに、&lt;code&gt;Claude&lt;/code&gt; は一問一答のためだけでなく、一緒に「作業を進める」相手として向いているモデルだと言えます。&lt;/p&gt;
&lt;h2 id=&#34;3-gemini-の強みは何でも正面から勝つことではない&#34;&gt;3. &lt;code&gt;Gemini&lt;/code&gt; の強みは「何でも正面から勝つこと」ではない
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Gemini&lt;/code&gt; を語るとき、多くの人は「結局3つの中で最強なのか」と聞きがちです。&lt;/p&gt;
&lt;p&gt;しかし実際の利用感覚からすると、もっと有用な問いはそこではありません。&lt;strong&gt;どんな場面で、あえて単独で使う価値が高いのか。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Gemini&lt;/code&gt; の価値は、主に次の方向で表れやすいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Google エコシステムとの連携&lt;/li&gt;
&lt;li&gt;検索や情報収集&lt;/li&gt;
&lt;li&gt;マルチモーダルの入口&lt;/li&gt;
&lt;li&gt;一部の製品機能との連動&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もし普段のワークフローがもともと Google のツールチェーンに近いなら、たとえば&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;検索&lt;/li&gt;
&lt;li&gt;ドキュメント&lt;/li&gt;
&lt;li&gt;メール&lt;/li&gt;
&lt;li&gt;ブラウザ上での利用&lt;/li&gt;
&lt;li&gt;モバイル側の入口&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Gemini&lt;/code&gt; の実用上の便利さは、単純なモデル性能の比較よりも重要になるかもしれません。&lt;/p&gt;
&lt;p&gt;つまり &lt;code&gt;Gemini&lt;/code&gt; の使いやすさは、「どこで自分のワークフローに自然につながるか」から来ることが多く、「単発の回答で誰に勝つか」だけでは測れません。&lt;/p&gt;
&lt;h2 id=&#34;4-本当に役立つ選び方は最強を問うことではなくタスクの種類を問うこと&#34;&gt;4. 本当に役立つ選び方は、最強を問うことではなく、タスクの種類を問うこと
&lt;/h2&gt;&lt;p&gt;3つのモデルを並べて比較するとき、いちばん陥りやすい罠は「唯一の最強」を探そうとすることです。&lt;/p&gt;
&lt;p&gt;ですが、現実のタスクはあまりにも違います。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;単発のQ&amp;amp;Aもある&lt;/li&gt;
&lt;li&gt;長い対話で伴走してもらうものもある&lt;/li&gt;
&lt;li&gt;コードベースを扱う作業もある&lt;/li&gt;
&lt;li&gt;情報検索もある&lt;/li&gt;
&lt;li&gt;マルチモーダル処理もある&lt;/li&gt;
&lt;li&gt;ツールチェーンとの協業もある&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;だからこそ、より有効なのはタスクの種類で分けることです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;総合型で、日常的に高頻度に使えて、開けばすぐ使える助手がほしいなら、まず &lt;code&gt;ChatGPT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;長いコンテキスト、コマンドライン、コーディング協業、複雑な作業の継続的な前進が必要なら、まず &lt;code&gt;Claude&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Google エコシステム、検索、マルチモーダルの入口、あるいは一部の製品連携を活かしたいなら、&lt;code&gt;Gemini&lt;/code&gt; を重視する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このような役割分担のほうが、無理に総合優勝を決めるより、実際の使い方に近いです。&lt;/p&gt;
&lt;h2 id=&#34;5-なぜヘビーユーザーは3つとも契約するのか&#34;&gt;5. なぜヘビーユーザーは3つとも契約するのか
&lt;/h2&gt;&lt;p&gt;ライトユーザーの視点では、3つ全部に課金するのは重複して見えがちです。&lt;br&gt;
けれどもヘビーユーザーの視点では、それは異なる仕事に異なる道具を割り当てているだけです。&lt;/p&gt;
&lt;p&gt;理由は単純です。&lt;br&gt;
3つのモデルの強みがすでにはっきり分かれ始めているなら、同時に使うことは重複課金ではなく、タスク切り替えのコストや試行錯誤のコストを下げる方法だからです。&lt;/p&gt;
&lt;p&gt;たとえば、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;日常的な整理や総合Q&amp;amp;Aには &lt;code&gt;ChatGPT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;コーディングの主作業には &lt;code&gt;Claude&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;検索、マルチモーダル、Google 関連の導線には &lt;code&gt;Gemini&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この組み合わせの考え方は、デザイナーが複数のソフトを入れることや、開発者が複数の IDE を使うことと本質的には変わりません。&lt;/p&gt;
&lt;h2 id=&#34;6-何度もモデルを切り替えすぎないほうがいい場面&#34;&gt;6. 何度もモデルを切り替えすぎないほうがいい場面
&lt;/h2&gt;&lt;p&gt;もちろん、モデルが多ければ常に良いわけではありません。&lt;/p&gt;
&lt;p&gt;まだ安定したワークフローを作っている途中なら、3つのモデルを早い段階で頻繁に行き来すると、かえって混乱しやすくなります。よくある問題は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;同じタスクを何度も説明し直す&lt;/li&gt;
&lt;li&gt;モデルごとに違う提案が出て、判断が難しくなる&lt;/li&gt;
&lt;li&gt;コンテキストが途切れ、協業コストが上がる&lt;/li&gt;
&lt;li&gt;自分なりの使い分けができる前に、道具選びそのものに引っ張られる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;なので、より安定したやり方は次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まず各モデルに1つずつ主な担当領域を与える&lt;/li&gt;
&lt;li&gt;その担当領域でしばらく続けて使う&lt;/li&gt;
&lt;li&gt;そのうえで自分なりの使い分けを徐々に作っていく&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;こうすることで、「今日はこれを試してみよう」という段階に留まり続けるのではなく、再利用しやすい実践知を得やすくなります。&lt;/p&gt;
&lt;h2 id=&#34;7-まずはこう覚えておけばいい&#34;&gt;7. まずはこう覚えておけばいい
&lt;/h2&gt;&lt;p&gt;とりあえず使える覚え方だけ欲しいなら、次のような口語的な分担表で十分です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ChatGPT&lt;/code&gt;：汎用型の標準アシスタント&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Claude&lt;/code&gt;：長いタスクとコーディング協業の主力&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Gemini&lt;/code&gt;：検索、マルチモーダル、Google エコシステムで強みを発揮しやすいツール&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは絶対的なルールではありませんし、3者が互いに代替できないという意味でもありません。あくまで実際の利用感覚に近い出発点です。&lt;/p&gt;
&lt;p&gt;本当に重要なのは、「宇宙最強のモデル」を選ぶことではなく、できるだけ早く次を見極めることです。&lt;br&gt;
&lt;strong&gt;今、目の前のこの種類のタスクに対して、どのモデルがもっとも時間を節約し、気力を消耗させず、結果につながりやすいか。&lt;/strong&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>LLM API はなぜ Token 課金なのか：入力・出力・コンテキストのコストをまとめて理解する</title>
        <link>https://knightli.com/ja/2026/04/25/llm-token-pricing-principles/</link>
        <pubDate>Sat, 25 Apr 2026 08:44:32 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/25/llm-token-pricing-principles/</guid>
        <description>&lt;p&gt;LLM API の料金体系で最も混乱しやすい点の 1 つは、なぜほとんどのプラットフォームが最終的に &lt;code&gt;token&lt;/code&gt; という単位で課金するのか、ということです。要するに、&lt;strong&gt;なぜ大規模モデルは token ごとに課金され、しかも token の種類によって価格まで違うのか&lt;/strong&gt;、という疑問です。&lt;/p&gt;
&lt;p&gt;モデル API を使い始めたばかりの人が戸惑いやすいのは、モデル性能よりもむしろ請求額です。少し質問しただけなのに、なぜこんなに料金が増えるのか。なぜ入力は安く、出力は高いのか。なぜコンテキストが長くなるとコストが急に制御しづらくなるのか。&lt;/p&gt;
&lt;p&gt;これをシンプルに捉えるなら、まず次の一文を覚えておくと分かりやすいです。&lt;strong&gt;課金されているのは「1 回の回答」ではなく、推論全体で消費された計算資源と帯域です。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;1-token-とは何か&#34;&gt;1. token とは何か
&lt;/h2&gt;&lt;p&gt;LLM の課金でいう &lt;code&gt;token&lt;/code&gt; は、文字数でも単語数でもありません。モデルがテキストを処理するときの分割単位です。&lt;/p&gt;
&lt;p&gt;1 つの token は、たとえば次のようなものになり得ます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 つの漢字&lt;/li&gt;
&lt;li&gt;英単語の一部&lt;/li&gt;
&lt;li&gt;句読点&lt;/li&gt;
&lt;li&gt;よく出る短いテキスト断片&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、API プラットフォームは通常「1 文ごと」や「1 リクエストごと」には課金しません。モデルが実際に読んだ token 数と生成した token 数に応じて課金します。&lt;br&gt;
これはリクエスト回数ベースの課金よりも合理的です。同じ 1 回のリクエストでも、20 文字だけ入力する場合もあれば、20 万 token のコンテキストを入れる場合もあるからです。消費される資源はまったく違います。&lt;/p&gt;
&lt;h2 id=&#34;2-なぜ入力と出力は別料金なのか&#34;&gt;2. なぜ入力と出力は別料金なのか
&lt;/h2&gt;&lt;p&gt;現在の多くのモデル API では、料金が次の 2 つに分かれています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;入力 token 料金&lt;/li&gt;
&lt;li&gt;出力 token 料金&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;しかも一般的には、&lt;strong&gt;出力 token のほうが入力 token より高い&lt;/strong&gt;です。&lt;/p&gt;
&lt;p&gt;理由はそれほど難しくありません。&lt;/p&gt;
&lt;p&gt;モデルが入力を処理するときは、基本的には既存の内容を読み取り、エンコードしています。けれども出力を生成するときは、次の token を 1 つずつ予測し続ける必要があります。これは単に読むだけではなく、継続的に推論とサンプリングを行う処理なので、通常はより多くの計算資源を使います。&lt;/p&gt;
&lt;p&gt;大まかに言えば次のように考えられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;入力：資料をモデルに渡す&lt;/li&gt;
&lt;li&gt;出力：その場でモデルに回答を書かせる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;その場で書くほうが、資料を一度読むよりも計算コストが高くなりやすいため、出力価格が高いのはよくある設計です。&lt;/p&gt;
&lt;h2 id=&#34;3-なぜコンテキストが長いとコストが膨らみやすいのか&#34;&gt;3. なぜコンテキストが長いとコストが膨らみやすいのか
&lt;/h2&gt;&lt;p&gt;少し背景情報を足しているだけだと思っていても、請求の観点では想像以上に影響が大きいことがあります。&lt;/p&gt;
&lt;p&gt;理由は、&lt;strong&gt;モデルは通常、各リクエストで渡されたコンテキスト全体をもう一度処理する必要がある&lt;/strong&gt;からです。&lt;/p&gt;
&lt;p&gt;つまり、現在のリクエストに次のようなものが含まれていれば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;システムプロンプト&lt;/li&gt;
&lt;li&gt;会話履歴&lt;/li&gt;
&lt;li&gt;ツールの返り値&lt;/li&gt;
&lt;li&gt;長文書の断片&lt;/li&gt;
&lt;li&gt;ソースコードファイルの内容&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;それらはすべて入力 token として課金対象になります。&lt;/p&gt;
&lt;p&gt;請求額を本当に押し上げるのは、最後の一言の質問ではなく、その前にぶら下がっている長いコンテキストであることが多いです。&lt;br&gt;
会話のターン数が増え、ツール呼び出しが増え、履歴メッセージが何度も再投入されると、token コストはラウンドごとに膨らんでいきます。&lt;/p&gt;
&lt;h2 id=&#34;4-なぜツール呼び出しは特に-token-を増やしやすいのか&#34;&gt;4. なぜツール呼び出しは特に token を増やしやすいのか
&lt;/h2&gt;&lt;p&gt;Agent、コーディングアシスタント、ワークフロー自動化のような場面では、token 消費は通常のチャットよりかなり大きくなりがちです。&lt;/p&gt;
&lt;p&gt;問題は「モデルが少し長めに答えた」ことだけではありません。ワークフロー全体で次のような内容が絶えず発生するからです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ファイルを読む&lt;/li&gt;
&lt;li&gt;ログを確認する&lt;/li&gt;
&lt;li&gt;API を呼ぶ&lt;/li&gt;
&lt;li&gt;JSON を返す&lt;/li&gt;
&lt;li&gt;ツール結果をモデルに戻す&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ツール呼び出しの結果が次のラウンドのコンテキストに再投入されるたび、それは新たな入力 token になります。&lt;/p&gt;
&lt;p&gt;だからこそ多くの開発者は最終的にこう気づきます。&lt;br&gt;
&lt;strong&gt;問題はモデルの単価そのものではなく、ワークフローが token の請求額を何層にも積み上げていることがある&lt;/strong&gt;のです。&lt;/p&gt;
&lt;p&gt;たとえばコーディング Agent が次のことを連続で行うとします。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;プロジェクト構造を読む&lt;/li&gt;
&lt;li&gt;いくつかのソースファイルを開く&lt;/li&gt;
&lt;li&gt;テストを実行する&lt;/li&gt;
&lt;li&gt;エラーログをモデルに戻す&lt;/li&gt;
&lt;li&gt;さらに関連ファイルを読む&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;各ステップで、次のリクエストがより長いコンテキストを背負うことになります。単価が同じでも、総額はすぐに増えていきます。&lt;/p&gt;
&lt;h2 id=&#34;5-同じようなモデルでも価格差が大きいのはなぜか&#34;&gt;5. 同じようなモデルでも価格差が大きいのはなぜか
&lt;/h2&gt;&lt;p&gt;モデルごとの token 価格差は、単にベンダーが高く売りたいからというだけではありません。多くの場合、次のような要素と直接結び付いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;モデル規模&lt;/li&gt;
&lt;li&gt;推論効率&lt;/li&gt;
&lt;li&gt;コンテキスト長&lt;/li&gt;
&lt;li&gt;配備コスト&lt;/li&gt;
&lt;li&gt;ターゲット市場&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;モデルが大きく、アクティブパラメータが多く、推論経路が複雑になるほど、1 token を生成するコストは一般に高くなります。&lt;br&gt;
さらに超長コンテキスト、複雑な推論、ツール利用最適化まで対応するなら、基盤側の負荷はさらに増えます。&lt;/p&gt;
&lt;p&gt;そのため、価格設定は本質的に次のようなコストをカバーしています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPU / アクセラレータ資源&lt;/li&gt;
&lt;li&gt;VRAM 使用量&lt;/li&gt;
&lt;li&gt;推論レイテンシ&lt;/li&gt;
&lt;li&gt;ネットワークとサービス安定性&lt;/li&gt;
&lt;li&gt;ピーク同時実行能力&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安いモデルが悪いとは限らず、高いモデルがすべての場面に向くわけでもありません。多くの場合、価格差は「その能力にどれだけの基盤コストがかかるか」を反映しています。&lt;/p&gt;
&lt;h2 id=&#34;6-なぜキャッシュ入力は安くなるのか&#34;&gt;6. なぜキャッシュ入力は安くなるのか
&lt;/h2&gt;&lt;p&gt;多くのモデルプラットフォームでは現在、次のような仕組みが提供されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cached input&lt;/li&gt;
&lt;li&gt;prompt caching&lt;/li&gt;
&lt;li&gt;prefix caching&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;共通する考え方はシンプルで、すでに処理した大きな入力断片を、毎回フル価格でゼロから再計算しないようにすることです。&lt;/p&gt;
&lt;p&gt;たとえば固定の system prompt、固定のツール説明、固定の長文書プレフィックスを毎ラウンドまったく同じように送るなら、プラットフォームはその一部をキャッシュできる可能性があります。すると同じ入力 token でも、キャッシュに当たった部分はより安い料金で計上できます。&lt;/p&gt;
&lt;p&gt;この仕組みがあるからこそ、多くの API 料金表には次のような複数の価格帯があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;通常入力&lt;/li&gt;
&lt;li&gt;キャッシュ入力&lt;/li&gt;
&lt;li&gt;出力&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;違いはテキストの意味ではなく、下層の計算が再利用できるかどうかです。&lt;/p&gt;
&lt;h2 id=&#34;7-安い-tokenが必ずしも安い総額にならない理由&#34;&gt;7. 「安い token」が必ずしも「安い総額」にならない理由
&lt;/h2&gt;&lt;p&gt;あるモデルが「100 万 token あたりとても安い」と書かれていると、総コストも必ず安いと思いがちです。ですが、実際にはそうとは限りません。&lt;/p&gt;
&lt;p&gt;総額は大まかに次の式で考えられます。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;token 単価 × 実際の消費量&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;そして実際の消費量は、さまざまな要因で膨らみます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロンプトが長すぎる&lt;/li&gt;
&lt;li&gt;履歴メッセージを整理しない&lt;/li&gt;
&lt;li&gt;ツール結果を戻しすぎる&lt;/li&gt;
&lt;li&gt;出力が冗長すぎる&lt;/li&gt;
&lt;li&gt;1 つのタスクを何度もやり直す&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり請求額を決めるのは単価だけではなく、通常は次の組み合わせです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;モデル単価&lt;/li&gt;
&lt;li&gt;各ラウンドの入力長&lt;/li&gt;
&lt;li&gt;各ラウンドの出力長&lt;/li&gt;
&lt;li&gt;呼び出し回数&lt;/li&gt;
&lt;li&gt;ワークフロー設計&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;だからこそ、単価の安いモデルでも Agent タスクでは最終的な総費用がそれほど安くならないことがあります。より多くのラウンド、補足コンテキスト、再試行が必要になることがあるからです。&lt;/p&gt;
&lt;h2 id=&#34;8-開発者は-token-コストをどう見積もるべきか&#34;&gt;8. 開発者は token コストをどう見積もるべきか
&lt;/h2&gt;&lt;p&gt;実プロジェクトで予算を安定して管理したいなら、まずは素朴な見積もり方法が役に立ちます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;1 リクエストあたりの平均入力 token 数を測る&lt;/li&gt;
&lt;li&gt;1 リクエストあたりの平均出力 token 数を測る&lt;/li&gt;
&lt;li&gt;1 つのタスクが何ラウンド必要か見積もる&lt;/li&gt;
&lt;li&gt;それをモデル単価に掛ける&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;たとえば次のようなイメージです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 ラウンドあたり入力 &lt;code&gt;8k tokens&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;1 ラウンドあたり出力 &lt;code&gt;1k tokens&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;1 タスクあたり &lt;code&gt;10&lt;/code&gt; ラウンド&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この場合、本当に消費しているのは「1 回のやり取り」ではなく：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;入力およそ &lt;code&gt;80k tokens&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;出力およそ &lt;code&gt;10k tokens&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;途中でログ、ツール結果、ファイル内容が増え続ければ、総量はさらに上がります。&lt;/p&gt;
&lt;p&gt;だから予算を見るときは、単一ラウンドではなく、&lt;strong&gt;タスク 1 件を最後まで回したときに何 token 消費するか&lt;/strong&gt;を見るべきです。&lt;/p&gt;
&lt;h2 id=&#34;9-実際に請求額を抑えるには&#34;&gt;9. 実際に請求額を抑えるには
&lt;/h2&gt;&lt;p&gt;すでに API や Agent を使っているなら、次の方法が特に効果的です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;system prompt を短くして重複表現を削る&lt;/li&gt;
&lt;li&gt;古い履歴を定期的に削る&lt;/li&gt;
&lt;li&gt;ツール出力は必要な項目だけ残す&lt;/li&gt;
&lt;li&gt;長文書は先に検索して必要部分だけ渡す&lt;/li&gt;
&lt;li&gt;出力長を制御して無制限な展開を防ぐ&lt;/li&gt;
&lt;li&gt;高価なモデルは高価値タスクに、安価なモデルは低価値タスクに使う&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;多くの場合、節約の近道はむやみに安いモデルへ切り替えることではなく、まずワークフロー内の無駄な token 消費を削ることです。&lt;/p&gt;
&lt;h2 id=&#34;10-結局どう理解すればよいか&#34;&gt;10. 結局どう理解すればよいか
&lt;/h2&gt;&lt;p&gt;LLM の token 課金とは、要するに「モデルがどれだけ読み、どれだけ推論し、どれだけ書いたか」に対する課金です。&lt;/p&gt;
&lt;p&gt;これは従来のソフトウェアのように、アカウント単位、回数単位、月額課金だけで資源消費を表しきれる世界ではありません。モデル呼び出しは動的な計算プロセスであり、送るコンテキスト量、呼ぶツール、求める出力長がすべて直接コストに反映されます。&lt;/p&gt;
&lt;p&gt;だから大切なのは価格表を暗記することではなく、まず次の直感を持つことです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;長いコンテキストは入力コストを増やす&lt;/li&gt;
&lt;li&gt;長い出力は生成コストを増やす&lt;/li&gt;
&lt;li&gt;ツールチェーンは総 token を増幅する&lt;/li&gt;
&lt;li&gt;キャッシュとワークフロー設計は請求額を大きく変える&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この感覚がつかめれば、多くの LLM API の価格構造はかなり理解しやすくなります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>DeepSeek-V4 Preview 公開：1M コンテキスト、2 モデル構成、API 移行の注意点</title>
        <link>https://knightli.com/ja/2026/04/24/deepseek-v4-preview-release/</link>
        <pubDate>Fri, 24 Apr 2026 22:39:46 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/24/deepseek-v4-preview-release/</guid>
        <description>&lt;p&gt;DeepSeek は &lt;code&gt;2026-04-24&lt;/code&gt; に &lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/news/news260424&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek V4 Preview Release&lt;/a&gt; を公開しました。公式ニュースページを見ると、今回の更新の軸はかなりはっきりしています。&lt;code&gt;1M context&lt;/code&gt;、&lt;code&gt;V4-Pro&lt;/code&gt; と &lt;code&gt;V4-Flash&lt;/code&gt; の 2 モデル構成、Agent 向けの専用最適化、そして API 側のモデル移行です。&lt;/p&gt;
&lt;p&gt;一言でまとめるなら、今回のリリースの本質は、DeepSeek が単に「より強いモデル」を目指しているだけではなく、超長コンテキストと Agent 能力をそのまま実運用に載せやすい形へ進めていることです。&lt;/p&gt;
&lt;h2 id=&#34;1-今回公開されたもの&#34;&gt;1. 今回公開されたもの
&lt;/h2&gt;&lt;p&gt;公式ページによると、&lt;code&gt;DeepSeek-V4 Preview&lt;/code&gt; は主に次の 2 つのラインで構成されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Pro&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Flash&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;それぞれの公式説明も非常に分かりやすいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Pro&lt;/code&gt;：&lt;code&gt;1.6T total / 49B active params&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Flash&lt;/code&gt;：&lt;code&gt;284B total / 13B active params&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;名前を見るだけでも、今回は単一モデルの更新ではなく、高性能側と高コスト効率側を同時に展開していることが分かります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;V4-Pro&lt;/code&gt; はより高い性能上限を重視しており、公式は世界トップクラスのクローズドモデルに競合できるとしています。一方の &lt;code&gt;V4-Flash&lt;/code&gt; は、速度、効率、コストをより重視した位置づけで、レイテンシや API 料金に敏感な用途に向いています。&lt;/p&gt;
&lt;h2 id=&#34;2-1m-context-が今回いちばん目立つポイント&#34;&gt;2. &lt;code&gt;1M context&lt;/code&gt; が今回いちばん目立つポイント
&lt;/h2&gt;&lt;p&gt;公式ページで最も印象的な表現の 1 つが、&lt;strong&gt;「Welcome to the era of cost-effective 1M context length.」&lt;/strong&gt; です。&lt;/p&gt;
&lt;p&gt;DeepSeek は今回、単に長コンテキスト対応をうたっているだけではありません。&lt;code&gt;1M context&lt;/code&gt; をこの世代の標準能力として打ち出しています。ページでも次のように明記されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;1M context&lt;/code&gt; は公式 DeepSeek サービス全体の標準になった&lt;/li&gt;
&lt;li&gt;&lt;code&gt;V4-Pro&lt;/code&gt; と &lt;code&gt;V4-Flash&lt;/code&gt; はどちらも &lt;code&gt;1M context&lt;/code&gt; をサポートする&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;重要なのは、これが単に「より多くの token を詰められる」という話ではないことです。実際には次のような作業に直結します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;大規模コードベースの理解&lt;/li&gt;
&lt;li&gt;長文書の Q&amp;amp;A や情報整理&lt;/li&gt;
&lt;li&gt;複数ターンにまたがる Agent ワークフロー&lt;/li&gt;
&lt;li&gt;複数ファイル、複数ツール、複数段階にまたがる複雑なタスク&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;コンテキストウィンドウが十分に大きければ、途中で文脈を落として何度も読み直すことが減ります。これは Agent コーディングや複雑な知識作業で特に重要です。&lt;/p&gt;
&lt;h2 id=&#34;3-v4-pro-が主に強調していること&#34;&gt;3. &lt;code&gt;V4-Pro&lt;/code&gt; が主に強調していること
&lt;/h2&gt;&lt;p&gt;公式ページの表現を見ると、&lt;code&gt;DeepSeek-V4-Pro&lt;/code&gt; が強く押し出しているのは次の 3 点です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agentic Coding 能力&lt;/li&gt;
&lt;li&gt;世界知識&lt;/li&gt;
&lt;li&gt;推論能力&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ページでは、&lt;code&gt;V4-Pro&lt;/code&gt; が Agentic Coding ベンチマークでオープンソース SOTA を達成したこと、世界知識では現行のオープンモデルの中で最上位クラスであり &lt;code&gt;Gemini-3.1-Pro&lt;/code&gt; にのみ後れを取ること、さらに数学、&lt;code&gt;STEM&lt;/code&gt;、コーディングで現行のオープンモデルを上回り、トップクラスのクローズドモデルに対抗できることが示されています。&lt;/p&gt;
&lt;p&gt;つまり &lt;code&gt;V4-Pro&lt;/code&gt; は、単純な質問応答モデルというより、高難度推論、複雑なコーディング、長いタスクの遂行に寄せた設計です。&lt;/p&gt;
&lt;h2 id=&#34;4-v4-flash-は単なる縮小版ではない&#34;&gt;4. &lt;code&gt;V4-Flash&lt;/code&gt; は単なる縮小版ではない
&lt;/h2&gt;&lt;p&gt;もう 1 つ注目すべき点は、DeepSeek が &lt;code&gt;V4-Flash&lt;/code&gt; を単なる廉価版として扱っていないことです。むしろ、実務的な多くのタスクでは十分に強いモデルであることを前面に出しています。&lt;/p&gt;
&lt;p&gt;ニュースページによると、&lt;code&gt;V4-Flash&lt;/code&gt; は：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;推論能力が &lt;code&gt;V4-Pro&lt;/code&gt; にかなり近い&lt;/li&gt;
&lt;li&gt;シンプルな Agent タスクでは &lt;code&gt;V4-Pro&lt;/code&gt; と同等の性能を持つ&lt;/li&gt;
&lt;li&gt;パラメータ規模が小さく、応答が速く、API 価格も低い&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり今回は、「1 つが旗艦、もう 1 つが入門」という極端に分かれた構成ではなく、次のような役割分担に近いです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;V4-Pro&lt;/code&gt;：より高い性能上限を狙う&lt;/li&gt;
&lt;li&gt;&lt;code&gt;V4-Flash&lt;/code&gt;：より低いレイテンシと優れたコスト効率を狙う&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;開発者にとっては、このほうが実際には使いやすい構成です。多くの本番タスクで必要なのは、理論上最強のモデルではなく、十分に強く、十分に速く、十分に安いモデルだからです。&lt;/p&gt;
&lt;h2 id=&#34;5-agent-最適化がかなり前面に出ている&#34;&gt;5. Agent 最適化がかなり前面に出ている
&lt;/h2&gt;&lt;p&gt;今回の発表でもう 1 つ明確なのは、DeepSeek が &lt;code&gt;V4&lt;/code&gt; を Agent シナリオへ積極的に寄せていることです。&lt;/p&gt;
&lt;p&gt;公式ページでは、&lt;code&gt;DeepSeek-V4&lt;/code&gt; が次のような主要 AI Agent とシームレスに統合されていると紹介されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Claude Code&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OpenClaw&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OpenCode&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;加えて、DeepSeek 自身も社内の agentic coding に &lt;code&gt;V4&lt;/code&gt; を使っていると述べています。&lt;/p&gt;
&lt;p&gt;これは、対象が単なるチャットや通常の補完ではなく、コードを読み、構造を理解し、ツールを呼び出し、結果を生成し、その一連の流れをつなぐ長いワークフローになっていることを意味します。&lt;/p&gt;
&lt;p&gt;最近 coding agent を追っているなら、この点は見逃しにくいです。モデル提供側の競争軸が、ベンチマークだけではなく「本当にワークフローに組み込めるか」へ広がっているからです。&lt;/p&gt;
&lt;h2 id=&#34;6-構造的な工夫は長コンテキスト効率のため&#34;&gt;6. 構造的な工夫は長コンテキスト効率のため
&lt;/h2&gt;&lt;p&gt;技術面では、公式ページは今回の構造的な工夫を次のようにまとめています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;token-wise compression&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DSA (DeepSeek Sparse Attention)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;方向性は非常に明快です。長コンテキストを、より安く、より高効率にし、計算コストとメモリコストをできるだけ抑えることです。&lt;/p&gt;
&lt;p&gt;ニュースページでは完全な技術詳細までは踏み込んでいませんが、少なくとも DeepSeek が単純に計算資源を増やして長ウィンドウを支えているだけではなく、長コンテキスト効率のためのアーキテクチャ最適化も行っていることは読み取れます。&lt;/p&gt;
&lt;p&gt;実際の利用者にとっては、単にコンテキスト数値が大きいことよりも、こちらのほうが重要な場合が多いです。なぜなら実用性を決めるのは、&lt;code&gt;1M&lt;/code&gt; が使えるかどうかだけではなく、次のような点だからです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;速度が実用範囲に収まるか&lt;/li&gt;
&lt;li&gt;コストが許容範囲に収まるか&lt;/li&gt;
&lt;li&gt;長コンテキスト処理が実際に安定するか&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;7-api-はすでに利用可能だがモデル切り替えに注意&#34;&gt;7. API はすでに利用可能だが、モデル切り替えに注意
&lt;/h2&gt;&lt;p&gt;公式ページでは、今回の API が当日から利用可能であることも明記されています。&lt;/p&gt;
&lt;p&gt;切り替え方法も比較的シンプルです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;base_url&lt;/code&gt; はそのまま&lt;/li&gt;
&lt;li&gt;モデル名を &lt;code&gt;deepseek-v4-pro&lt;/code&gt; または &lt;code&gt;deepseek-v4-flash&lt;/code&gt; に変更する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;さらに、両モデルが次をサポートするとされています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;1M context&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Thinking / Non-Thinking&lt;/code&gt; の 2 モード&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OpenAI ChatCompletions&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Anthropic APIs&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、すでに DeepSeek API を使っているなら、移行の難しさはそれほど高くありません。主な作業はモデル名の差し替えと挙動確認です。&lt;/p&gt;
&lt;h2 id=&#34;8-旧モデルの終了時期も明確に書かれている&#34;&gt;8. 旧モデルの終了時期も明確に書かれている
&lt;/h2&gt;&lt;p&gt;開発者にとって、この発表の中で見落とせない情報の 1 つが旧モデルの終了通知です。&lt;/p&gt;
&lt;p&gt;公式には：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;deepseek-chat&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;deepseek-reasoner&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;が &lt;strong&gt;2026 年 7 月 24 日 15:59 UTC&lt;/strong&gt; 以降に完全に廃止され、アクセス不能になると書かれています。&lt;/p&gt;
&lt;p&gt;またページでは、現在この 2 つのモデルは実質的に &lt;code&gt;deepseek-v4-flash&lt;/code&gt; の非思考 / 思考モードへルーティングされているとも説明されています。&lt;/p&gt;
&lt;p&gt;そのため、もし今もプロジェクト内で &lt;code&gt;deepseek-chat&lt;/code&gt; や &lt;code&gt;deepseek-reasoner&lt;/code&gt; を直接参照しているなら、正式終了直前まで待つのではなく、今のうちに移行計画を進めるべきです。&lt;/p&gt;
&lt;h2 id=&#34;9-この発表をどう読むべきか&#34;&gt;9. この発表をどう読むべきか
&lt;/h2&gt;&lt;p&gt;今回の更新をいくつかの要点に圧縮すると、次のようになります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DeepSeek は &lt;code&gt;1M context&lt;/code&gt; を高級機能ではなく標準機能へ変え始めている&lt;/li&gt;
&lt;li&gt;2 モデル戦略がより明確になった。1 つは性能上限、もう 1 つは速度とコスト効率&lt;/li&gt;
&lt;li&gt;Agent 能力がかなり中心的な位置に置かれている&lt;/li&gt;
&lt;li&gt;API の移行経路は比較的シンプルだが、旧モデルの終了時期には早めの対応が必要&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一般ユーザーにとっては、長文書、長いコード文脈、長い作業フローを 1 回のコンテキストに収めやすくなるのが分かりやすい変化かもしれません。&lt;br&gt;
開発者にとってより重要なのは、すでに Agent、コードアシスタント、情報整理、複雑な自動化ワークフローを作っているなら、この世代のモデルは明らかにそうした用途を意識して設計されているという点です。&lt;/p&gt;
&lt;p&gt;今回の DeepSeek の発表は、単なる通常のモデル更新というより、次の製品方向をより明確に示したものだと見たほうが自然です。&lt;strong&gt;超長コンテキスト、Agent 最適化、そして実用的な API 運用性です。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;DeepSeek 公式ニュース: &lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/news/news260424&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://api-docs.deepseek.com/news/news260424&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tech Report: &lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro/blob/main/DeepSeek_V4.pdf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro/blob/main/DeepSeek_V4.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Open Weights: &lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/collections/deepseek-ai/deepseek-v4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://huggingface.co/collections/deepseek-ai/deepseek-v4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Ollama が GPU を使わず CPU で動いてしまう問題の対処法</title>
        <link>https://knightli.com/ja/2026/04/24/fix-ollama-using-cpu-instead-of-gpu/</link>
        <pubDate>Fri, 24 Apr 2026 18:30:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/24/fix-ollama-using-cpu-instead-of-gpu/</guid>
        <description>&lt;p&gt;ローカルで大規模モデルを動かしているとき、かなり悩まされやすいのが「GPU があるのに &lt;code&gt;Ollama&lt;/code&gt; がほぼ &lt;code&gt;CPU&lt;/code&gt; しか使わず、速度も極端に遅い」という問題です。&lt;/p&gt;
&lt;p&gt;先に結論を言うと、この手の問題はたいてい単一の原因ではありません。よくある原因は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ollama&lt;/code&gt; が利用可能な GPU を認識できていない&lt;/li&gt;
&lt;li&gt;ドライバ、&lt;code&gt;ROCm&lt;/code&gt;、&lt;code&gt;CUDA&lt;/code&gt; の環境構築が正しくない&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ollama&lt;/code&gt; サービスが正しい環境変数を引き継がずに起動している&lt;/li&gt;
&lt;li&gt;モデルが大きすぎて &lt;code&gt;CPU&lt;/code&gt; もしくは &lt;code&gt;CPU/GPU&lt;/code&gt; の混在ロードに落ちている&lt;/li&gt;
&lt;li&gt;AMD 環境では、&lt;code&gt;ROCm&lt;/code&gt; のバージョン、&lt;code&gt;gfx&lt;/code&gt; 設定、デバイス可視性などの互換性問題が追加で発生している&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以下、時間を無駄にしにくい順番で切り分けていきます。&lt;/p&gt;
&lt;h2 id=&#34;1-まず本当に-gpu-を使えていないのか確認する&#34;&gt;1. まず本当に GPU を使えていないのか確認する
&lt;/h2&gt;&lt;p&gt;一番わかりやすい確認方法はこれです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;見るべきなのは &lt;code&gt;PROCESSOR&lt;/code&gt; 列です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;100% GPU&lt;/code&gt;: モデルは完全に GPU 上で動いている&lt;/li&gt;
&lt;li&gt;&lt;code&gt;100% CPU&lt;/code&gt;: GPU はまったく使えていない&lt;/li&gt;
&lt;li&gt;&lt;code&gt;48%/52% CPU/GPU&lt;/code&gt; のような表示: 一部は VRAM に載り、一部はシステムメモリに落ちている&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;100% CPU&lt;/code&gt; なら、次は環境とサービス設定を重点的に確認すべきです。&lt;br&gt;
混在ロードの場合は、GPU が壊れているとは限らず、単純に VRAM が足りないだけのことも多いです。&lt;/p&gt;
&lt;h2 id=&#34;2-まず一番多い思い込みを外す-モデルが-vram-に収まっていない&#34;&gt;2. まず一番多い思い込みを外す: モデルが VRAM に収まっていない
&lt;/h2&gt;&lt;p&gt;GPU を積んでいれば &lt;code&gt;Ollama&lt;/code&gt; は常にフル GPU 推論になる、と考えている人は多いですが、実際はそうではありません。&lt;/p&gt;
&lt;p&gt;モデルが大きすぎる、コンテキストが長すぎる、あるいは別のモデルがすでに VRAM を使っている場合、&lt;code&gt;Ollama&lt;/code&gt; は次のような状態に落ちることがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一部 GPU + 一部 CPU&lt;/li&gt;
&lt;li&gt;&lt;code&gt;100% CPU&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この場合、まずは次の 2 つを試すのがいちばん早いです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;より小さいモデルでテストする&lt;br&gt;
いきなり大きなモデルを試すのではなく、まずは &lt;code&gt;4B&lt;/code&gt; や &lt;code&gt;7B&lt;/code&gt; のような小さめのモデルで確認します。&lt;/li&gt;
&lt;li&gt;すでに読み込まれている他のモデルを外してから再確認する&lt;br&gt;
先に &lt;code&gt;ollama ps&lt;/code&gt; を見て、別のモデルが VRAM を占有していないか確認します。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;小さいモデルは GPU で動くのに、大きいモデルだけだめなら、原因はドライバではなく VRAM 容量であることがほとんどです。&lt;/p&gt;
&lt;h2 id=&#34;3-gpu-ドライバと下位ランタイムが正常か確認する&#34;&gt;3. GPU ドライバと下位ランタイムが正常か確認する
&lt;/h2&gt;&lt;p&gt;小さいモデルですら &lt;code&gt;CPU&lt;/code&gt; しか使わないなら、次は下位レイヤの確認です。&lt;/p&gt;
&lt;h3 id=&#34;nvidia-の場合&#34;&gt;NVIDIA の場合
&lt;/h3&gt;&lt;p&gt;まずはドライバが正常で、OS から GPU が見えているかを確認します。よく使う確認方法は次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ここでエラーになるなら、&lt;code&gt;Ollama&lt;/code&gt; が GPU を正常に使える可能性はかなり低いです。&lt;/p&gt;
&lt;h3 id=&#34;amd--rocm-の場合&#34;&gt;AMD / ROCm の場合
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;AMD GPU&lt;/code&gt;、特に &lt;code&gt;ROCm&lt;/code&gt; 環境なら、まず次を確認します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rocminfo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rocm-smi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これらがデバイスを正常に列挙できないなら、問題はまだ &lt;code&gt;Ollama&lt;/code&gt; より下の層にあります。アプリ側をいじる前に、そこを直すべきです。&lt;/p&gt;
&lt;p&gt;AMD でよくあるのは、単純な「ドライバが入っているか」ではなく、次のような問題です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ROCm&lt;/code&gt; のバージョンと OS の組み合わせが合っていない&lt;/li&gt;
&lt;li&gt;対象 GPU アーキテクチャのサポートが不完全&lt;/li&gt;
&lt;li&gt;デバイス自体は存在するが、実行環境が &lt;code&gt;Ollama&lt;/code&gt; に正しく渡っていない&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;4-ターミナルではなく-ollama-サービス自体を再起動する&#34;&gt;4. ターミナルではなく Ollama サービス自体を再起動する
&lt;/h2&gt;&lt;p&gt;これはかなりよくある落とし穴です。&lt;/p&gt;
&lt;p&gt;ドライバを入れ直し、環境変数を変え、&lt;code&gt;ROCm&lt;/code&gt; を調整したあとで、単に新しいターミナルを開いて &lt;code&gt;ollama run&lt;/code&gt; を続けてしまうケースがあります。ですが &lt;code&gt;Ollama&lt;/code&gt; がバックグラウンドサービスとして動いているなら、古い環境のまま動作し続けている可能性があります。&lt;/p&gt;
&lt;p&gt;なので、より安全なのは次のやり方です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ollama&lt;/code&gt; サービスを完全に再起動する&lt;/li&gt;
&lt;li&gt;必要なら OS ごと再起動する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Linux でサービスとして動かしているなら、古いプロセスを再利用していないかも確認してください。&lt;/p&gt;
&lt;h2 id=&#34;5-環境変数が本当にサービスまで届いているか確認する&#34;&gt;5. 環境変数が本当にサービスまで届いているか確認する
&lt;/h2&gt;&lt;p&gt;これは特に &lt;code&gt;AMD ROCm&lt;/code&gt; 環境で重要です。&lt;/p&gt;
&lt;p&gt;シェル上で手動実行すると問題ないのに、&lt;code&gt;Ollama&lt;/code&gt; サービスにすると &lt;code&gt;CPU&lt;/code&gt; しか使わない、というケースがあります。多くの場合、原因はシェルで設定した変数がサービスプロセスに渡っていないことです。&lt;/p&gt;
&lt;p&gt;よく確認したい変数は次のあたりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ROCR_VISIBLE_DEVICES
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;HSA_OVERRIDE_GFX_VERSION
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;それぞれの意味は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt;: &lt;code&gt;ROCm&lt;/code&gt; から見える GPU を制限または指定する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt;: 一部 AMD 環境で互換性確保のために使うことがある&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;現在のターミナルで一時的に &lt;code&gt;export&lt;/code&gt; しただけでは、systemd、デスクトップのバックグラウンドサービス、その他のデーモン経由で起動された &lt;code&gt;Ollama&lt;/code&gt; には反映されないことがあります。&lt;/p&gt;
&lt;p&gt;つまり、ターミナルで「設定済みに見える」ことと、&lt;code&gt;Ollama&lt;/code&gt; が実際にその設定を使っていることは別です。&lt;/p&gt;
&lt;h2 id=&#34;6-amd-環境では-rocm-の互換性を重点的に見る&#34;&gt;6. AMD 環境では ROCm の互換性を重点的に見る
&lt;/h2&gt;&lt;p&gt;公開ページの情報を見る限り、この話題の元動画は &lt;code&gt;AMD Max+ 395&lt;/code&gt;、&lt;code&gt;strix halo&lt;/code&gt;、&lt;code&gt;AMD ROCm&lt;/code&gt; の文脈にあります。&lt;br&gt;
この種の環境では、&lt;code&gt;Ollama&lt;/code&gt; が GPU を使えない原因は、NVIDIA よりもバージョン整合性に左右されやすい傾向があります。&lt;/p&gt;
&lt;p&gt;優先的に見るべき点は次のとおりです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;現在の OS と GPU に対して &lt;code&gt;ROCm&lt;/code&gt; のバージョンが適切か&lt;/li&gt;
&lt;li&gt;その GPU が &lt;code&gt;ROCm&lt;/code&gt; で比較的安定して動くアーキテクチャか&lt;/li&gt;
&lt;li&gt;&lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt; の指定が必要か&lt;/li&gt;
&lt;li&gt;古い &lt;code&gt;Ollama&lt;/code&gt; や古い推論ランタイムが互換性の問題を起こしていないか&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;rocminfo&lt;/code&gt; は正常で GPU も OS から見えているのに、&lt;code&gt;Ollama&lt;/code&gt; だけが &lt;code&gt;CPU&lt;/code&gt; しか使わないなら、モデルパラメータをいじるより、まずバージョンの組み合わせを疑うべきです。&lt;/p&gt;
&lt;h2 id=&#34;7-dockerwslリモート環境ではデバイスマッピングも確認する&#34;&gt;7. Docker、WSL、リモート環境ではデバイスマッピングも確認する
&lt;/h2&gt;&lt;p&gt;もしベアメタルではなく、次のような環境で動かしているなら:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;WSL&lt;/li&gt;
&lt;li&gt;リモートコンテナ&lt;/li&gt;
&lt;li&gt;仮想化環境&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もう一段下を見て、「GPU デバイスが本当にその環境に渡っているか」を確認する必要があります。&lt;/p&gt;
&lt;p&gt;典型的には次のような状態になります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ホスト側では GPU が見えている&lt;/li&gt;
&lt;li&gt;しかしコンテナやサブシステム内の &lt;code&gt;Ollama&lt;/code&gt; は &lt;code&gt;CPU&lt;/code&gt; しか使わない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この場合、問題は &lt;code&gt;Ollama&lt;/code&gt; 自体ではなく、コンテナやサブシステムに GPU アクセス権限が渡っていない可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;8-最後にログを見るやみくもに再インストールしない&#34;&gt;8. 最後にログを見る。やみくもに再インストールしない
&lt;/h2&gt;&lt;p&gt;ここまで確認したなら、次に有効なのは何度も再インストールすることではなく、&lt;code&gt;Ollama&lt;/code&gt; の起動ログと実行ログを直接見ることです。&lt;/p&gt;
&lt;p&gt;見るべきポイントは大きく 2 つです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPU を認識できているか&lt;/li&gt;
&lt;li&gt;ドライバ、ライブラリ読込、デバイス初期化失敗などのエラーが出ていないか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ログに「互換 GPU が見つからない」や「ROCm/CUDA の初期化に失敗した」といった内容が出ていれば、切り分けの方向はかなり明確になります。&lt;/p&gt;
&lt;h2 id=&#34;切り分け順序&#34;&gt;切り分け順序
&lt;/h2&gt;&lt;p&gt;最短ルートだけ覚えたいなら、次の順番で確認すると効率的です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;ollama ps&lt;/code&gt; で &lt;code&gt;GPU&lt;/code&gt;、&lt;code&gt;CPU&lt;/code&gt;、混在ロードのどれかを確認する&lt;/li&gt;
&lt;li&gt;小さいモデルで試し、VRAM 不足を切り分ける&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nvidia-smi&lt;/code&gt;、&lt;code&gt;rocminfo&lt;/code&gt;、&lt;code&gt;rocm-smi&lt;/code&gt; で下位環境が正常か先に確認する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ollama&lt;/code&gt; サービスを完全に再起動する&lt;/li&gt;
&lt;li&gt;特に AMD では &lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt; と &lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt; を確認する&lt;/li&gt;
&lt;li&gt;Docker / WSL ならデバイスマッピングを確認する&lt;/li&gt;
&lt;li&gt;最後にログを見て、具体的なエラーを特定する&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Ollama&lt;/code&gt; が &lt;code&gt;GPU&lt;/code&gt; ではなく &lt;code&gt;CPU&lt;/code&gt; を使ってしまう問題は、だいたい次の 3 パターンのどれかです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPU がそもそも認識されていない&lt;/li&gt;
&lt;li&gt;GPU は見えているが、実行環境が &lt;code&gt;Ollama&lt;/code&gt; に届いていない&lt;/li&gt;
&lt;li&gt;GPU は動いているが、モデルが大きすぎて &lt;code&gt;CPU&lt;/code&gt; または混在メモリに落ちている&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この 3 つをまず分けて考えるだけで、切り分けはかなり速くなります。&lt;br&gt;
AMD 環境では特に、&lt;code&gt;ROCm&lt;/code&gt; のバージョン整合性、デバイス可視性、互換性用の環境変数を重視して確認するのがポイントです。&lt;/p&gt;
&lt;p&gt;元動画：&lt;a class=&#34;link&#34; href=&#34;https://www.bilibili.com/video/BV1cHoYBqE8k/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.bilibili.com/video/BV1cHoYBqE8k/&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>NVIDIA nvbandwidth とは何か：GPU 帯域テストツールの使い方</title>
        <link>https://knightli.com/ja/2026/04/24/nvidia-nvbandwidth-guide/</link>
        <pubDate>Fri, 24 Apr 2026 14:41:35 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/24/nvidia-nvbandwidth-guide/</guid>
        <description>&lt;p&gt;複数の &lt;code&gt;NVIDIA GPU&lt;/code&gt; 間の接続性能を調べているときや、&lt;code&gt;PCIe&lt;/code&gt;、&lt;code&gt;NVLink&lt;/code&gt;、ホストメモリと VRAM の間で実際にどれくらいの帯域が出ているか確認したいとき、&lt;code&gt;NVIDIA/nvbandwidth&lt;/code&gt; は知っておく価値のある小さなツールです。&lt;/p&gt;
&lt;p&gt;これは汎用的なベンチマークソフトではなく、大規模モデルのフレームワークに隠れているコマンドでもありません。NVIDIA がオープンソースで公開している、GPU 関連のメモリコピーにおける帯域とレイテンシを測定するための専用ツールです。理論帯域を見るだけではなく、&lt;code&gt;nvbandwidth&lt;/code&gt; は次のような実務的な問いに向いています。&lt;strong&gt;このマシンにある GPU と相互接続の組み合わせで、実際にどれだけの帯域が出るのか。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;1-nvbandwidth-は何をするツールか&#34;&gt;1. &lt;code&gt;nvbandwidth&lt;/code&gt; は何をするツールか
&lt;/h2&gt;&lt;p&gt;公式 README によると、&lt;code&gt;nvbandwidth&lt;/code&gt; は &lt;code&gt;NVIDIA GPU&lt;/code&gt; の帯域を測定するためのコマンドラインツールです。&lt;/p&gt;
&lt;p&gt;主に、さまざまな &lt;code&gt;memcpy&lt;/code&gt; パターンにおける転送性能を測ります。たとえば次のようなものです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPU -&amp;gt; GPU&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CPU -&amp;gt; GPU&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPU -&amp;gt; CPU&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;マルチノード環境での GPU 間転送&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この種のテストは、特に次のような場面で役立ちます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;マルチ GPU の学習や推論で相互接続のボトルネックを調べる&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NVLink&lt;/code&gt;、&lt;code&gt;PCIe&lt;/code&gt;、&lt;code&gt;C2C&lt;/code&gt; などのリンクが実際にどう動いているかを確認する&lt;/li&gt;
&lt;li&gt;サーバー構成、トポロジ、ドライバ、CUDA バージョンごとの差を比較する&lt;/li&gt;
&lt;li&gt;クラスタ導入前の基礎的なハードウェア検証を行う&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;要するに、&lt;code&gt;nvbandwidth&lt;/code&gt; が見ているのはモデルのスループットではなく、より下層の「データを運ぶ力」です。&lt;/p&gt;
&lt;h2 id=&#34;2-単なる-1-つのスコアを出すツールではない&#34;&gt;2. 単なる 1 つのスコアを出すツールではない
&lt;/h2&gt;&lt;p&gt;帯域テストというと最後に 1 つの数字だけが出るイメージを持つ人もいますが、&lt;code&gt;nvbandwidth&lt;/code&gt; の出力はもっと細かいです。&lt;/p&gt;
&lt;p&gt;各テストごとに行列形式で結果を出します。たとえば &lt;code&gt;device_to_device_memcpy_write_ce&lt;/code&gt; のようなテストでは、GPU の行列として各デバイス対の帯域が表示されます。これにより、「このマシンはだいたい速いかどうか」だけでなく、次のようなことも見えてきます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;どの GPU ペアが特に高速か&lt;/li&gt;
&lt;li&gt;どの経路が明らかに &lt;code&gt;PCIe&lt;/code&gt; に制限されているか&lt;/li&gt;
&lt;li&gt;一部の GPU ペアで異常に低い帯域が出ていないか&lt;/li&gt;
&lt;li&gt;マルチ GPU のトポロジが想定どおりか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;8 GPU サーバー、デュアルソケット構成、あるいはマルチノード環境を見ているなら、この行列形式の出力は単純な平均値より役に立つことが多いです。&lt;/p&gt;
&lt;h2 id=&#34;3-ce-と-sm-の-2-種類のコピーをどう理解するか&#34;&gt;3. &lt;code&gt;CE&lt;/code&gt; と &lt;code&gt;SM&lt;/code&gt; の 2 種類のコピーをどう理解するか
&lt;/h2&gt;&lt;p&gt;公式ドキュメントでは、テストを 2 種類に分けています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CE&lt;/code&gt;：&lt;code&gt;memcpy&lt;/code&gt; API に基づく copy engine 転送&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SM&lt;/code&gt;：kernel ベースの転送&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この 2 種類の結果は、必ずしも完全には一致しません。なぜなら、異なるコピー経路を表しているからです。&lt;br&gt;
まず通常のデバイス間転送を見たいなら、一般的には &lt;code&gt;CE&lt;/code&gt; を先に確認します。より細かい実行経路まで見たい場合は、続けて &lt;code&gt;SM&lt;/code&gt; を見るのがよいです。&lt;/p&gt;
&lt;p&gt;また README では、帯域の結果は既定で複数回の測定に対する中央値を使うと説明されています。新しいバージョンでは変動統計も追加されており、値の安定性を判断しやすくなっています。&lt;/p&gt;
&lt;h2 id=&#34;4-実行に必要な環境&#34;&gt;4. 実行に必要な環境
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;nvbandwidth&lt;/code&gt; は、ダウンロードしてそのまま実行できる単独バイナリではありません。標準的な CUDA 開発環境が前提です。&lt;/p&gt;
&lt;p&gt;現在の README にある基本要件は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CUDA Toolkit 11.x&lt;/code&gt; 以上&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C++17&lt;/code&gt; をサポートするコンパイラ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CMake 3.20+&lt;/code&gt;、推奨は &lt;code&gt;3.24+&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Boost program_options&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;利用可能な &lt;code&gt;CUDA&lt;/code&gt; デバイスと互換ドライバ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;マルチノード版を使う場合は要件がさらに上がります。README では次のように明記されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;マルチノード版のビルドには &lt;code&gt;CUDA Toolkit 12.3&lt;/code&gt; が必要&lt;/li&gt;
&lt;li&gt;ドライバは &lt;code&gt;550&lt;/code&gt; 以上が必要&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MPI&lt;/code&gt; が必要&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nvidia-imex&lt;/code&gt; サービスの設定が必要&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、これは一般的なデスクトップ向けというより、Linux の GPU サーバーやクラスタ向けのエンジニアリングツールと考えたほうが自然です。&lt;/p&gt;
&lt;h2 id=&#34;5-シングルノード版のビルドと実行方法&#34;&gt;5. シングルノード版のビルドと実行方法
&lt;/h2&gt;&lt;p&gt;シングルノード版のビルド手順はシンプルです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake .
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;Ubuntu&lt;/code&gt; / &lt;code&gt;Debian&lt;/code&gt; では、共通依存関係のインストールとビルドを行う &lt;code&gt;debian_install.sh&lt;/code&gt; スクリプトも用意されています。&lt;/p&gt;
&lt;p&gt;ビルド後は、まずヘルプを確認できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./nvbandwidth -h
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;よく使うオプションは次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-l&lt;/code&gt;：利用可能なテストを一覧表示する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-t&lt;/code&gt;：名前または番号で特定のテストを実行する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-p&lt;/code&gt;：プレフィックス指定でテストをまとめて実行する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-b&lt;/code&gt;：memcpy buffer サイズを設定する。既定値は &lt;code&gt;512 MiB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-i&lt;/code&gt;：測定反復回数を設定する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-j&lt;/code&gt;：&lt;code&gt;JSON&lt;/code&gt; で出力する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-H&lt;/code&gt;：ホストメモリ割り当てで huge pages を有効にする&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;まずは既定のテストを 1 回流したいだけなら、次のように実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./nvbandwidth
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;特定の項目だけ試したい場合、たとえばデバイス間コピーを 1 つだけ見るなら次のようにします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./nvbandwidth -t device_to_device_memcpy_read_ce
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;6-マルチノード対応がこのツールの特徴&#34;&gt;6. マルチノード対応がこのツールの特徴
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;nvbandwidth&lt;/code&gt; はシングルノードのマルチ GPU テストだけのツールではなく、マルチノード環境にも対応しています。&lt;/p&gt;
&lt;p&gt;README によると、マルチノード版のビルドは次のように行います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake -DMULTINODE&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; .
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;実行時は通常 &lt;code&gt;mpirun&lt;/code&gt; と組み合わせ、GPU ごとに 1 プロセスを割り当てて起動します。&lt;br&gt;
公式ドキュメントでは、参加するすべての rank が同じ multinode clique に属している必要があるとされており、MPI 環境では主に &lt;code&gt;multinode&lt;/code&gt; プレフィックスの付いたテストを実行することが推奨されています。&lt;/p&gt;
&lt;p&gt;このあたりからも、ワークステーションの簡単な自己診断用というより、高性能計算や大規模 GPU システム寄りのツールであることが分かります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;NVLink&lt;/code&gt; を使うマルチノード構成や、&lt;code&gt;GB200&lt;/code&gt; / &lt;code&gt;Grace Hopper&lt;/code&gt; のような複雑なプラットフォームを扱っているなら、一般的なコンシューマ GPU 環境よりも &lt;code&gt;nvbandwidth&lt;/code&gt; の価値はずっと高くなります。&lt;/p&gt;
&lt;h2 id=&#34;7-v09-では何が変わったか&#34;&gt;7. &lt;code&gt;v0.9&lt;/code&gt; では何が変わったか
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;2026 年 4 月 24 日&lt;/strong&gt; 時点で、GitHub Releases ページでは &lt;code&gt;nvbandwidth&lt;/code&gt; の最新バージョンは &lt;strong&gt;&lt;code&gt;v0.9&lt;/code&gt;&lt;/strong&gt;、公開日は &lt;strong&gt;2026 年 4 月 8 日&lt;/strong&gt; となっています。&lt;/p&gt;
&lt;p&gt;このリリースで特に注目しやすい更新点は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;帯域出力に変動統計を追加&lt;/li&gt;
&lt;li&gt;ホストメモリ向け huge pages 対応を追加（&lt;code&gt;Windows&lt;/code&gt; は対象外）&lt;/li&gt;
&lt;li&gt;デバイス間テストに pair sampling オプションを追加&lt;/li&gt;
&lt;li&gt;troubleshooting guide を追加&lt;/li&gt;
&lt;li&gt;シングルノードとマルチノードの実行経路を統一&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;加えて、エンジニアリング面で次の 2 点も実用的です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;実際の GPU アクセスにあまり依存しない CUDA アーキテクチャ検出に改善&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CUDA Toolkit 13.0+&lt;/code&gt; 環境で &lt;code&gt;Volta&lt;/code&gt;（&lt;code&gt;sm_70&lt;/code&gt; / &lt;code&gt;sm_72&lt;/code&gt;）サポートを廃止&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;初期の情報しか見ていなかった人にとっては、&lt;code&gt;v0.9&lt;/code&gt; はもはや単なる帯域測定の初期版ではありません。自動化、トラブルシュート、大規模システム検証へと明確に進んでいます。&lt;/p&gt;
&lt;h2 id=&#34;8-どんなときに使うとよいか&#34;&gt;8. どんなときに使うとよいか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;nvbandwidth&lt;/code&gt; が特に向いているのは次のようなケースです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;複数の &lt;code&gt;NVIDIA GPU&lt;/code&gt; 間で実際の相互接続帯域を確認したい&lt;/li&gt;
&lt;li&gt;ある GPU が帯域制限のある &lt;code&gt;PCIe&lt;/code&gt; スロットに挿さっている疑いがある&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NVLink&lt;/code&gt; 経路と非 &lt;code&gt;NVLink&lt;/code&gt; 経路を比較したい&lt;/li&gt;
&lt;li&gt;マルチノード GPU クラスタを構築していて、リンクを検証したい&lt;/li&gt;
&lt;li&gt;結果を &lt;code&gt;JSON&lt;/code&gt; で出して自動化パイプラインに組み込みたい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一方で、「学習はどれくらい速いか」「推論は何 tokens/s 出るか」といった問いにそのまま答えるツールではありません。&lt;br&gt;
その場合は、学習フレームワーク、推論エンジン、あるいは実際のワークロードでの測定と合わせて見る必要があります。&lt;/p&gt;
&lt;h2 id=&#34;9-このツールの価値をどう捉えるか&#34;&gt;9. このツールの価値をどう捉えるか
&lt;/h2&gt;&lt;p&gt;GPU の性能問題の多くは、実は計算性能そのものが足りないのではなく、データの通り道が想定どおりに機能していないことが原因です。&lt;/p&gt;
&lt;p&gt;たとえば次のようなケースです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPU 間で意図した接続経路が使われていない&lt;/li&gt;
&lt;li&gt;NUMA をまたぐアクセスで速度が落ちている&lt;/li&gt;
&lt;li&gt;一部の GPU ペアだけ帯域が異常に低い&lt;/li&gt;
&lt;li&gt;マルチノード通信の設定が不完全&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうした問題は、&lt;code&gt;nvidia-smi&lt;/code&gt; やモデルのスループットだけを見ていても特定しにくいことがあります。&lt;br&gt;
&lt;code&gt;nvbandwidth&lt;/code&gt; のような、より低レイヤで行列形式のテストツールは、相互接続レイヤで何が起きているかを可視化できる点が強みです。&lt;/p&gt;
&lt;p&gt;つまり、&lt;strong&gt;&lt;code&gt;nvbandwidth&lt;/code&gt; は NVIDIA GPU システム向けの帯域ヘルスチェック用コマンドラインツール&lt;/strong&gt;として理解すると分かりやすいです。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub プロジェクト: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NVIDIA/nvbandwidth&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NVIDIA/nvbandwidth&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Releases: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NVIDIA/nvbandwidth/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NVIDIA/nvbandwidth/releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>K近傍法入門：近くのデータの投票で機械学習の分類を理解する</title>
        <link>https://knightli.com/ja/2026/04/24/knn-algorithm-beginner-guide/</link>
        <pubDate>Fri, 24 Apr 2026 11:17:13 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/24/knn-algorithm-beginner-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;K近傍法&lt;/code&gt; は、&lt;code&gt;KNN&lt;/code&gt; や &lt;code&gt;k-NN&lt;/code&gt; とも書かれる、機械学習の入門にとても向いているアルゴリズムです。考え方はとても素朴です。新しいサンプルがどのクラスに属するかを判断したいとき、その周りで最も似ているいくつかのサンプルを見て、多数派のクラスを採用します。&lt;/p&gt;
&lt;p&gt;KNN を一言で説明するなら、こう言えます。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;近くにいるものに似やすい。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;たとえば、あなたが新しい街に引っ越してきて、近くで学生向けの朝食店を探しているとします。近所の 5 人に聞いたところ、4 人が同じ店をすすめました。おそらく、まずはその店を信じてみるでしょう。KNN が分類でやっていることも似ています。近くのデータを探し、多数派を見るのです。&lt;/p&gt;
&lt;h2 id=&#34;1-まず小さな例で理解する&#34;&gt;1. まず小さな例で理解する
&lt;/h2&gt;&lt;p&gt;ある果物がリンゴなのかオレンジなのかを判定したいとします。すでに分かっている果物には、次のような特徴があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;重さ&lt;/li&gt;
&lt;li&gt;色&lt;/li&gt;
&lt;li&gt;甘さ&lt;/li&gt;
&lt;li&gt;皮がざらざらしているか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ここに新しい果物が来ましたが、まだ何なのか分かりません。KNN は最初から複雑なルールを作るのではなく、既知の果物の中から「最も似ているもの」を直接探します。&lt;/p&gt;
&lt;p&gt;もし最も似ている 5 個の果物のうち、4 個がリンゴで 1 個がオレンジなら、KNN はこの新しい果物をリンゴである可能性が高いと判断します。&lt;/p&gt;
&lt;p&gt;ここでの &lt;code&gt;K&lt;/code&gt; は、「何個の近傍を見るか」という意味です。&lt;code&gt;K=5&lt;/code&gt; なら、最も近い 5 個のサンプルを見るということです。&lt;/p&gt;
&lt;h2 id=&#34;2-簡単なイメージ図&#34;&gt;2. 簡単なイメージ図
&lt;/h2&gt;&lt;p&gt;次の二次元の図で直感的に考えてみます。&lt;code&gt;A&lt;/code&gt; はリンゴ、&lt;code&gt;O&lt;/code&gt; はオレンジ、&lt;code&gt;?&lt;/code&gt; は分類したい新しい果物です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;甘さ ↑
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  高 |        A       A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     |
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     |           ?
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     |       A       O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     |
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  低 |   O       O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     +--------------------→ 重さ
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        軽い            重い
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;K=3&lt;/code&gt; と設定した場合、&lt;code&gt;?&lt;/code&gt; に最も近い 3 つの点を見ます。その 3 つの近傍に 2 個の &lt;code&gt;A&lt;/code&gt; と 1 個の &lt;code&gt;O&lt;/code&gt; があるなら、KNN は &lt;code&gt;?&lt;/code&gt; を &lt;code&gt;A&lt;/code&gt;、つまりリンゴと判断します。&lt;/p&gt;
&lt;p&gt;これが KNN の中心的な流れです。&lt;strong&gt;最も近い K 個の近傍を探し、投票する。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;3-knn-の基本ステップ&#34;&gt;3. KNN の基本ステップ
&lt;/h2&gt;&lt;p&gt;数式を使わずに見ると、KNN の分類手順はおおよそ次のようになります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;すでにクラスが分かっているデータを用意する&lt;/li&gt;
&lt;li&gt;クラスが分からない新しいサンプルが来る&lt;/li&gt;
&lt;li&gt;それがすべての既知サンプルとどれくらい似ているかを計算する&lt;/li&gt;
&lt;li&gt;最も似ている K 個のサンプルを見つける&lt;/li&gt;
&lt;li&gt;その K 個の中で最も多いクラスを確認する&lt;/li&gt;
&lt;li&gt;新しいサンプルをそのクラスに分類する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;これが KNN が理解しやすい理由です。一部のモデルのように、最初に大量のパラメータを訓練する必要はありません。KNN は訓練データを保存しておき、判定が必要になった時点で近傍を調べる方法に近いです。&lt;/p&gt;
&lt;p&gt;この特徴から、KNN はよく「遅延学習」と呼ばれます。ここでの「遅延」は悪い意味ではありません。訓練段階ではあまり計算せず、主な作業を予測時まで先送りするという意味です。&lt;/p&gt;
&lt;h2 id=&#34;4-近いとは何か&#34;&gt;4. 「近い」とは何か
&lt;/h2&gt;&lt;p&gt;KNN でいう「近い」は、必ずしも地図上の距離ではありません。多くの場合、「特徴が似ている」という意味です。&lt;/p&gt;
&lt;p&gt;果物を判定するなら、重さ、色、甘さが近い 2 つの果物は近いと考えられます。ユーザーの興味を予測するなら、閲覧履歴、クリック傾向、購入記録が似ている 2 人は近いと考えられます。&lt;/p&gt;
&lt;p&gt;つまり KNN で重要なのは「空間上の位置」ではなく、サンプルをどう表現するかです。&lt;/p&gt;
&lt;p&gt;よく使われる特徴には、次のようなものがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;商品の価格、重さ、販売数&lt;/li&gt;
&lt;li&gt;ユーザーの年齢、閲覧回数、購入頻度&lt;/li&gt;
&lt;li&gt;画像の色、質感、形&lt;/li&gt;
&lt;li&gt;テキスト内に特定の単語が出現するか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;特徴の選び方が良いかどうかは、KNN の結果に直接影響します。&lt;/p&gt;
&lt;h2 id=&#34;5-k-の値をどう選ぶか&#34;&gt;5. K の値をどう選ぶか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;K&lt;/code&gt; に固定の正解はありません。データに応じて選ぶ必要があります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;K&lt;/code&gt; が小さすぎる場合、たとえば &lt;code&gt;K=1&lt;/code&gt; では、モデルは最も近い 1 個のサンプルを強く信じます。これは敏感すぎることがあります。もしその最も近いサンプルがたまたまノイズなら、判断を間違えやすくなります。&lt;/p&gt;
&lt;p&gt;一方で &lt;code&gt;K&lt;/code&gt; が大きすぎると、モデルは多くの近傍を見すぎます。遠くてあまり関係のないサンプルまで結果に影響し、分類の境界がぼやけることがあります。&lt;/p&gt;
&lt;p&gt;人に意見を聞く場面に置き換えると分かりやすいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 人だけに聞く：個別の意見に引っ張られやすい&lt;/li&gt;
&lt;li&gt;多すぎる人に聞く：状況をよく知らない人まで混ざる&lt;/li&gt;
&lt;li&gt;近くの関連する数人に聞く：比較的安定しやすい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;二値分類では、投票が同数になるのを避けるために &lt;code&gt;3&lt;/code&gt;、&lt;code&gt;5&lt;/code&gt;、&lt;code&gt;7&lt;/code&gt; のような奇数の K を選ぶことがよくあります。&lt;/p&gt;
&lt;h2 id=&#34;6-knn-は分類だけではない&#34;&gt;6. KNN は分類だけではない
&lt;/h2&gt;&lt;p&gt;KNN の最も一般的な用途は分類です。たとえば次のような判断に使えます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;メールが迷惑メールかどうか&lt;/li&gt;
&lt;li&gt;画像に写っているのが猫か犬か&lt;/li&gt;
&lt;li&gt;ユーザーが離脱しそうか&lt;/li&gt;
&lt;li&gt;レビューが肯定的か否定的か&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし、KNN は回帰にも使えます。回帰とは、数値を予測することです。&lt;/p&gt;
&lt;p&gt;たとえば住宅価格を推定したい場合、その住宅に最も似ているいくつかの住宅を探し、それらの価格を参考にします。クラスに投票するのではなく、近傍の数値を組み合わせて推定します。&lt;/p&gt;
&lt;p&gt;簡単に言えば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;分類：近傍が投票し、クラスを選ぶ&lt;/li&gt;
&lt;li&gt;回帰：近傍の数値を参考にし、結果を推定する&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;7-重み付き-knn近い近傍ほど重要&#34;&gt;7. 重み付き KNN：近い近傍ほど重要
&lt;/h2&gt;&lt;p&gt;通常の KNN では、それぞれの近傍の投票力はほぼ同じです。しかし現実には、より近い近傍の方が信頼できることが多いです。&lt;/p&gt;
&lt;p&gt;たとえば 5 個の近傍のうち、1 個は新しいサンプルとほとんど同じで、残りの 4 個は少し似ているだけだとします。すべてを同じ重さで投票させるのは、あまり自然ではありません。&lt;/p&gt;
&lt;p&gt;そこで「重み付き KNN」という考え方があります。近い近傍ほど影響を大きくし、遠い近傍ほど影響を小さくします。&lt;/p&gt;
&lt;p&gt;これは直感的にも分かりやすいです。スマートフォンを買うとき、予算、用途、ブランドの好みが自分に近い人の助言は、一般的な意見より参考になりやすいからです。&lt;/p&gt;
&lt;h2 id=&#34;8-knn-の長所&#34;&gt;8. KNN の長所
&lt;/h2&gt;&lt;p&gt;KNN には、初心者にも理解しやすい長所があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;考え方が直感的で説明しやすい&lt;/li&gt;
&lt;li&gt;複雑な訓練過程が不要&lt;/li&gt;
&lt;li&gt;分類にも回帰にも使える&lt;/li&gt;
&lt;li&gt;境界が不規則な問題にも比較的柔軟&lt;/li&gt;
&lt;li&gt;新しいデータを追加しやすい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;機械学習を学び始めたばかりなら、KNN はとても良い出発点です。「サンプル」「特徴」「距離」「分類」「訓練データ」といった基本概念を理解する助けになります。&lt;/p&gt;
&lt;h2 id=&#34;9-knn-の限界&#34;&gt;9. KNN の限界
&lt;/h2&gt;&lt;p&gt;KNN には明確な弱点もあります。&lt;/p&gt;
&lt;p&gt;第一に、予測が遅くなることがあります。新しいサンプルが来るたびに、多くの既存サンプルと比較する必要があるためです。データ量が大きいと、計算コストが高くなります。&lt;/p&gt;
&lt;p&gt;第二に、特徴の尺度に大きく依存します。たとえばある特徴が「収入」で数千から数万の値を取り、別の特徴が「年齢」で数十程度だとします。何も処理しないと、収入という特徴が距離の判断に強く影響しすぎる可能性があります。&lt;/p&gt;
&lt;p&gt;そのため KNN を使う前には、異なる特徴を公平に比較できるようにデータを標準化することがよくあります。&lt;/p&gt;
&lt;p&gt;第三に、関係のない特徴に影響されやすいです。果物の種類を判定したいのに「購入日」のような無関係な情報を入れると、モデルが混乱することがあります。&lt;/p&gt;
&lt;p&gt;第四に、局所的なデータ分布に敏感です。あるクラスのサンプルが特に多い場合、そのクラスが投票で勝ちやすくなることがあります。&lt;/p&gt;
&lt;h2 id=&#34;10-k-means-と混同しやすい&#34;&gt;10. K-means と混同しやすい
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;KNN&lt;/code&gt; と &lt;code&gt;K-means&lt;/code&gt; はどちらも名前に &lt;code&gt;K&lt;/code&gt; が入っていますが、同じものではありません。&lt;/p&gt;
&lt;p&gt;KNN は教師あり学習です。通常、すでにラベルが付いたデータを使って、新しいサンプルを判断します。&lt;/p&gt;
&lt;p&gt;K-means はクラスタリングによく使われます。明確なラベルがないデータを、自動的にいくつかのグループに分ける方法です。&lt;/p&gt;
&lt;p&gt;簡単に覚えるなら：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KNN：近傍を見て、分類または回帰をする&lt;/li&gt;
&lt;li&gt;K-means：中心を探して、データをグループ分けする&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;11-knn-が向いている場面&#34;&gt;11. KNN が向いている場面
&lt;/h2&gt;&lt;p&gt;KNN は次のような場面に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;データ量が大きすぎない&lt;/li&gt;
&lt;li&gt;特徴を数値として表しやすい&lt;/li&gt;
&lt;li&gt;サンプル同士の「似ている度合い」に意味がある&lt;/li&gt;
&lt;li&gt;説明しやすい基準方法が必要&lt;/li&gt;
&lt;li&gt;分類の考え方が有効かを素早く試したい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;データ量が非常に大きい場合、特徴が非常に多い場合、または予測速度が重要な場合、KNN は最適ではないかもしれません。その場合は、より効率的な近傍探索方法と組み合わせる必要があります。&lt;/p&gt;
&lt;h2 id=&#34;12-初心者が覚えておきたいこと&#34;&gt;12. 初心者が覚えておきたいこと
&lt;/h2&gt;&lt;p&gt;KNN を学ぶとき、最初から複雑な数式に入る必要はありません。まずは次の直感を覚えておけば十分です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;KNN は「近傍」を使って新しいサンプルを判断する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;K&lt;/code&gt; は何個の近傍を見るかを表す&lt;/li&gt;
&lt;li&gt;分類では投票し、回帰では近傍の数値を参考にする&lt;/li&gt;
&lt;li&gt;特徴選択とデータ標準化が重要&lt;/li&gt;
&lt;li&gt;&lt;code&gt;K&lt;/code&gt; が小さすぎるとノイズに弱く、大きすぎると鈍くなりやすい&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;KNN の価値は、それ自体でいくつかの問題を解けることだけではありません。データをどう表すか、類似度をどう測るか、既存サンプルからどう予測を作るかという、機械学習の基本的な考え方を分かりやすく示してくれます。&lt;/p&gt;
&lt;p&gt;「似ているサンプルを探し、その近傍にもとづいて判断する」という点を理解できれば、KNN の中心はもうつかめています。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://zh.wikipedia.org/wiki/K-%E8%BF%91%E9%82%BB%E7%AE%97%E6%B3%95&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;K近傍法 - Wikipedia&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenAI が GPT-5.5 を発表：より強力なエージェント型コーディング、知識作業、研究支援</title>
        <link>https://knightli.com/ja/2026/04/24/openai-gpt-5-5-release/</link>
        <pubDate>Fri, 24 Apr 2026 08:39:56 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/24/openai-gpt-5-5-release/</guid>
        <description>&lt;p&gt;OpenAI は 2026 年 4 月 23 日に &lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/introducing-gpt-5-5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Introducing GPT-5.5&lt;/a&gt; を公開しました。公式ページを見る限り、今回の更新は単に「モデルが賢くなった」という話ではなく、複雑なタスクをどこまで継続して進められるかに重点があります。&lt;/p&gt;
&lt;p&gt;OpenAI は GPT-5.5 を、実際の仕事により適したモデルとして位置づけています。質問に答えるだけでなく、コードを書き、デバッグし、情報を調べ、データを分析し、文書やスプレッドシートを作成し、ソフトウェアを操作し、複数のツールを行き来しながらタスクを完了することが期待されています。&lt;/p&gt;
&lt;h2 id=&#34;1-gpt-55-はどこが強いのか&#34;&gt;1. GPT-5.5 はどこが強いのか
&lt;/h2&gt;&lt;p&gt;今回の発表ページで繰り返し強調されている方向性は、大きく次の 4 つです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;エージェント型コーディング&lt;/li&gt;
&lt;li&gt;コンピューター操作とツール利用&lt;/li&gt;
&lt;li&gt;知識作業&lt;/li&gt;
&lt;li&gt;初期段階の科学研究支援&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、GPT-5.5 の重点は短い質疑応答ではなく、より長い流れを持つタスクです。たとえばエンジニアリング上の問題は、「このコードをどう直すか」だけではありません。プロジェクト構造を理解し、失敗原因を特定し、関連ファイルを修正し、テストを追加し、結果を検証し、ユーザーが何度も指示しなくても前に進める必要があります。&lt;/p&gt;
&lt;p&gt;OpenAI は、GPT-5.5 が Codex のタスクでより少ない token を使うことも強調しています。これは実務上かなり重要です。コーディングエージェントは、ファイルを読み、コマンドを実行し、bug を直し始めると、token 消費がすぐに増えます。同じタスクを少ない手順で完了できれば、実際のコストと待ち時間の両方が下がります。&lt;/p&gt;
&lt;h2 id=&#34;2-コーディング能力が今回の中心的な見せ場&#34;&gt;2. コーディング能力が今回の中心的な見せ場
&lt;/h2&gt;&lt;p&gt;OpenAI は GPT-5.5 を、現時点で最も強力な agentic coding モデルだと説明しています。&lt;/p&gt;
&lt;p&gt;公開されている指標の中で、とくに注目したいものは次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Terminal-Bench 2.0&lt;/code&gt;：GPT-5.5 は &lt;code&gt;82.7%&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SWE-Bench Pro&lt;/code&gt;：GPT-5.5 は &lt;code&gt;58.6%&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;OpenAI 内部の &lt;code&gt;Expert-SWE&lt;/code&gt;：GPT-5.5 は GPT-5.4 を上回る&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの評価に共通しているのは、単一のアルゴリズム問題よりも、実際の開発フローに近いことです。特に Terminal-Bench のようなタスクでは、コマンドライン操作、計画、試行錯誤、ツール連携、複数ステップの検証が必要になります。&lt;/p&gt;
&lt;p&gt;日常的に開発する人にとって、ここでの意味は明確です。モデルがより大きなタスクを受け止められるかどうかは、長時間コンテキストを保てるか、自分の仮説を検証できるか、いつテストを走らせるべきかを判断できるか、変更がどこに影響するかを理解できるかにかかっています。&lt;/p&gt;
&lt;p&gt;Codex における GPT-5.5 の価値も、主にこうした振る舞いに表れます。コード断片を補完するだけのツールというより、エンジニアリング作業の一部を任せられる協力者に近づいています。&lt;/p&gt;
&lt;h2 id=&#34;3-知識作業が重要な利用シーンになっている&#34;&gt;3. 知識作業が重要な利用シーンになっている
&lt;/h2&gt;&lt;p&gt;コードを書くことに加えて、OpenAI は今回 GPT-5.5 をより広いオフィス作業の文脈にも置いています。&lt;/p&gt;
&lt;p&gt;公式発表では、GPT-5.5 は Codex で文書、スプレッドシート、スライド資料をよりうまく生成でき、業務調査、表計算モデル、ビジネス資料の整理にも向いているとされています。コンピューター操作能力と組み合わせると、その目標は単に助言することではなく、「情報を探す、内容を理解する、ツールを使う、出力を確認する、結果として整理する」という一連の流れに直接参加することです。&lt;/p&gt;
&lt;p&gt;発表ページでは、OpenAI 社内ですでにソフトウェアエンジニアリング、財務、コミュニケーション、マーケティング、データサイエンス、プロダクト管理など、多くの部門で Codex が使われていることにも触れています。ここで注目すべきなのは個別の事例ではなく、OpenAI が Codex を開発者向けツールから汎用的な仕事用ツールへ広げようとしている点です。&lt;/p&gt;
&lt;p&gt;ChatGPT では、GPT-5.5 Thinking が Plus、Pro、Business、Enterprise ユーザー向けに提供されます。GPT-5.5 Pro は、より難しい問題や高い正確性が必要な作業向けで、Pro、Business、Enterprise ユーザーが利用できます。&lt;/p&gt;
&lt;h2 id=&#34;4-研究能力は答えがうまいだけではない&#34;&gt;4. 研究能力は「答えがうまい」だけではない
&lt;/h2&gt;&lt;p&gt;GPT-5.5 は研究支援の面でも大きく紹介されています。&lt;/p&gt;
&lt;p&gt;OpenAI は、遺伝学、定量生物学、バイオインフォマティクス、数学証明などの領域で改善があると述べています。ここで重要なのは、モデルが知識を暗記しているかどうかではなく、より現実の研究に近い問題を扱えるかどうかです。データを読み、異常を見つけ、分析方法を提案し、結果を解釈し、中間結果に基づいてさらに進める必要があります。&lt;/p&gt;
&lt;p&gt;発表ページに登場する &lt;code&gt;GeneBench&lt;/code&gt; と &lt;code&gt;BixBench&lt;/code&gt; は、どちらも多段階の科学分析タスク寄りの評価です。OpenAI はさらに、カスタムハーネスを使った GPT-5.5 の内部版が Ramsey numbers に関する新しい証明の発見を助け、その証明が Lean で検証されたとも述べています。&lt;/p&gt;
&lt;p&gt;こうした事例を「AI がすでに独立して研究できる」と単純に捉えるべきではありません。ただし、モデルが質問応答ツールから研究協力者へ近づいていることは示しています。特に、コード、データ、論文、実験アイデアが混ざる場面では、GPT-5.5 の長い推論とツール利用能力がより重要になります。&lt;/p&gt;
&lt;h2 id=&#34;5-推論効率強くなっても大きく遅くならない&#34;&gt;5. 推論効率：強くなっても大きく遅くならない
&lt;/h2&gt;&lt;p&gt;見落としやすい点として、OpenAI は GPT-5.5 の実運用における per-token latency が GPT-5.4 と同等だと説明しています。&lt;/p&gt;
&lt;p&gt;通常、より大きく強力なモデルは高い遅延を伴います。今回 OpenAI は、推論システムの最適化によって、GPT-5.5 の能力を高めながら速度を維持したと強調しています。発表ページでは、Codex が本番トラフィックのパターンを分析し、負荷分散に関するヒューリスティックアルゴリズムを書いたことで、token 生成速度が &lt;code&gt;20%&lt;/code&gt; 以上向上したとも述べられています。&lt;/p&gt;
&lt;p&gt;この点は興味深いところです。モデルはインフラに提供されるだけでなく、自分自身を提供するインフラの改善にも役立っているからです。&lt;/p&gt;
&lt;h2 id=&#34;6-安全対策はより厳しくなるとくにサイバーセキュリティ領域&#34;&gt;6. 安全対策はより厳しくなる、とくにサイバーセキュリティ領域
&lt;/h2&gt;&lt;p&gt;GPT-5.5 はサイバーセキュリティ能力も強くなっているため、OpenAI は安全制限も同時に強化しています。&lt;/p&gt;
&lt;p&gt;公式説明では、GPT-5.5 はサイバーセキュリティ能力で GPT-5.4 より向上しているため、より厳格な分類器を導入するとされています。特に、高リスク活動、機微なサイバーセキュリティ関連リクエスト、繰り返しの悪用に対して厳しくなります。&lt;/p&gt;
&lt;p&gt;そのため、一部のユーザーはサイバーセキュリティ関連の作業で、より多くの拒否や制限に遭遇する可能性があります。OpenAI は Trusted Access for Cyber も用意しており、検証済みの防御目的のユーザーが不要な制限を受けにくくする仕組みを提供しています。&lt;/p&gt;
&lt;p&gt;一般的な開発者にとっては、合法的なセキュリティ強化、脆弱性修正、コード監査は引き続き支援される一方、高リスクな攻撃フローはより厳しく制御される、と理解すればよさそうです。&lt;/p&gt;
&lt;h2 id=&#34;7-利用可能範囲と-api-価格&#34;&gt;7. 利用可能範囲と API 価格
&lt;/h2&gt;&lt;p&gt;OpenAI の発表ページによると、GPT-5.5 の利用可能範囲は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT：GPT-5.5 Thinking は Plus、Pro、Business、Enterprise ユーザー向け&lt;/li&gt;
&lt;li&gt;ChatGPT：GPT-5.5 Pro は Pro、Business、Enterprise ユーザー向け&lt;/li&gt;
&lt;li&gt;Codex：GPT-5.5 は Plus、Pro、Business、Enterprise、Edu、Go プラン向け&lt;/li&gt;
&lt;li&gt;Codex：コンテキストウィンドウは &lt;code&gt;400K&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Codex Fast mode：生成速度は約 &lt;code&gt;1.5x&lt;/code&gt;、コストは &lt;code&gt;2.5x&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;API については、OpenAI は &lt;code&gt;gpt-5.5&lt;/code&gt; と &lt;code&gt;gpt-5.5-pro&lt;/code&gt; を近く提供するとしています。&lt;/p&gt;
&lt;p&gt;公式に示された API 価格は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;gpt-5.5&lt;/code&gt;：入力 &lt;code&gt;5 米ドル / 1M tokens&lt;/code&gt;、出力 &lt;code&gt;30 米ドル / 1M tokens&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gpt-5.5-pro&lt;/code&gt;：入力 &lt;code&gt;30 米ドル / 1M tokens&lt;/code&gt;、出力 &lt;code&gt;180 米ドル / 1M tokens&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gpt-5.5&lt;/code&gt; API のコンテキストウィンドウは &lt;code&gt;1M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Batch と Flex は標準 API 価格の半額&lt;/li&gt;
&lt;li&gt;Priority processing は標準価格の &lt;code&gt;2.5x&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この価格は多くの日常用途向けモデルより明らかに高いため、普通の雑談よりも、複雑な工程変更、長文書分析、オフィス自動化、研究支援、重要な業務フローのような高価値タスクに向いています。&lt;/p&gt;
&lt;h2 id=&#34;8-今回の発表をどう見るか&#34;&gt;8. 今回の発表をどう見るか
&lt;/h2&gt;&lt;p&gt;一言で言えば、GPT-5.5 の重点は、OpenAI がモデルを「質問に答えるもの」から「仕事を完了するもの」へさらに進めていることです。&lt;/p&gt;
&lt;p&gt;注目すべきなのは benchmark の点数だけではありません。いくつかの能力が合流し始めています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;より強い長時間タスク維持能力&lt;/li&gt;
&lt;li&gt;より安定したツール利用&lt;/li&gt;
&lt;li&gt;より良いエンジニアリング文脈理解&lt;/li&gt;
&lt;li&gt;文書、スプレッドシート、研究、業務フローへの適性&lt;/li&gt;
&lt;li&gt;より長いコンテキストと高い token 効率&lt;/li&gt;
&lt;li&gt;高リスク能力に対するより厳格な制御&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;開発者にとって最も試す価値があるのは、Codex での複雑なエンジニアリングタスクです。企業ユーザーにとっては、ツール、文書、業務プロセスをまたぐ一部の作業を、実際に納品できる成果物へ変えられるかが重要になります。&lt;/p&gt;
&lt;p&gt;GPT-5.5 は、チャット体験だけを対象にした小さな更新ではありません。OpenAI が「仕事の実行層としての AI」をさらに進める一歩に見えます。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/introducing-gpt-5-5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Introducing GPT-5.5 - OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>代表的な埋め込みモデルはどう選ぶべきか: OpenAI・BGE・E5・GTE・Jina の比較</title>
        <link>https://knightli.com/ja/2026/04/23/compare-openai-bge-e5-gte-jina-embedding-models/</link>
        <pubDate>Thu, 23 Apr 2026 15:23:47 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/23/compare-openai-bge-e5-gte-jina-embedding-models/</guid>
        <description>&lt;p&gt;RAG、セマンティック検索、ナレッジベース検索を始めると、多くの人が最初に同じ疑問にぶつかります。埋め込みモデルはたくさんあるけれど、結局どれを選べばいいのか、ということです。&lt;/p&gt;
&lt;p&gt;代表的なモデルは大きく二つに分けられます。一つは中国語・英語・多言語タスクを広くカバーする汎用テキスト埋め込みです。もう一つは中国語向けの用途により適していて、中国語検索、中国語 QA、中国語ナレッジベースでの性能を重視したものです。&lt;/p&gt;
&lt;p&gt;まず短い結論だけ言うなら、次のように考えると分かりやすいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;手間を減らして API をそのまま使いたいなら: &lt;code&gt;text-embedding-3-small&lt;/code&gt; または &lt;code&gt;text-embedding-3-large&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;中国語検索をやりたくて、かつオープンソースを自前で運用したいなら: &lt;code&gt;bge-base-zh-v1.5&lt;/code&gt;、&lt;code&gt;bge-m3&lt;/code&gt;、&lt;code&gt;gte-large-zh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;多言語にも対応したいなら: &lt;code&gt;multilingual-e5-base&lt;/code&gt;、&lt;code&gt;multilingual-e5-large&lt;/code&gt;、&lt;code&gt;jina-embeddings-v3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;中国語用途でコストを抑えたいなら: &lt;code&gt;bge-small-zh-v1.5&lt;/code&gt;、&lt;code&gt;gte-base-zh&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;1-まずは種類ごとに見る&#34;&gt;1. まずは種類ごとに見る
&lt;/h2&gt;&lt;h3 id=&#34;1-openai-系&#34;&gt;1. OpenAI 系
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;text-embedding-3-small&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;text-embedding-3-large&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この系統の特徴は、呼び出しが簡単で安定していることです。API を直接使って検索、RAG、分類、類似度マッチングを行うのに向いています。強みは「特定の中国語ベンチマークで飛び抜けて高得点」という点ではなく、全体としての使いやすさにあります。導入ハードルが低く、品質が安定していて、エンジニアリングコストも低いです。&lt;/p&gt;
&lt;p&gt;チームとしてモデルを自前でホストしたくない、推論サービスの運用もしたくないなら、OpenAI 系はたいてい最も時間を節約しやすい選択です。&lt;/p&gt;
&lt;h3 id=&#34;2-bge-系&#34;&gt;2. BGE 系
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;BAAI/bge-small-zh-v1.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BAAI/bge-base-zh-v1.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bge-m3&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;BGE は中国語検索で非常によく見かける系統です。&lt;code&gt;bge-small-zh-v1.5&lt;/code&gt; と &lt;code&gt;bge-base-zh-v1.5&lt;/code&gt; は中国語単一言語タスク寄りで、中国語セマンティック検索、ナレッジベース検索、FAQ マッチングに向いています。&lt;code&gt;bge-m3&lt;/code&gt; はより汎用的で、多言語、多粒度、より複雑な検索シナリオもカバーできます。&lt;/p&gt;
&lt;p&gt;データの大半が中国語テキストなら、BGE は候補に入れやすいモデル群です。&lt;/p&gt;
&lt;h3 id=&#34;3-e5-系&#34;&gt;3. E5 系
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;intfloat/multilingual-e5-base&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;multilingual-e5-large&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;E5 系の特徴は、多言語性能のバランスがよいことです。中国語と英語が混在する環境、クロスリンガル検索、国際向けコンテンツ基盤に向いています。中国語だけを見るモデルではなく、「異なる言語を一つの検索基盤にまとめる」ことを重視した設計です。&lt;/p&gt;
&lt;p&gt;コーパスが中国語だけでなく、英語、日本語、あるいはさらに多くの言語を含むなら、中国語専用モデルより E5 の方が安定しやすいです。&lt;/p&gt;
&lt;h3 id=&#34;4-gte-系&#34;&gt;4. GTE 系
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Alibaba-NLP/gte-base-zh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gte-large-zh&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GTE も中国語タスクでよく使われます。位置づけは BGE に近く、どちらも中国語検索の実用派です。比較的バランスが良く、導入のハードルも高くありません。中国語ナレッジベース、サイト内検索、社内ドキュメント検索に向いています。&lt;/p&gt;
&lt;p&gt;中国語オープンソースモデルを複数比較したいなら、GTE は一緒に評価する価値があります。&lt;/p&gt;
&lt;h3 id=&#34;5-jina-embeddings&#34;&gt;5. Jina Embeddings
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;jina-embeddings-v3&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Jina はより汎用的で、現代的な実装シナリオに寄った選択肢です。多言語検索、長文、Web コンテンツ処理などでよく使われます。「一つのモデルでより多くのタスク形態をカバーしたい」という文脈でよく名前が挙がり、embedding 層を統一したいチームに向いています。&lt;/p&gt;
&lt;p&gt;Web ページ、文書、多言語テキストなど、データソースが混在しているなら、Jina は試す価値のある候補です。&lt;/p&gt;
&lt;h2 id=&#34;2-中国語シナリオでよく使われるモデル&#34;&gt;2. 中国語シナリオでよく使われるモデル
&lt;/h2&gt;&lt;p&gt;対象を中国語シナリオに絞ると、代表的な候補はほぼ次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bge-small-zh-v1.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bge-base-zh-v1.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bge-m3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gte-base-zh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gte-large-zh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;multilingual-e5-base&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;multilingual-e5-large&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ここで大事なのは、「どれが絶対に一番強いか」ではなく、次の三つです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;データの中心は中国語か&lt;/li&gt;
&lt;li&gt;多言語対応が必要か&lt;/li&gt;
&lt;li&gt;品質、コスト、導入しやすさのどれを優先するか&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;3-これらのモデルを並べて考える&#34;&gt;3. これらのモデルを並べて考える
&lt;/h2&gt;&lt;h3 id=&#34;1-中国語性能だけを見る場合&#34;&gt;1. 中国語性能だけを見る場合
&lt;/h3&gt;&lt;p&gt;中国語ナレッジベース、中国語 QA、中国語文書検索であれば、まず BGE と GTE を見るのが一般的です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bge-small-zh-v1.5&lt;/code&gt;: 軽量で、コスト重視の場面に向く&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bge-base-zh-v1.5&lt;/code&gt;: 中国語用途でバランスが良い定番&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gte-base-zh&lt;/code&gt;: 軽量 BGE に近く、まずベースラインを作るのに向く&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gte-large-zh&lt;/code&gt;: 検索品質をより重視する場面に向く&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bge-m3&lt;/code&gt;: 中国語検索に加えて、より複雑な要件も視野に入れたいときに向く&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;コーパスがほぼ中国語だけなら、E5 も使えますが、最優先になることは多くありません。&lt;/p&gt;
&lt;h3 id=&#34;2-多言語が必要な場合&#34;&gt;2. 多言語が必要な場合
&lt;/h3&gt;&lt;p&gt;この場合は優先順位がかなり変わります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;multilingual-e5-base&lt;/code&gt; と &lt;code&gt;multilingual-e5-large&lt;/code&gt; は多言語を統一的に検索するのに向いています&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jina-embeddings-v3&lt;/code&gt; も多言語と汎用テキスト処理に向いています&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bge-m3&lt;/code&gt; は従来の中国語専用モデルより、多言語へ拡張しやすいです&lt;/li&gt;
&lt;li&gt;&lt;code&gt;text-embedding-3-small&lt;/code&gt; と &lt;code&gt;text-embedding-3-large&lt;/code&gt; は API ベースで素早く進めたい場合に向いています&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;中国語、英語、製品ドキュメント、Web コピー、ユーザー問い合わせが同じ基盤に入るなら、多言語モデルの方が後からの改修コストをかなり減らせます。&lt;/p&gt;
&lt;h3 id=&#34;3-推論コストと保存コストを抑えたい場合&#34;&gt;3. 推論コストと保存コストを抑えたい場合
&lt;/h3&gt;&lt;p&gt;ここでは軽量モデルが有利です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bge-small-zh-v1.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gte-base-zh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;multilingual-e5-base&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;text-embedding-3-small&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらは次のようなケースに向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文書量が多い&lt;/li&gt;
&lt;li&gt;更新頻度が高い&lt;/li&gt;
&lt;li&gt;大量のベクトル化が必要&lt;/li&gt;
&lt;li&gt;レイテンシとコストに敏感&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;データ規模が大きい場合、embedding の次元数、推論速度、インデックスサイズは総コストに直結します。そのため、まず小さいモデルでベースラインを作るのは堅実なやり方です。&lt;/p&gt;
&lt;h3 id=&#34;4-まず性能上限を優先したい場合&#34;&gt;4. まず性能上限を優先したい場合
&lt;/h3&gt;&lt;p&gt;より大きいモデルは、複雑な検索や高品質な再現率を求める場面に向いています。たとえば次のようなモデルです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;text-embedding-3-large&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;multilingual-e5-large&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gte-large-zh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bge-base-zh-v1.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bge-m3&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし、モデルが大きいほど本番体験が必ず良くなるわけではありません。多くのプロジェクトでは、本当のボトルネックはモデルそのものではなく、チャンク分割、取得件数、再ランキング、データクリーニング、評価方法にあります。&lt;/p&gt;
&lt;h2 id=&#34;4-各モデルはどんなタスクに向くか&#34;&gt;4. 各モデルはどんなタスクに向くか
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;モデル&lt;/th&gt;
          &lt;th&gt;向いている場面&lt;/th&gt;
          &lt;th&gt;ざっくりした判断&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;text-embedding-3-small&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;汎用検索、RAG、素早い導入&lt;/td&gt;
          &lt;td&gt;API 利用が簡単でコストにも優しい&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;text-embedding-3-large&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;品質重視の汎用検索&lt;/td&gt;
          &lt;td&gt;品質優先で実装負担も小さい&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;bge-small-zh-v1.5&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;中国語の軽量検索&lt;/td&gt;
          &lt;td&gt;中国語用途の定番入門モデル&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;bge-base-zh-v1.5&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;中国語ナレッジベース、FAQ、セマンティック検索&lt;/td&gt;
          &lt;td&gt;中国語シナリオでバランスが良い&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;bge-m3&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;中国語中心だが、より複雑な検索にも広げたい場合&lt;/td&gt;
          &lt;td&gt;拡張性が高い&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;multilingual-e5-base&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;多言語の基本検索&lt;/td&gt;
          &lt;td&gt;国際化プロジェクトでよく使われる&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;multilingual-e5-large&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;多言語で高品質な再現率が欲しい場合&lt;/td&gt;
          &lt;td&gt;より品質重視&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gte-base-zh&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;中国語の軽量検索&lt;/td&gt;
          &lt;td&gt;まずベースラインを作るのに向く&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gte-large-zh&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;中国語で品質重視の場面&lt;/td&gt;
          &lt;td&gt;BGE との比較対象として使いやすい&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;jina-embeddings-v3&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;多言語、Web、汎用テキストタスク&lt;/td&gt;
          &lt;td&gt;embedding 層を統一したいときに試す価値がある&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;5-実際の選定をどう進めるか&#34;&gt;5. 実際の選定をどう進めるか
&lt;/h2&gt;&lt;p&gt;論文を書くのではなく、実際にシステムを作るなら、選定手順はもっとシンプルで大丈夫です。&lt;/p&gt;
&lt;h3 id=&#34;シナリオ-1-中国語ナレッジベース&#34;&gt;シナリオ 1: 中国語ナレッジベース
&lt;/h3&gt;&lt;p&gt;まずは次の組み合わせを試します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bge-base-zh-v1.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gte-large-zh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bge-small-zh-v1.5&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;予算が厳しいなら小さいモデルから始めて、検索品質をより重視するなら大きいモデルへ広げます。&lt;/p&gt;
&lt;h3 id=&#34;シナリオ-2-中国語と英語が混在するナレッジベース&#34;&gt;シナリオ 2: 中国語と英語が混在するナレッジベース
&lt;/h3&gt;&lt;p&gt;まずは次を試します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;multilingual-e5-base&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;multilingual-e5-large&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;text-embedding-3-small&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;text-embedding-3-large&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;自前運用を避けたいなら OpenAI がより直接的です。自前でホストしたいなら、E5 の方が一般的です。&lt;/p&gt;
&lt;h3 id=&#34;シナリオ-3-今は中国語中心だが将来的に多言語へ広げる可能性がある&#34;&gt;シナリオ 3: 今は中国語中心だが、将来的に多言語へ広げる可能性がある
&lt;/h3&gt;&lt;p&gt;まずは次を試します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bge-m3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;multilingual-e5-base&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jina-embeddings-v3&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このタイプの場面で一番怖いのは、最初は中国語だけを前提に設計し、後からベクトル基盤を丸ごと作り直すことです。&lt;/p&gt;
&lt;h2 id=&#34;6-最後に大事なのはランキング1位ではない&#34;&gt;6. 最後に大事なのは「ランキング1位」ではない
&lt;/h2&gt;&lt;p&gt;埋め込みモデル選定で最も陥りやすい失敗は、公開ベンチマークの点数だけを見て、そのまま本番投入してしまうことです。&lt;/p&gt;
&lt;p&gt;より確実なのは、だいたい次の手順です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まず 2 から 4 個の候補モデルを選ぶ&lt;/li&gt;
&lt;li&gt;自分たちの実データで embedding を作る&lt;/li&gt;
&lt;li&gt;一度検索評価を回す&lt;/li&gt;
&lt;li&gt;そのうえでコスト、遅延、導入方法を合わせて最終判断する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;実際に結果を決めるのは、モデル名そのものよりも、そのモデルが自分のコーパス、チャンク戦略、クエリ形式に合っているかどうかだからです。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;実用的な結論だけ覚えるなら、次のように整理できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;中国語優先: &lt;code&gt;bge-base-zh-v1.5&lt;/code&gt;、&lt;code&gt;gte-large-zh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;コスト優先: &lt;code&gt;bge-small-zh-v1.5&lt;/code&gt;、&lt;code&gt;gte-base-zh&lt;/code&gt;、&lt;code&gt;text-embedding-3-small&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;多言語優先: &lt;code&gt;multilingual-e5-base&lt;/code&gt;、&lt;code&gt;multilingual-e5-large&lt;/code&gt;、&lt;code&gt;jina-embeddings-v3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;API をそのまま使いたい: &lt;code&gt;text-embedding-3-small&lt;/code&gt;、&lt;code&gt;text-embedding-3-large&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;中国語と将来の拡張性を両立したい: &lt;code&gt;bge-m3&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;すべてのプロジェクトに合う単一のモデルはありませんが、多くのプロジェクトでは、まずこの数グループから第一候補をかなり素早く絞り込めます。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>画像ベクトル化とは何か: ピクセル画像を検索・分析可能なベクトル表現に変える</title>
        <link>https://knightli.com/ja/2026/04/23/what-is-image-vectorization-vector-search-vision-workflow/</link>
        <pubDate>Thu, 23 Apr 2026 15:08:19 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/23/what-is-image-vectorization-vector-search-vision-workflow/</guid>
        <description>&lt;p&gt;画像そのものは昔から大量にありますが、画像がそのままシステムに理解され、活用されるわけではありません。&lt;/p&gt;
&lt;p&gt;人間であれば、画像の中に猫がいるか、同じ商品か、ある種の異常欠陥かといったことを比較的すぐ見分けられます。しかしシステムにとって、生の画像はまずピクセルの並びです。追加の処理がなければ、それは検索、クラスタリング、推薦、認識に直接使えるデータというより、色の点の集まりに近いものです。&lt;/p&gt;
&lt;p&gt;この一歩を解決するのが画像ベクトル化です。画像をピクセルベースのファイルから、機械が効率よく比較・計算できるベクトル表現へ変換します。画像検索、類似画像推薦、視覚検索、画像クラスタリング、マルチモーダル理解といった機能の多くは、実際にはこの層の上に成り立っています。&lt;/p&gt;
&lt;h2 id=&#34;1-画像ベクトル化とは何か&#34;&gt;1. 画像ベクトル化とは何か
&lt;/h2&gt;&lt;p&gt;最短で言えば、こうなります。&lt;/p&gt;
&lt;p&gt;画像ベクトル化とは、画像をその特徴を表す数値ベクトルへ変換することです。&lt;/p&gt;
&lt;p&gt;このベクトルは人間が読むためのものではなく、モデルや検索システムが使うためのものです。価値があるのは、画像が単なるファイルではなく、類似度比較、順位付け、計算の対象になるデータオブジェクトへ変わることにあります。&lt;/p&gt;
&lt;p&gt;たとえば猫の画像を考えると、元のファイルにはピクセル情報が保存されています。ベクトル化のあと、システムが受け取るのは固定長の数値ベクトルです。このベクトルに「これは猫」と直接書かれているわけではありませんが、輪郭、質感、色分布、局所構造、意味的な特徴などが符号化されています。だから他の画像との距離計算を行い、どれがより似ているかを判断できるようになります。&lt;/p&gt;
&lt;p&gt;つまり画像ベクトル化が変えるのは、画像そのものよりも、画像をシステムがどう扱えるかです。&lt;/p&gt;
&lt;h2 id=&#34;2-なぜ生のピクセルだけでは足りないのか&#34;&gt;2. なぜ生のピクセルだけでは足りないのか
&lt;/h2&gt;&lt;p&gt;生のピクセルでも計算はできますが、効果と効率の両方に限界があります。&lt;/p&gt;
&lt;p&gt;主な問題は次の 3 つです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;次元数が高く、直接比較のコストが大きい&lt;/li&gt;
&lt;li&gt;ピクセルの近さは意味の近さと一致しない&lt;/li&gt;
&lt;li&gt;照明、トリミング、背景、解像度の違いで結果がぶれやすい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;典型例は商品画像検索です。人間から見れば、撮影角度や背景やサイズが違っても同じ種類の商品だと分かることがあります。しかしピクセルをそのまま比較すると、システムは別物だと判断しやすくなります。&lt;/p&gt;
&lt;p&gt;ベクトル化の意味は、「似ているか」をピクセル比較から、より意味や特徴に近い比較へ移すことにあります。&lt;/p&gt;
&lt;h2 id=&#34;3-画像ベクトル化は通常どう進むのか&#34;&gt;3. 画像ベクトル化は通常どう進むのか
&lt;/h2&gt;&lt;p&gt;実際の画像ベクトル化は、単一の処理ではなく、次のようなパイプラインで行われることが多いです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;前処理を行う&lt;/li&gt;
&lt;li&gt;画像特徴を抽出する&lt;/li&gt;
&lt;li&gt;特徴を固定長ベクトルへ圧縮する&lt;/li&gt;
&lt;li&gt;ベクトル DB や検索システムに保存する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;それぞれの段階が最終品質に影響します。&lt;/p&gt;
&lt;h3 id=&#34;1-前処理&#34;&gt;1. 前処理
&lt;/h3&gt;&lt;p&gt;前処理には一般に次のようなものがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;画像サイズのリサイズ&lt;/li&gt;
&lt;li&gt;入力の正規化&lt;/li&gt;
&lt;li&gt;一部ノイズの除去&lt;/li&gt;
&lt;li&gt;色形式や入力形式の統一&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;目的は見た目をきれいにすることではなく、後段のモデル入力を安定させることです。&lt;/p&gt;
&lt;h3 id=&#34;2-特徴抽出&#34;&gt;2. 特徴抽出
&lt;/h3&gt;&lt;p&gt;ここが画像ベクトル化の中心です。&lt;/p&gt;
&lt;p&gt;初期の方法では &lt;code&gt;SIFT&lt;/code&gt;、&lt;code&gt;SURF&lt;/code&gt;、&lt;code&gt;HOG&lt;/code&gt; のような手設計特徴がよく使われ、エッジ、コーナー、局所構造の抽出に強みがありました。現在は深層学習モデルがこの役割を担うことが多く、代表例としては次のようなものがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ResNet&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VGG&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Inception&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ViT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CLIP&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらは画像をより高次で抽象的な視覚特徴へ変換します。従来の特徴工学と比べると、意味表現に強く、類似検索、マルチモーダル理解、大規模クラスタリングに向いています。&lt;/p&gt;
&lt;h3 id=&#34;3-ベクトル生成&#34;&gt;3. ベクトル生成
&lt;/h3&gt;&lt;p&gt;特徴抽出のあと、内部表現を &lt;code&gt;512&lt;/code&gt; 次元、&lt;code&gt;768&lt;/code&gt; 次元、&lt;code&gt;1024&lt;/code&gt; 次元のような固定長ベクトルへ圧縮することが一般的です。&lt;/p&gt;
&lt;p&gt;ここで大事なのは、次元数が高いほどよいという話ではないことです。表現力、保存コスト、検索速度のバランスを取る必要があります。&lt;/p&gt;
&lt;h3 id=&#34;4-保存と検索&#34;&gt;4. 保存と検索
&lt;/h3&gt;&lt;p&gt;生成されたベクトルは、通常の画像ファイルとして管理されるのではなく、ベクトル検索に対応した仕組みに入ります。たとえば:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Faiss&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Milvus&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;ベクトル機能を持つ検索システム&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この段階で、画像は近似最近傍検索、クラスタリング、類似度ランキングの対象になります。&lt;/p&gt;
&lt;h2 id=&#34;4-技術的な流れはどう進化してきたか&#34;&gt;4. 技術的な流れはどう進化してきたか
&lt;/h2&gt;&lt;p&gt;画像ベクトル化自体は新しい概念ではありません。ここ数年で大きく変わったのは、性能と応用範囲です。&lt;/p&gt;
&lt;p&gt;大まかには次の 3 段階で見られます。&lt;/p&gt;
&lt;h3 id=&#34;1-従来型の特徴工学&#34;&gt;1. 従来型の特徴工学
&lt;/h3&gt;&lt;p&gt;この段階では、エッジ、テクスチャ、コーナー、局所記述子など、人間が設計した特徴が中心でした。成熟していて解釈しやすい反面、複雑な場面や意味理解には限界がありました。&lt;/p&gt;
&lt;h3 id=&#34;2-cnn-主導の段階&#34;&gt;2. CNN 主導の段階
&lt;/h3&gt;&lt;p&gt;畳み込みニューラルネットワークによって、画像ベクトル化は特徴を自動学習する段階に入りました。手設計特徴よりも複雑で安定した視覚表現を学べるようになり、分類、認識、類似検索に強くなりました。&lt;/p&gt;
&lt;h3 id=&#34;3-transformer-とマルチモーダルの段階&#34;&gt;3. Transformer とマルチモーダルの段階
&lt;/h3&gt;&lt;p&gt;ここでは画像ベクトル化が単なる視覚特徴から、画像とテキストの意味整合へ進みました。&lt;code&gt;ViT&lt;/code&gt; や &lt;code&gt;CLIP&lt;/code&gt; は画像認識だけのためではなく、画像をテキスト、ラベル、知識ベースと一緒に扱う大きなマルチモーダル系に接続します。&lt;/p&gt;
&lt;p&gt;そのため、現代の画像検索は画像から画像を探すだけでなく、テキストから画像を探したり、画像とテキストを混在させた検索を行ったりできます。&lt;/p&gt;
&lt;h2 id=&#34;5-よくある応用シーン&#34;&gt;5. よくある応用シーン
&lt;/h2&gt;&lt;p&gt;画像ベクトル化は研究用に限られません。実務でもかなり使いどころがあります。&lt;/p&gt;
&lt;h3 id=&#34;1-類似画像検索&#34;&gt;1. 類似画像検索
&lt;/h3&gt;&lt;p&gt;もっとも分かりやすい用途です。&lt;/p&gt;
&lt;p&gt;画像をベクトルに変えることで、次のようなことができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;画像から画像を探す&lt;/li&gt;
&lt;li&gt;重複画像を検出する&lt;/li&gt;
&lt;li&gt;類似商品を対応付ける&lt;/li&gt;
&lt;li&gt;視覚的な重複排除を行う&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;EC、コンテンツプラットフォーム、メディア資産管理などでよく使われます。&lt;/p&gt;
&lt;h3 id=&#34;2-推薦システム&#34;&gt;2. 推薦システム
&lt;/h3&gt;&lt;p&gt;多くの推薦問題は、ある画像がユーザーの直前の閲覧内容に似ているかどうかに関係しています。&lt;/p&gt;
&lt;p&gt;ベクトル化により、画像内容そのものを推薦ロジックに組み込めるようになります。テキストラベルや手動カテゴリだけに頼らずに済むため、商品推薦、コンテンツ推薦、広告マッチングで有効です。&lt;/p&gt;
&lt;h3 id=&#34;3-画像クラスタリングと自動分類&#34;&gt;3. 画像クラスタリングと自動分類
&lt;/h3&gt;&lt;p&gt;画像数が大きくなると、人手で整理するのは非常に遅くなります。&lt;/p&gt;
&lt;p&gt;ベクトル化しておけば、まず類似度でまとめたうえで次のようなことができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;画像アーカイブ&lt;/li&gt;
&lt;li&gt;シーンごとのグルーピング&lt;/li&gt;
&lt;li&gt;素材整理&lt;/li&gt;
&lt;li&gt;自動タグ候補の提示&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;製造、医療、教育、メディアコンテンツ管理などでよく見られます。&lt;/p&gt;
&lt;h3 id=&#34;4-異常検知と品質検査&#34;&gt;4. 異常検知と品質検査
&lt;/h3&gt;&lt;p&gt;正常サンプルが安定してベクトル表現できていれば、通常分布から外れた画像を見つけやすくなります。&lt;/p&gt;
&lt;p&gt;典型例は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;工業的な欠陥検出&lt;/li&gt;
&lt;li&gt;監視映像の異常認識&lt;/li&gt;
&lt;li&gt;帳票や画像診断データの異常スクリーニング&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ここでのベクトル化は最終判定そのものではなく、比較やモデリングに適した入力へ画像を変える役割を果たします。&lt;/p&gt;
&lt;h3 id=&#34;5-マルチモーダル検索と画像テキスト理解&#34;&gt;5. マルチモーダル検索と画像・テキスト理解
&lt;/h3&gt;&lt;p&gt;これは現在とくに重要な領域です。&lt;/p&gt;
&lt;p&gt;画像とテキストの両方が近いベクトル空間に写像されれば、次のようなことが可能になります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;テキストから画像を探す&lt;/li&gt;
&lt;li&gt;画像とテキストを対応付ける&lt;/li&gt;
&lt;li&gt;画像内容ベースの検索を行う&lt;/li&gt;
&lt;li&gt;マルチモーダル知識検索を行う&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは生成 AI、視覚質問応答、企業向けの検索拡張システムとも自然に接続できます。&lt;/p&gt;
&lt;h2 id=&#34;6-企業導入で実際にぶつかる論点&#34;&gt;6. 企業導入で実際にぶつかる論点
&lt;/h2&gt;&lt;p&gt;画像ベクトル化は概念としては分かりやすくても、実装や運用では別の難しさがあります。&lt;/p&gt;
&lt;h3 id=&#34;1-ベクトル次元とコストのバランス&#34;&gt;1. ベクトル次元とコストのバランス
&lt;/h3&gt;&lt;p&gt;次元が低すぎると表現力が不足し、高すぎると保存コストや検索コストが増えます。これは一律の正解がある問題ではなく、データ量、応答速度、精度要件と合わせて決める必要があります。&lt;/p&gt;
&lt;h3 id=&#34;2-モデルが場面をまたいで一般化するか&#34;&gt;2. モデルが場面をまたいで一般化するか
&lt;/h3&gt;&lt;p&gt;公開データセットで良い性能が出たモデルでも、自社の画像で同じように効くとは限りません。商品画像、工業画像、医用画像、監視画像では分布がかなり違うため、個別評価が必要になることが多いです。&lt;/p&gt;
&lt;h3 id=&#34;3-検索基盤がスケールに耐えられるか&#34;&gt;3. 検索基盤がスケールに耐えられるか
&lt;/h3&gt;&lt;p&gt;画像数が数万から数百万、数千万へ増えると、ベクトル生成は前半にすぎません。インデックス設計、リコール戦略、更新方法、オンライン問い合わせ性能が、実際の体験を左右します。&lt;/p&gt;
&lt;h3 id=&#34;4-ベクトル化だけでは業務閉ループにならない&#34;&gt;4. ベクトル化だけでは業務閉ループにならない
&lt;/h3&gt;&lt;p&gt;ここは見落とされやすい点です。&lt;/p&gt;
&lt;p&gt;ベクトル化が解決するのは、画像を計算可能な対象へ変えることです。しかしそれだけで完成ではありません。実際には次のようなものも必要です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;検索ロジック&lt;/li&gt;
&lt;li&gt;ラベル体系&lt;/li&gt;
&lt;li&gt;評価基準&lt;/li&gt;
&lt;li&gt;人手レビューの流れ&lt;/li&gt;
&lt;li&gt;業務システムとの接続方法&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうした部分がつながっていなければ、ベクトルそのものは自動的に価値を生みません。&lt;/p&gt;
&lt;h2 id=&#34;7-どう価値を見るべきか&#34;&gt;7. どう価値を見るべきか
&lt;/h2&gt;&lt;p&gt;技術用語として見ると、画像ベクトル化は土台の言葉に見えます。しかし業務の観点から見ると、その価値はかなり具体的です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;画像に検索可能性を与える&lt;/li&gt;
&lt;li&gt;類似度比較をピクセル層から意味層へ移す&lt;/li&gt;
&lt;li&gt;画像を推薦、検索、クラスタリング、認識の流れへ入れる&lt;/li&gt;
&lt;li&gt;視覚データを分析や自動化の対象に変える&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは、視覚データを AI システムに入れるための標準的な入口だと考えると分かりやすいです。この一歩がなければ、多くの画像関連機能はファイル管理の延長にとどまります。この一歩があるからこそ、画像は意思決定や自動処理に使えるデータ資産になります。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;画像ベクトル化は、単独の小技ではなく、現代の視覚システムにおける基礎層です。&lt;/p&gt;
&lt;p&gt;やっていること自体は難解ではありません。画像を「ピクセルの集まり」から「検索・比較・分析できるベクトル表現」へ変えることです。しかし、その一歩があるかどうかで、画像が AI、検索、推薦、マルチモーダル活用の流れに本当に入れるかどうかが決まります。&lt;/p&gt;
&lt;p&gt;ひと言で覚えるなら、こうです。&lt;/p&gt;
&lt;p&gt;画像ベクトル化の本質は、画像圧縮ではなく、画像を機械が本当に使える表現へ変えることです。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>AI用語解説: Agent、MCP、RAG、Token をわかりやすく整理する</title>
        <link>https://knightli.com/ja/2026/04/23/ai-terms-agent-mcp-rag-token-explained/</link>
        <pubDate>Thu, 23 Apr 2026 13:13:40 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/23/ai-terms-agent-mcp-rag-token-explained/</guid>
        <description>&lt;p&gt;AI に触れ始めたばかりのとき、人を遠ざけやすいのはモデルそのものより、会話の中に次々出てくる用語です。&lt;code&gt;Agent&lt;/code&gt;、&lt;code&gt;MCP&lt;/code&gt;、&lt;code&gt;RAG&lt;/code&gt;、&lt;code&gt;AIGC&lt;/code&gt;、&lt;code&gt;Token&lt;/code&gt; はどれも見覚えはあっても、やさしく説明されないと本当の意味まではつかみにくいものです。&lt;/p&gt;
&lt;p&gt;この記事では、よくある入門向けの説明の流れに沿って、AI で頻出する 10 個の用語を覚えやすい形にまとめます。学術的に厳密に説明することよりも、日常的な AI の話題についていける基本イメージを作ることを目的にしています。&lt;/p&gt;
&lt;h2 id=&#34;10-個の代表的な-ai-用語は何を意味するのか&#34;&gt;10 個の代表的な AI 用語は何を意味するのか
&lt;/h2&gt;&lt;h3 id=&#34;1-agent-会話だけでなく実行もする-ai&#34;&gt;1. Agent: 会話だけでなく実行もする AI
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Agent&lt;/code&gt; は、実際に作業を進めてくれる AI アシスタントだと考えると分かりやすいです。&lt;/p&gt;
&lt;p&gt;普通のチャットボットは、質問すると答えるという形にとどまりがちです。&lt;code&gt;Agent&lt;/code&gt; はそこから一歩進み、タスクを分解し、手順を組み立て、ツールを呼び出し、最後に結果を返します。資料整理、調査、文書生成のような依頼でも、助言だけで終わらず、一連の動作をつないで実行することがあります。&lt;/p&gt;
&lt;p&gt;だから &lt;code&gt;Agent&lt;/code&gt; の本質は、話せるかどうかではなく、動けるかどうかにあります。&lt;/p&gt;
&lt;h3 id=&#34;2-openclaw-pc-に常駐する-ai-アシスタント&#34;&gt;2. OpenClaw: PC に常駐する AI アシスタント
&lt;/h3&gt;&lt;p&gt;ここでの &lt;code&gt;OpenClaw&lt;/code&gt; は、PC の中に住む AI アシスタントのようなものとして説明されています。&lt;/p&gt;
&lt;p&gt;この種のツールは、デスクトップ操作に近い AI 支援だと考えると分かりやすいです。文字入力を受け取るだけでなく、画面を見たり、ローカルツールを呼び出したり、手順に沿って作業したりすることがあります。一般的な Web チャットと比べると、実際の操作能力がより重視されます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Agent&lt;/code&gt; が実行型 AI という抽象的な概念だとすれば、こうしたデスクトップ型アシスタントは、その考え方の PC 上での具体例だと言えます。&lt;/p&gt;
&lt;h3 id=&#34;3-skills-agent-に追加する能力パック&#34;&gt;3. Skills: Agent に追加する能力パック
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Skills&lt;/code&gt; は、&lt;code&gt;Agent&lt;/code&gt; の機能モジュールや操作ルールだと捉えられます。&lt;/p&gt;
&lt;p&gt;同じ &lt;code&gt;Agent&lt;/code&gt; でも、どの &lt;code&gt;Skills&lt;/code&gt; を持つかによって得意分野が変わります。文章作成寄りのものもあれば、データ整理向けのものもあり、コード処理に向いたものもあります。スマートフォンのアプリに少し似ていますし、再利用できるワークフロー集にも近いです。&lt;/p&gt;
&lt;p&gt;つまり、モデルそのものが急に賢くなったというより、背後にあるルール、ツール、手順が明確になった結果だと言えます。&lt;/p&gt;
&lt;h3 id=&#34;4-mcp-ai-が外部ツールにつながるための共通方式&#34;&gt;4. MCP: AI が外部ツールにつながるための共通方式
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;MCP&lt;/code&gt; は &lt;code&gt;Model Context Protocol&lt;/code&gt; の略です。&lt;/p&gt;
&lt;p&gt;身近な比喩で言えば、AI の世界における &lt;code&gt;Type-C&lt;/code&gt; 端子のようなものです。以前はモデルを別々のツールにつなぐたびに個別実装が必要になりがちでしたが、共通プロトコルがあると接続方法を標準化しやすくなります。&lt;/p&gt;
&lt;p&gt;多くの人にとって大事なのは、&lt;code&gt;MCP&lt;/code&gt; が「モデルが答えられるかどうか」の話ではなく、「モデルが外部ツールや外部リソースに安全かつ安定して接続するにはどうするか」の話だという点です。&lt;/p&gt;
&lt;h3 id=&#34;5-ガチャ-ai-生成にはランダムさがある&#34;&gt;5. ガチャ: AI 生成にはランダムさがある
&lt;/h3&gt;&lt;p&gt;「ガチャ」という表現は、&lt;code&gt;AI&lt;/code&gt; 画像生成、動画生成、クリエイティブ用途でよく使われます。&lt;/p&gt;
&lt;p&gt;意味はシンプルです。同じプロンプトで、同じ方向性を指定しても、毎回まったく同じ結果になるとは限りません。すごく良い結果が出ることもあれば、明らかに崩れることもあります。そのため、何度も生成して当たりを引く感覚がゲームのガチャにたとえられます。&lt;/p&gt;
&lt;p&gt;ここで押さえておきたいのは、AI 生成は固定的な公式ではなく、確率的な揺らぎを含んだプロセスだということです。&lt;/p&gt;
&lt;h3 id=&#34;6-api-アプリとモデルをつなぐ入口&#34;&gt;6. API: アプリとモデルをつなぐ入口
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;API&lt;/code&gt; は &lt;code&gt;Application Programming Interface&lt;/code&gt; の略です。&lt;/p&gt;
&lt;p&gt;プログラム同士がやり取りするための標準的な入口だと考えると分かりやすいです。自分のアプリ、スクリプト、エディタからモデルサービスを呼び出すときは、実質的に &lt;code&gt;API&lt;/code&gt; を通じてリクエストを送り、結果を受け取っています。&lt;/p&gt;
&lt;p&gt;モデルサービスをレストランにたとえるなら:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;メニューは &lt;code&gt;API&lt;/code&gt; ドキュメント&lt;/li&gt;
&lt;li&gt;注文は &lt;code&gt;API&lt;/code&gt; リクエスト&lt;/li&gt;
&lt;li&gt;厨房から料理が返ってくるのはモデルの応答&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、見た目は違うツールでも、裏側では何らかの &lt;code&gt;API&lt;/code&gt; を呼んでいることが多いです。&lt;/p&gt;
&lt;h3 id=&#34;7-マルチモーダル-ai-は文字だけを扱うわけではない&#34;&gt;7. マルチモーダル: AI は文字だけを扱うわけではない
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;マルチモーダル&lt;/code&gt; とは、AI が文字の読み書きだけに限られず、複数の種類の情報を扱えることを指します。&lt;/p&gt;
&lt;p&gt;たとえば画像を見たり、音声を理解したり、動画を解釈したり、画像を生成したり、リアルタイムの音声や映像のやり取りを支えたりできます。文字しか扱えなかった初期のモデルと比べると、「見る・聞く・話す・書く」に近い能力を併せ持つ方向へ進んでいます。&lt;/p&gt;
&lt;p&gt;だからこそ、今の AI 製品は単なるテキスト入力欄だけでは語れなくなっています。&lt;/p&gt;
&lt;h3 id=&#34;8-rag-先に資料を探しそのうえで答えを作る&#34;&gt;8. RAG: 先に資料を探し、そのうえで答えを作る
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;RAG&lt;/code&gt; は &lt;code&gt;Retrieval-Augmented Generation&lt;/code&gt; の略です。&lt;/p&gt;
&lt;p&gt;これはとても実務的な課題に向いています。モデルの学習データには時点の限界があり、社内の最新資料、サポート記録、業務ルールを自動では知りません。&lt;code&gt;RAG&lt;/code&gt; は、まず指定した資料群から関連情報を探し、その内容を踏まえて回答を生成する考え方です。&lt;/p&gt;
&lt;p&gt;価値が出やすい点は主に 3 つあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;回答が実際の資料に寄りやすくなる&lt;/li&gt;
&lt;li&gt;どの資料を根拠にしたか追いやすい&lt;/li&gt;
&lt;li&gt;新しい資料を追加すれば知識を更新しやすい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、企業向けナレッジベース、AI カスタマーサポート、社内 Q&amp;amp;A では &lt;code&gt;RAG&lt;/code&gt; がよく使われます。&lt;/p&gt;
&lt;h3 id=&#34;9-aigc-ai-が作るコンテンツ全体を指す言葉&#34;&gt;9. AIGC: AI が作るコンテンツ全体を指す言葉
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;AIGC&lt;/code&gt; は &lt;code&gt;AI Generated Content&lt;/code&gt; の略です。&lt;/p&gt;
&lt;p&gt;これは単独のツール名ではなく、AI が生成したコンテンツ全般を指す総称です。文章、画像、音声、動画などが含まれます。AI ライティング、AI イラスト、AI による短尺動画制作、AI 音声生成などはすべて &lt;code&gt;AIGC&lt;/code&gt; の枠で理解できます。&lt;/p&gt;
&lt;p&gt;大事なのは、この言葉が特定のモデルではなく、コンテンツの作り方そのものを指していることです。&lt;/p&gt;
&lt;h3 id=&#34;10-token-モデルが内容を処理するときの計量単位&#34;&gt;10. Token: モデルが内容を処理するときの計量単位
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Token&lt;/code&gt; は、モデルがテキストを処理するときの基本的な計量単位だと考えられます。&lt;/p&gt;
&lt;p&gt;これは 1 文字や 1 単語と完全に一致するわけではありませんが、実用上は計算量や課金の共通単位として捉えて問題ありません。入力でも &lt;code&gt;Token&lt;/code&gt; を消費し、出力でも &lt;code&gt;Token&lt;/code&gt; を消費し、保持しているコンテキストも同じように &lt;code&gt;Token&lt;/code&gt; を使います。&lt;/p&gt;
&lt;p&gt;だから多くのモデルサービスがコンテキスト長、コスト管理、プロンプト圧縮を強調するのは、結局どれも &lt;code&gt;Token&lt;/code&gt; と深く関係しているからです。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>8GB VRAM で llama.cpp をどう調整するか: 32K の方が安定しやすく、64K では KV Cache 量子化が重要</title>
        <link>https://knightli.com/ja/2026/04/23/llama-cpp-8g-vram-32k-64k-kv-cache-tuning/</link>
        <pubDate>Thu, 23 Apr 2026 12:13:04 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/23/llama-cpp-8g-vram-32k-64k-kv-cache-tuning/</guid>
        <description>&lt;p&gt;&lt;code&gt;8GB&lt;/code&gt; の VRAM でローカル LLM をスムーズに動かせるのか、特に長いコンテキストで速度を維持できるのかは、&lt;code&gt;llama.cpp&lt;/code&gt; を使う人がよく直面する問題です。&lt;/p&gt;
&lt;p&gt;まず覚えておきたいポイントは 3 つあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;8GB&lt;/code&gt; VRAM では、&lt;code&gt;32K&lt;/code&gt; コンテキストの方が安定したバランスになりやすい&lt;/li&gt;
&lt;li&gt;どうしても &lt;code&gt;64K&lt;/code&gt; を使いたいなら、&lt;code&gt;KV Cache&lt;/code&gt; の量子化がほぼ必須になる&lt;/li&gt;
&lt;li&gt;フル GPU 推論では、&lt;code&gt;CPU&lt;/code&gt; スレッド数をむやみに増やすとかえって遅くなることがある&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;1-まず32k64kkv-cache-とは何か&#34;&gt;1. まず、32K・64K・KV Cache とは何か
&lt;/h2&gt;&lt;p&gt;この手の調整記事で最初につまずきやすいのが、この 3 つの用語です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;32K&lt;/code&gt; と &lt;code&gt;64K&lt;/code&gt; はコンテキスト長を意味し、モデルが一度に処理できる &lt;code&gt;token&lt;/code&gt; 数の上限を表します。ここでの &lt;code&gt;K&lt;/code&gt; は千なので、&lt;code&gt;32K&lt;/code&gt; は約 &lt;code&gt;32000 token&lt;/code&gt;、&lt;code&gt;64K&lt;/code&gt; は約 &lt;code&gt;64000 token&lt;/code&gt; です。コンテキストが長いほど、モデルは一度により多くの過去情報を見られるため、長文読解、長い対話、複数段階の分析に向いています。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;KV Cache&lt;/code&gt; は、連続生成を高速化するためにモデルが保持する中間結果のキャッシュです。すでに読んで計算済みの部分を毎回最初から計算し直すのではなく、重要な中間情報を保存して再利用する仕組みだと考えるとわかりやすいです。&lt;code&gt;K&lt;/code&gt; と &lt;code&gt;V&lt;/code&gt; は Transformer の &lt;code&gt;Key&lt;/code&gt; と &lt;code&gt;Value&lt;/code&gt; を指します。&lt;/p&gt;
&lt;p&gt;この 3 つがいつも一緒に出てくるのは、次の関係があるからです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;32K&lt;/code&gt; と &lt;code&gt;64K&lt;/code&gt; は、一度にどれだけの内容を記憶させたいかを決める&lt;/li&gt;
&lt;li&gt;&lt;code&gt;KV Cache&lt;/code&gt; は、その記憶を維持するためにどれだけ追加の VRAM が必要かを決める&lt;/li&gt;
&lt;li&gt;コンテキストが長くなるほど &lt;code&gt;KV Cache&lt;/code&gt; は大きくなり、VRAM の負担も増える&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、長コンテキストで速度が落ちる原因は、モデルの計算能力不足というより、キャッシュが大きくなりすぎて VRAM が限界に近づくことにある場合が多いです。&lt;/p&gt;
&lt;h2 id=&#34;2-なぜ-32k-と-64k-で速度差が大きくなるのか&#34;&gt;2. なぜ 32K と 64K で速度差が大きくなるのか
&lt;/h2&gt;&lt;p&gt;たとえば《三体》の約 &lt;code&gt;3&lt;/code&gt; 万字を使って負荷テストを行い、&lt;code&gt;32K&lt;/code&gt; と &lt;code&gt;64K&lt;/code&gt; のコンテキストを比較すると、文章量が近くても &lt;code&gt;64K&lt;/code&gt; の方が大きく遅くなり、総処理時間もかなり長くなることがあります。&lt;/p&gt;
&lt;p&gt;原因はモデルが急に遅くなったからではなく、VRAM の境界にぶつかったからです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;32K&lt;/code&gt; では、モデルの重みとキャッシュがまだ &lt;code&gt;8GB&lt;/code&gt; VRAM の中にほぼ収まり、データは主に GPU メモリ帯域の中で処理されます。ところが &lt;code&gt;64K&lt;/code&gt; にするとキャッシュがさらに増え、総使用量が VRAM 上限に近づくか超えてしまい、一部データが共有メモリやシステムメモリに押し出されます。&lt;/p&gt;
&lt;p&gt;このとき落ちるのは演算性能そのものではなく、帯域です。&lt;/p&gt;
&lt;p&gt;つまり、「コンテキストを倍にしたら急に遅くなった」という現象の本質は、データ経路が VRAM からより遅いメモリへ落ちたことにあります。&lt;/p&gt;
&lt;h2 id=&#34;3-64k-を使うならkv-cache-量子化が重要&#34;&gt;3. 64K を使うなら、KV Cache 量子化が重要
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;8GB&lt;/code&gt; VRAM 環境で特に重要なのが、&lt;code&gt;KV Cache&lt;/code&gt; の量子化です。&lt;/p&gt;
&lt;p&gt;モデル本体を変えず、キャッシュだけを量子化すると、長コンテキスト時のキャッシュ使用量を直接削減できます。すると、もともと VRAM からあふれていた一部のデータを 다시 VRAM 側に戻しやすくなります。その結果、&lt;code&gt;64K&lt;/code&gt; は依然として &lt;code&gt;32K&lt;/code&gt; より重いものの、最も遅い領域に落ち込みにくくなります。&lt;/p&gt;
&lt;p&gt;要するに、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;32K&lt;/code&gt; は &lt;code&gt;8GB&lt;/code&gt; VRAM における実用的な標準レンジ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;64K&lt;/code&gt; も不可能ではない&lt;/li&gt;
&lt;li&gt;ただしキャッシュ量子化なしでは、「使える」から「かなり厳しい」へ一気に落ちやすい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;長コンテキストを安定して使いたいなら、優先順位は次のようになります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まず VRAM が上限に近づいていないか確認する&lt;/li&gt;
&lt;li&gt;次に &lt;code&gt;KV Cache&lt;/code&gt; 量子化を有効にするか判断する&lt;/li&gt;
&lt;li&gt;その後で、より攻めたスループット設定を試す&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;4-gpu-使用率が低くてもgpu-が遊んでいるとは限らない&#34;&gt;4. GPU 使用率が低くても、GPU が遊んでいるとは限らない
&lt;/h2&gt;&lt;p&gt;これは直感に反しやすいポイントです。&lt;/p&gt;
&lt;p&gt;タスクマネージャーで &lt;code&gt;GPU&lt;/code&gt; 使用率が 20% や 30% しか見えないと、多くの人は次のように考えます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;パラメータ設定が間違っているのではないか&lt;/li&gt;
&lt;li&gt;モデルが本当に GPU 上で動いていないのではないか&lt;/li&gt;
&lt;li&gt;GPU を使い切れていないのではないか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;しかし &lt;code&gt;llama.cpp&lt;/code&gt; の推論では、ボトルネックがコア演算ではなくメモリ読み書きにあることがよくあります。&lt;/p&gt;
&lt;p&gt;つまり、GPU コアはあるバッチの計算をすぐ終えても、次の重みやキャッシュデータが届くまで待たされる、という状態です。&lt;/p&gt;
&lt;p&gt;その結果、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コア使用率はそれほど高くない&lt;/li&gt;
&lt;li&gt;それでも全体の速度は伸びない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;という現象になります。&lt;/p&gt;
&lt;p&gt;これは GPU が怠けているのではなく、データ経路が狭いだけです。&lt;/p&gt;
&lt;p&gt;そのため、ローカル LLM の速度を見るときは &lt;code&gt;GPU Usage&lt;/code&gt; だけで判断してはいけません。VRAM 容量、メモリ帯域、キャッシュのあふれ方の方が重要なことが多いです。&lt;/p&gt;
&lt;h2 id=&#34;5-スループット関連パラメータは効くことがあるがvram-余裕が前提&#34;&gt;5. スループット関連パラメータは効くことがあるが、VRAM 余裕が前提
&lt;/h2&gt;&lt;p&gt;GPU コアが完全には埋まっていないなら、スループット関連の設定を上げて一度に処理するデータ量を増やし、GPU の並列性をもっと引き出せるのではないか、という考え方があります。&lt;/p&gt;
&lt;p&gt;これは実際に速度向上につながることがあります。&lt;/p&gt;
&lt;p&gt;ただし前提条件があります。VRAM にまだ余裕があることです。&lt;/p&gt;
&lt;p&gt;スループット関連の設定を上げると、VRAM 使用量も増えることが多いからです。すでに &lt;code&gt;64K&lt;/code&gt;、大きなキャッシュ、VRAM ぎりぎりという状態でさらに押し上げると、次のような結果になりがちです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;そのままクラッシュする&lt;/li&gt;
&lt;li&gt;クラッシュしなくても、より遅い共有メモリモードに落ちる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;したがって、より安全な順番は「最初に全部最大化する」ことではなく、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;まず VRAM の境界を守る&lt;/li&gt;
&lt;li&gt;次にスループット最適化を試す&lt;/li&gt;
&lt;li&gt;変更のたびに速度と安定性を確認する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;という流れです。&lt;/p&gt;
&lt;h2 id=&#34;6-cpu-スレッドは多ければ多いほどよいわけではない&#34;&gt;6. CPU スレッドは多ければ多いほどよいわけではない
&lt;/h2&gt;&lt;p&gt;これも覚えておきやすい落とし穴です。&lt;/p&gt;
&lt;p&gt;スレッドが多いほど速いはずだ、と考えるのは自然です。しかし、モデルがすでに主に GPU で動いている場合、&lt;code&gt;CPU&lt;/code&gt; スレッド数を無理に増やすとかえって性能が落ちることがあります。&lt;/p&gt;
&lt;p&gt;理由は単純です。&lt;/p&gt;
&lt;p&gt;フル GPU 推論では、&lt;code&gt;CPU&lt;/code&gt; は主力の計算機というより、スケジューラや前処理補助の役割に近くなります。この状態でスレッドを増やしすぎると、CPU 側のスレッド競合、スケジューリング負荷、コンテキストスイッチのコストが大きくなり、本来スムーズであるべきデータの流れを乱してしまいます。&lt;/p&gt;
&lt;p&gt;結果として、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CPU&lt;/code&gt; はより忙しそうに見える&lt;/li&gt;
&lt;li&gt;それでも全体は遅くなる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ということが起きます。&lt;/p&gt;
&lt;p&gt;この種の構成では、デフォルト設定や低めのスレッド数の方が、全部を最大化するより安定しやすいです。&lt;/p&gt;
&lt;h2 id=&#34;7-8gb-vram-向けのより実用的な考え方&#34;&gt;7. 8GB VRAM 向けの、より実用的な考え方
&lt;/h2&gt;&lt;p&gt;ここまでの結論を実行しやすい形にまとめると、だいたい次のようになります。&lt;/p&gt;
&lt;h3 id=&#34;1-まず-32k-を標準目標にする&#34;&gt;1. まず 32K を標準目標にする
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;8GB&lt;/code&gt; GPU なら、最初から &lt;code&gt;64K&lt;/code&gt; を狙いにいかない方が無難です。&lt;code&gt;32K&lt;/code&gt; の方が、速度・安定性・メモリ使用量のバランスが取りやすいことが多いです。&lt;/p&gt;
&lt;h3 id=&#34;2-64k-を使いたいならまずキャッシュを見る&#34;&gt;2. 64K を使いたいなら、まずキャッシュを見る
&lt;/h3&gt;&lt;p&gt;「あと少し速くできるか」より先に、&lt;code&gt;KV Cache&lt;/code&gt; が量子化されているか、VRAM がすでに限界付近ではないかを確認すべきです。&lt;/p&gt;
&lt;h3 id=&#34;3-gpu-使用率だけで判断しない&#34;&gt;3. GPU 使用率だけで判断しない
&lt;/h3&gt;&lt;p&gt;使用率が低いからといって設定ミスとは限りません。単にメモリ帯域が本当のボトルネックかもしれません。&lt;/p&gt;
&lt;h3 id=&#34;4-スループット最適化は有効だがvram-境界を越えない&#34;&gt;4. スループット最適化は有効だが、VRAM 境界を越えない
&lt;/h3&gt;&lt;p&gt;これらの設定は確かに効くことがありますが、前提は VRAM に余裕があることです。&lt;/p&gt;
&lt;h3 id=&#34;5-cpu-スレッドは保守的に始める&#34;&gt;5. CPU スレッドは保守的に始める
&lt;/h3&gt;&lt;p&gt;モデルがほぼ GPU 上で動いているなら、CPU スレッド数は高ければよいわけではありません。まずはデフォルトか低めで試し、必要なら少しずつ調整します。&lt;/p&gt;
&lt;h2 id=&#34;結論&#34;&gt;結論
&lt;/h2&gt;&lt;p&gt;この話の価値は、いくつかのベンチマーク数字そのものより、ひとつの見落とされがちな事実をはっきりさせてくれる点にあります。&lt;/p&gt;
&lt;p&gt;ローカル LLM の調整で本当に大事なのは、すべての設定を最大にすることではなく、ボトルネックが演算性能なのか、VRAM 容量なのか、メモリ帯域なのか、それとも &lt;code&gt;CPU&lt;/code&gt; のスケジューリングなのかを見極めることです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;8GB&lt;/code&gt; VRAM ユーザーにとって、より安全な方針は「最長コンテキストを無理に追う」ことではなく、まず VRAM の境界を守り、そのうえでどこまで伸ばすかを判断することです。&lt;/p&gt;
&lt;p&gt;ひとことでまとめるなら、こうです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;32K&lt;/code&gt; は &lt;code&gt;8GB&lt;/code&gt; VRAM でより安定しやすい作業レンジであり、&lt;code&gt;64K&lt;/code&gt; も不可能ではないが、その前提として &lt;code&gt;KV Cache&lt;/code&gt; と VRAM 使用量をしっかり管理できている必要がある。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude Code の環境設定4点セット：CLAUDE.md、Rules、Memory、Hooks をまとめて理解する</title>
        <link>https://knightli.com/ja/2026/04/23/claude-code-claude-md-rules-memory-hooks-guide/</link>
        <pubDate>Thu, 23 Apr 2026 10:43:40 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/23/claude-code-claude-md-rules-memory-hooks-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;Claude Code&lt;/code&gt; をしばらく使っていると、すぐに気づくことがあります。モデルそのものが重要なのは当然ですが、どんな環境を与えるか、どんな境界を置くか、どんなルールを持たせるかも同じくらい重要だということです。&lt;/p&gt;
&lt;p&gt;最初のうちは「今回の prompt をどう書くか」に意識が向きがちです。ですが、本当に &lt;code&gt;Claude Code&lt;/code&gt; を使いこなすようになると、気になるのは別のことです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;それは自分が誰かを分かっているか&lt;/li&gt;
&lt;li&gt;自分がどう働くかを分かっているか&lt;/li&gt;
&lt;li&gt;破ってはいけないルールを分かっているか&lt;/li&gt;
&lt;li&gt;先に確認すべきことを分かっているか&lt;/li&gt;
&lt;li&gt;そうした境界を長期的に覚えていられるか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude Code&lt;/code&gt; が成熟したツールになる理由は、単にモデルが強いからではありません。こうした働き方を仕組みとして定着させる一式があるからです。大きく分けると、その中核は次の4層です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Rules&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hooks&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この記事では、この4つをまとめて整理します。&lt;/p&gt;
&lt;h2 id=&#34;なぜ単発のプロンプトより環境設定のほうが重要なのか&#34;&gt;なぜ単発のプロンプトより環境設定のほうが重要なのか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude Code&lt;/code&gt; を、雇ったアシスタントだと考えてみてください。&lt;/p&gt;
&lt;p&gt;初日に「何か手伝って」と一言だけ伝えることはないはずです。普通は説明書を渡して、次のようなことを伝えます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自分はどんな立場なのか&lt;/li&gt;
&lt;li&gt;どんなコミュニケーションのトーンを好むのか&lt;/li&gt;
&lt;li&gt;どんな操作は必ず事前確認が必要か&lt;/li&gt;
&lt;li&gt;以前起きたどんなミスを今後は避けたいか&lt;/li&gt;
&lt;li&gt;重要な文書がどこにあるか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;だからこそ、長い目で見ると、環境設定は単発の prompt より重要になりやすいのです。&lt;/p&gt;
&lt;p&gt;prompt が解決するのは「今回は何をするか」です。環境設定が解決するのは「これから毎回どう働くか」です。&lt;/p&gt;
&lt;h2 id=&#34;第1層claudemd&#34;&gt;第1層：&lt;code&gt;CLAUDE.md&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;まず一番基本から始めます。&lt;code&gt;CLAUDE.md&lt;/code&gt; は本質的にはただのテキストファイルです。&lt;/p&gt;
&lt;p&gt;そこには Claude への説明を書けます。たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自分が誰か&lt;/li&gt;
&lt;li&gt;何に取り組んでいるか&lt;/li&gt;
&lt;li&gt;どんなコミュニケーションを好むか&lt;/li&gt;
&lt;li&gt;守るべきルール&lt;/li&gt;
&lt;li&gt;現在のプロジェクトの特殊事情&lt;/li&gt;
&lt;li&gt;重要な文書やディレクトリの場所&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude Code&lt;/code&gt; が起動するたびに、この文書は自動的にコンテキストに入るので、モデルは必ず目を通します。&lt;/p&gt;
&lt;p&gt;私はこれを「共有された暗黙知のファイル」だと考えることが多いです。実際、それがあなたとモデルの長期協業における前提になるからです。&lt;/p&gt;
&lt;h3 id=&#34;claudemd-に書くのに向いていること&#34;&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; に書くのに向いていること
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; に最も向いているのは、おおむね次のような内容です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;身元や仕事上の背景&lt;/li&gt;
&lt;li&gt;話し方や出力の好み&lt;/li&gt;
&lt;li&gt;グローバルな行動ルール&lt;/li&gt;
&lt;li&gt;よく参照する重要なプロジェクト背景&lt;/li&gt;
&lt;li&gt;よくあるミスとその防ぎ方&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自分のタイムゾーン&lt;/li&gt;
&lt;li&gt;モデルによるメールやメッセージの直接送信を許可するか&lt;/li&gt;
&lt;li&gt;どの操作が不可逆か&lt;/li&gt;
&lt;li&gt;文書やファイルの扱い方の癖&lt;/li&gt;
&lt;li&gt;セキュリティ方針や機密情報の境界&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;とても大事な原則できるだけ簡潔にする&#34;&gt;とても大事な原則：できるだけ簡潔にする
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; には非常に大事な原則があります。それは、できるだけ簡潔に保つことです。&lt;/p&gt;
&lt;p&gt;理由は単純で、毎回コンテキストに強制的に入るからです。&lt;/p&gt;
&lt;p&gt;長くなりすぎると、大量のコンテキストを消費してしまい、本当に重要な情報が薄まります。モデルが読まないのではなく、注意が分散し、最も重要なルールを取りこぼしやすくなるのです。&lt;/p&gt;
&lt;p&gt;公式の目安としては、&lt;code&gt;400&lt;/code&gt; 行を超えないほうがよいと言われることが多いです。&lt;/p&gt;
&lt;p&gt;私自身はもう少し保守的で、できるだけ &lt;code&gt;200&lt;/code&gt; 行以内に収めるようにしています。&lt;/p&gt;
&lt;h3 id=&#34;claudemd-のよくあるスコープ&#34;&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; のよくあるスコープ
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; には実際には複数の配置レベルがあり、そのレベルによって効く範囲が変わります。最もよく使うのは次の2つです。&lt;/p&gt;
&lt;h4 id=&#34;1-user-level&#34;&gt;1. User Level
&lt;/h4&gt;&lt;p&gt;これはグローバルレベルです。&lt;/p&gt;
&lt;p&gt;ローカル環境に置かれ、そのマシン上で扱うすべてのプロジェクトに効きます。&lt;/p&gt;
&lt;p&gt;ここに向いているのは：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自分の基本情報&lt;/li&gt;
&lt;li&gt;汎用的なコミュニケーションの好み&lt;/li&gt;
&lt;li&gt;プロジェクトをまたいで通用する作業習慣&lt;/li&gt;
&lt;li&gt;グローバルな安全ルール&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たとえば、あなたのタイムゾーンが一般的に想定されがちなものではなく、バンコク時間であるなら、それは &lt;code&gt;user level&lt;/code&gt; に置くのが自然です。そうすれば、後で日時を扱うときのミスが減ります。&lt;/p&gt;
&lt;h4 id=&#34;2-project-level&#34;&gt;2. Project Level
&lt;/h4&gt;&lt;p&gt;こちらはプロジェクトレベルです。&lt;/p&gt;
&lt;p&gt;特定のプロジェクトディレクトリの下に置かれ、そのプロジェクトにだけ効きます。&lt;/p&gt;
&lt;p&gt;ここに向いているのは：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロジェクト固有の背景&lt;/li&gt;
&lt;li&gt;そのプロジェクトでしか成立しないルール&lt;/li&gt;
&lt;li&gt;ディレクトリ構成の説明&lt;/li&gt;
&lt;li&gt;重要文書の入口&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たとえば、あるプロジェクトが財務を扱い、別のプロジェクトが人事を扱うなら、背景も制約も違うので、同じグローバル説明に混ぜるべきではありません。&lt;/p&gt;
&lt;h3 id=&#34;どのレベルに置くかをどう判断するか&#34;&gt;どのレベルに置くかをどう判断するか
&lt;/h3&gt;&lt;p&gt;判断基準はシンプルです。&lt;/p&gt;
&lt;p&gt;別のプロジェクトに移っても成立するなら &lt;code&gt;user level&lt;/code&gt; に置く。&lt;/p&gt;
&lt;p&gt;プロジェクトを変えた瞬間に成立しなくなるなら &lt;code&gt;project level&lt;/code&gt; に置く。&lt;/p&gt;
&lt;h3 id=&#34;最初の版をどう書き始めるか&#34;&gt;最初の版をどう書き始めるか
&lt;/h3&gt;&lt;p&gt;よくある始め方は2つあります。&lt;/p&gt;
&lt;h4 id=&#34;1-init-を使う&#34;&gt;1. &lt;code&gt;/init&lt;/code&gt; を使う
&lt;/h4&gt;&lt;p&gt;ターミナルで &lt;code&gt;/init&lt;/code&gt; を実行して、Claude に現在のプロジェクトをスキャンさせ、基礎的な &lt;code&gt;CLAUDE.md&lt;/code&gt; を自動生成してもらう方法です。&lt;/p&gt;
&lt;h4 id=&#34;2-claude-に整理してもらう&#34;&gt;2. Claude に整理してもらう
&lt;/h4&gt;&lt;p&gt;他の人がどう &lt;code&gt;CLAUDE.md&lt;/code&gt; を書いているかを Claude に調べてもらい、自分の状況に合わせて質問してもらった上で、最終的に自分向けの版に整理してもらうこともできます。&lt;/p&gt;
&lt;p&gt;多くの場合、ゼロから自分で書くよりずっと楽です。&lt;/p&gt;
&lt;h3 id=&#34;とても実用的な習慣&#34;&gt;とても実用的な習慣
&lt;/h3&gt;&lt;p&gt;長く協業していると、「これは今後も必ず覚えておくべきだ」「これは二度と繰り返してほしくない」と思うことが出てきます。そういう内容は、そのまま &lt;code&gt;CLAUDE.md&lt;/code&gt; に書き足していくと便利です。&lt;/p&gt;
&lt;p&gt;ただし、その前に考えるべきことがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;それはグローバルルールか&lt;/li&gt;
&lt;li&gt;それとも今のプロジェクト専用のルールか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;何でも1つのファイルに詰め込まないことが大切です。&lt;/p&gt;
&lt;h2 id=&#34;第2層rules&#34;&gt;第2層：&lt;code&gt;Rules&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;次が &lt;code&gt;Rules&lt;/code&gt; です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; との最大の違いは、ファイル形式ではなくロードの仕方です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; は何をしていても常に読まれます。&lt;/p&gt;
&lt;p&gt;一方、&lt;code&gt;Rules&lt;/code&gt; の強みは &lt;strong&gt;条件付きで読み込める&lt;/strong&gt; ことです。&lt;/p&gt;
&lt;p&gt;つまり、特定のパス、ファイル、ツール、場面でだけ、そのルールを読ませることができます。&lt;/p&gt;
&lt;h3 id=&#34;なぜ条件付きロードが重要なのか&#34;&gt;なぜ条件付きロードが重要なのか
&lt;/h3&gt;&lt;p&gt;コンテキスト空間は常に限られています。&lt;/p&gt;
&lt;p&gt;すべてのルールを無差別に毎回押し込むと、次の2つが起きます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;モデルの負担が増える&lt;/li&gt;
&lt;li&gt;本当に重要なルールが埋もれる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;必要なときに必要な情報だけ読ませる。これが条件付きロードの価値です。&lt;/p&gt;
&lt;h3 id=&#34;claudemd-から-rules-に移すべきタイミング&#34;&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; から &lt;code&gt;Rules&lt;/code&gt; に移すべきタイミング
&lt;/h3&gt;&lt;p&gt;典型的には2つあります。&lt;/p&gt;
&lt;h4 id=&#34;1-claudemd-が長くなりすぎたとき&#34;&gt;1. &lt;code&gt;CLAUDE.md&lt;/code&gt; が長くなりすぎたとき
&lt;/h4&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; が &lt;code&gt;200&lt;/code&gt; 行を超え始め、ルールが増えすぎて重要な内容が薄まってきたら、一部を切り出すタイミングです。&lt;/p&gt;
&lt;h4 id=&#34;2-特定のルールが特定のパスにしか関係しないとき&#34;&gt;2. 特定のルールが特定のパスにしか関係しないとき
&lt;/h4&gt;&lt;p&gt;たとえば、あるルールが：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python スクリプトにだけ有効&lt;/li&gt;
&lt;li&gt;hooks ディレクトリにだけ有効&lt;/li&gt;
&lt;li&gt;特定のサブプロジェクトにだけ有効&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;のように、適用対象が明確なら、それは &lt;code&gt;Rules&lt;/code&gt; に移したほうが自然です。&lt;/p&gt;
&lt;h3 id=&#34;rules-が最も向いている場面&#34;&gt;&lt;code&gt;Rules&lt;/code&gt; が最も向いている場面
&lt;/h3&gt;&lt;p&gt;典型的なのは「特定状況・特定パス・特定ファイル種別」です。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;hook ファイルにだけ適用したい規約&lt;/li&gt;
&lt;li&gt;特定種類のスクリプトだけで守らせたいコーディング規則&lt;/li&gt;
&lt;li&gt;特定ディレクトリだけで有効な作業方針&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そうした内容を &lt;code&gt;CLAUDE.md&lt;/code&gt; に入れ続けるのは、あまり効率的ではありません。&lt;/p&gt;
&lt;h2 id=&#34;第3層memory&#34;&gt;第3層：&lt;code&gt;Memory&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;3つ目の層が &lt;code&gt;Memory&lt;/code&gt; です。&lt;/p&gt;
&lt;p&gt;これも &lt;code&gt;CLAUDE.md&lt;/code&gt; や &lt;code&gt;Rules&lt;/code&gt; と同じくコンテキストに入りますが、本質的な違いがあります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; はあなたが意図的に定義するものです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Memory&lt;/code&gt; は、協業の中で Claude が自分用に残すメモに近いものです。&lt;/p&gt;
&lt;h3 id=&#34;memory-に入るもの&#34;&gt;&lt;code&gt;Memory&lt;/code&gt; に入るもの
&lt;/h3&gt;&lt;p&gt;Claude が「これは覚えておく価値がある」「しばらく保持したほうがよい」と判断した内容は &lt;code&gt;Memory&lt;/code&gt; に入ります。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;あなたが修正したやり方&lt;/li&gt;
&lt;li&gt;最近追加された好み&lt;/li&gt;
&lt;li&gt;現在のプロジェクトの一時的な状態&lt;/li&gt;
&lt;li&gt;今日終わらず、明日続きが必要なこと&lt;/li&gt;
&lt;li&gt;最近誰と協業しているか&lt;/li&gt;
&lt;li&gt;最近出てきた個人的な情報や文脈&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、&lt;code&gt;Memory&lt;/code&gt; は長期制度というより、動的な知識に近いのです。&lt;/p&gt;
&lt;h3 id=&#34;最初の2層との違い&#34;&gt;最初の2層との違い
&lt;/h3&gt;&lt;p&gt;簡単に分けるなら：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; / &lt;code&gt;Rules&lt;/code&gt;：長期的、制度的、明示的なルール&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;：一時的、動的、作業の中で新しく得た理解&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ここ数日しか有効でないことや、状態が継続的に変わることなら、長期ルールではなく &lt;code&gt;Memory&lt;/code&gt; に向いています。&lt;/p&gt;
&lt;h3 id=&#34;memory-は手動でも書ける&#34;&gt;&lt;code&gt;Memory&lt;/code&gt; は手動でも書ける
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Memory&lt;/code&gt; は自動整理されることがありますが、こちらから明示的に指示して書かせることもできます。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;明日やることを覚えておいて&lt;/li&gt;
&lt;li&gt;誰の状況を追う必要があるか覚えておいて&lt;/li&gt;
&lt;li&gt;今月のプロジェクトの重要な節目を覚えておいて&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;といった内容です。&lt;/p&gt;
&lt;p&gt;また、&lt;code&gt;/memory&lt;/code&gt; コマンドで現在の記憶を確認し、手動で編集・削除することもできます。&lt;/p&gt;
&lt;p&gt;ただ、私自身はあまり頻繁に手で管理しません。Claude 側でも古くなった記憶を定期的に整理できるからです。&lt;/p&gt;
&lt;h2 id=&#34;第4層hooks&#34;&gt;第4層：&lt;code&gt;Hooks&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;最後であり、最も重要かつ上級なのが &lt;code&gt;Hooks&lt;/code&gt; です。&lt;/p&gt;
&lt;p&gt;ここまでの &lt;code&gt;CLAUDE.md&lt;/code&gt;、&lt;code&gt;Rules&lt;/code&gt;、&lt;code&gt;Memory&lt;/code&gt; は、いずれも最終的には自然言語の指示です。&lt;/p&gt;
&lt;p&gt;ルールを書けば、モデルはたいてい従います。ですが、それでも「解釈してから実行する」ものです。&lt;/p&gt;
&lt;p&gt;自然言語にとどまる限り、いくつかの問題が残ります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ときどき見落とす&lt;/li&gt;
&lt;li&gt;ルールが増えると注意が分散する&lt;/li&gt;
&lt;li&gt;状況によっては、そのルールを重要でないと自己判断する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは書き方が悪いのではなく、自然言語ルールが &lt;code&gt;100%&lt;/code&gt; 強制にはなりにくいという性質によるものです。&lt;/p&gt;
&lt;h3 id=&#34;hooks-の本質&#34;&gt;&lt;code&gt;Hooks&lt;/code&gt; の本質
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Hooks&lt;/code&gt; は自然言語の説明ではありません。スクリプトです。&lt;/p&gt;
&lt;p&gt;イベントで発火する、プログラムレベルの強制ロジックです。&lt;/p&gt;
&lt;p&gt;あるイベントが起きれば、そのロジックは必ず実行されます。モデルの判断で飛ばされることはありません。&lt;/p&gt;
&lt;p&gt;これが &lt;code&gt;Hooks&lt;/code&gt; の最大の価値です。&lt;/p&gt;
&lt;p&gt;「守るべき」から「必ず実行される」へ変えることです。&lt;/p&gt;
&lt;h3 id=&#34;どんなときに-hooks-に上げるべきか&#34;&gt;どんなときに &lt;code&gt;Hooks&lt;/code&gt; に上げるべきか
&lt;/h3&gt;&lt;p&gt;もし、あるルールをすでに &lt;code&gt;CLAUDE.md&lt;/code&gt; や &lt;code&gt;Rules&lt;/code&gt; に書いてあるのに、Claude がときどき守り損ねる。そして、その見落としのコストが高い。そういう場合は &lt;code&gt;Hooks&lt;/code&gt; に上げるべきです。&lt;/p&gt;
&lt;p&gt;要するに：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;低リスクならルール&lt;/li&gt;
&lt;li&gt;高リスクなら &lt;code&gt;Hooks&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;典型的な-hooks-の場面&#34;&gt;典型的な &lt;code&gt;Hooks&lt;/code&gt; の場面
&lt;/h3&gt;&lt;p&gt;最も典型的なのは、絶対にミスしてほしくない操作です。たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;メール送信前の確認&lt;/li&gt;
&lt;li&gt;Slack、Outlook、Gmail 送信前の確認&lt;/li&gt;
&lt;li&gt;危険なファイル削除の遮断&lt;/li&gt;
&lt;li&gt;パスワードや API Key の外部送信のブロック&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうした内容が自然言語ルールだけだと、いつか忙しいタイミングでミスが起きる可能性があります。&lt;/p&gt;
&lt;p&gt;でも &lt;code&gt;Hooks&lt;/code&gt; にしておけば、イベント発生時に必ず止められます。&lt;/p&gt;
&lt;p&gt;これは本当の意味でのプログラム的な安全柵です。&lt;/p&gt;
&lt;h3 id=&#34;hooks-のよくあるトリガー地点&#34;&gt;&lt;code&gt;Hooks&lt;/code&gt; のよくあるトリガー地点
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Hooks&lt;/code&gt; はさまざまな段階に設定できます。たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;会話開始時にリマインドを入れる&lt;/li&gt;
&lt;li&gt;ツール実行前に条件を確認する&lt;/li&gt;
&lt;li&gt;ツール実行後に結果を検証する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;専門用語を全部知っている必要はありません。&lt;/p&gt;
&lt;p&gt;多くの場合、「こういう要件がある」「これを hook にすべきか」と明確に説明できれば、Claude が一緒に設計してくれます。&lt;/p&gt;
&lt;p&gt;また、&lt;code&gt;/hook&lt;/code&gt; コマンドで現在設定されている hooks を確認することもできます。&lt;/p&gt;
&lt;h2 id=&#34;より実用的な導入順&#34;&gt;より実用的な導入順
&lt;/h2&gt;&lt;p&gt;この4層をつなげて運用するなら、私なら次の順番を勧めます。&lt;/p&gt;
&lt;h3 id=&#34;ステップ1まず-init-で基本版-claudemd-を作る&#34;&gt;ステップ1：まず &lt;code&gt;/init&lt;/code&gt; で基本版 &lt;code&gt;CLAUDE.md&lt;/code&gt; を作る
&lt;/h3&gt;&lt;p&gt;最初から完璧なルール文書を手書きしようとしないことです。&lt;/p&gt;
&lt;p&gt;まずは Claude にプロジェクトを見てもらい、たたき台を作ってもらって、そこから育てていくのが自然です。&lt;/p&gt;
&lt;h3 id=&#34;ステップ2使いながら足していく&#34;&gt;ステップ2：使いながら足していく
&lt;/h3&gt;&lt;p&gt;協業の中で、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;今後も必ず覚えてほしい&lt;/li&gt;
&lt;li&gt;このミスは二度と起こしてほしくない&lt;/li&gt;
&lt;li&gt;この好みは毎回効いてほしい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;というものが見つかったら、&lt;code&gt;CLAUDE.md&lt;/code&gt; に追加していきます。&lt;/p&gt;
&lt;h3 id=&#34;ステップ3claudemd-が長くなったら-rules-に分ける&#34;&gt;ステップ3：&lt;code&gt;CLAUDE.md&lt;/code&gt; が長くなったら &lt;code&gt;Rules&lt;/code&gt; に分ける
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; がどんどん長くなり、すべてのルールが安定して効かなくなってきたら分割します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;何がグローバルルールか&lt;/li&gt;
&lt;li&gt;何が特定パス専用か&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;後者を &lt;code&gt;Rules&lt;/code&gt; に移し、条件付きロードにします。&lt;/p&gt;
&lt;h3 id=&#34;ステップ4高リスクなものを-hooks-に上げる&#34;&gt;ステップ4：高リスクなものを &lt;code&gt;Hooks&lt;/code&gt; に上げる
&lt;/h3&gt;&lt;p&gt;書いてあるのにまだ漏れる。そして漏れると危険。そういうものは自然言語のままにせず、&lt;code&gt;Hooks&lt;/code&gt; に上げます。&lt;/p&gt;
&lt;p&gt;つまり「リマインド」を「強制実行」に変えるわけです。&lt;/p&gt;
&lt;h3 id=&#34;ステップ5一時状態は-memory-に任せる&#34;&gt;ステップ5：一時状態は &lt;code&gt;Memory&lt;/code&gt; に任せる
&lt;/h3&gt;&lt;p&gt;期限があるもの、変化するもの、長期制度ではないものは、何でも &lt;code&gt;CLAUDE.md&lt;/code&gt; に入れないことです。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;現在のプロジェクト進捗&lt;/li&gt;
&lt;li&gt;最近の協業相手&lt;/li&gt;
&lt;li&gt;最近増えた好み&lt;/li&gt;
&lt;li&gt;直近の計画や ToDo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうしたものは &lt;code&gt;Memory&lt;/code&gt; に持たせたほうが、コンテキストもすっきりし、モデルの挙動も安定しやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;4層それぞれに何を入れるか&#34;&gt;4層それぞれに何を入れるか
&lt;/h2&gt;&lt;p&gt;手早く覚えるなら、次の整理で十分です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;：長期的な共通認識、グローバルな説明、プロジェクトの基礎背景&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Rules&lt;/code&gt;：パスや場面ごとに読み込む専門ルール&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;：動的な知識、一時状態、最近学んだこと&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hooks&lt;/code&gt;：高リスク操作をプログラム的に強制制御する層&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude Code&lt;/code&gt; を「コードを書けるチャット画面」として使う人は多いですが、深く使うほど、それは長期協業のための知的な作業台に近いと分かってきます。&lt;/p&gt;
&lt;p&gt;重要なのは毎回の指示文だけではありません。安定していて、分かりやすく、積み重ねていける環境を与えられているかどうかです。&lt;/p&gt;
&lt;p&gt;この4層、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Rules&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hooks&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;をきちんと組めるようになると、あなたとモデルの協業品質はかなり大きく上がります。&lt;/p&gt;
&lt;p&gt;毎回ゼロから「自分が誰で、どう働いて、何をしてはいけないか」を説明し直す必要がなくなり、それらが環境の一部として定着するからです。&lt;/p&gt;
&lt;p&gt;それこそが、強いモデルを本当に成熟した道具として使うための重要な一歩です。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>llama.cpp / ollama GPU 性能ランキング：CUDA、ROCm、Vulkan</title>
        <link>https://knightli.com/ja/2026/04/23/llama-cpp-gpu-benchmark-cuda-rocm-vulkan-scoreboard/</link>
        <pubDate>Thu, 23 Apr 2026 10:22:04 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/23/llama-cpp-gpu-benchmark-cuda-rocm-vulkan-scoreboard/</guid>
        <description>&lt;h2 id=&#34;まずパラメータを理解する&#34;&gt;まずパラメータを理解する
&lt;/h2&gt;&lt;h3 id=&#34;q4_0-とは&#34;&gt;&lt;code&gt;Q4_0&lt;/code&gt; とは
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Q4_0&lt;/code&gt; は 4-bit 量子化フォーマットの一種です。これは「モデルがより強い」という意味ではなく、「モデルが小さく、VRAM を節約でき、より多くのデバイスに載せやすい」という意味です。これらのランキングでは多くの場合 &lt;code&gt;Llama 2 7B, Q4_0&lt;/code&gt; に条件をそろえ、変数を減らして GPU 同士を横比較しやすくしています。&lt;/p&gt;
&lt;h3 id=&#34;pp512-とは&#34;&gt;&lt;code&gt;pp512&lt;/code&gt; とは
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; は一般に &lt;code&gt;prompt processing 512 tokens&lt;/code&gt;、つまり 512 個の入力 token を処理するときのスループットとして理解できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pp&lt;/code&gt; = prompt processing&lt;/li&gt;
&lt;li&gt;&lt;code&gt;512&lt;/code&gt; = 入力長が 512 token&lt;/li&gt;
&lt;li&gt;&lt;code&gt;t/s&lt;/code&gt; = tokens per second&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは「プロンプトを読み込む速度」に近く、並列化が効きやすいため数値が大きくなりがちです。&lt;/p&gt;
&lt;h3 id=&#34;tg128-とは&#34;&gt;&lt;code&gt;tg128&lt;/code&gt; とは
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;tg128&lt;/code&gt; は一般に &lt;code&gt;text generation 128 tokens&lt;/code&gt;、つまり 128 個の token を連続生成するときの速度として理解できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tg&lt;/code&gt; = text generation&lt;/li&gt;
&lt;li&gt;&lt;code&gt;128&lt;/code&gt; = 128 token を連続生成&lt;/li&gt;
&lt;li&gt;&lt;code&gt;t/s&lt;/code&gt; = tokens per second&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こちらは普段感じる「モデルの返答が速いか」により近い指標です。生成段階は token を逐次的に進めるため、通常は &lt;code&gt;pp512&lt;/code&gt; よりかなり低くなります。&lt;/p&gt;
&lt;h3 id=&#34;fa-とは&#34;&gt;&lt;code&gt;FA&lt;/code&gt; とは
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;FA&lt;/code&gt; は &lt;code&gt;Flash Attention&lt;/code&gt; です。簡単に言えば、attention 計算を最適化するためのスイッチです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;with FA&lt;/code&gt; は Flash Attention を有効化した状態&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no FA&lt;/code&gt; は Flash Attention を無効化した状態&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;多くの GPU では、&lt;code&gt;FA&lt;/code&gt; は &lt;code&gt;tg128&lt;/code&gt; より &lt;code&gt;pp512&lt;/code&gt; に対して目立った改善を出しやすいです。ただし、バックエンド、ドライバ、アーキテクチャによって効果はそろわず、デバイスによっては PP だけ伸びる、TG の変化が小さい、あるいは PP が下がることもあります。&lt;/p&gt;
&lt;h3 id=&#34;ts-の読み方&#34;&gt;&lt;code&gt;t/s&lt;/code&gt; の読み方
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;t/s&lt;/code&gt; は &lt;code&gt;tokens per second&lt;/code&gt; です。フレームレートでも FLOPS でもなく、モデルのスループットを直接表す結果です。&lt;/p&gt;
&lt;p&gt;ランキングを読むときに一番大事なのは、&lt;strong&gt;同じ種類のテストを比較しているかを先に確認すること&lt;/strong&gt;です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pp512&lt;/code&gt; と &lt;code&gt;tg128&lt;/code&gt; を混ぜて比較しない&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no FA&lt;/code&gt; と &lt;code&gt;with FA&lt;/code&gt; を混ぜて比較しない&lt;/li&gt;
&lt;li&gt;CUDA、ROCm、Vulkan の結果を完全に同じ条件の曲線として扱わない&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;先に結論&#34;&gt;先に結論
&lt;/h2&gt;&lt;p&gt;現時点でこれらの discussion に見えているデータからは、おおよそ次のように読めます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CUDA&lt;/code&gt; は今でも &lt;code&gt;llama.cpp&lt;/code&gt; の GPU ベンチマークで最も強く、サンプルも最も多い系統です。特に高性能な Nvidia GPU は &lt;code&gt;pp512&lt;/code&gt; で大きな優位があります。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ROCm&lt;/code&gt; はハイエンド AMD GPU や Instinct 系でかなり実用的な成績を出しており、&lt;code&gt;MI300X&lt;/code&gt;、&lt;code&gt;7900 XTX&lt;/code&gt;、&lt;code&gt;W7900&lt;/code&gt; などの項目は十分強いです。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Vulkan&lt;/code&gt; の強みは「絶対に最速」ではなく、対応範囲の広さです。Nvidia、AMD、Intel、Apple Asahi / MoltenVK に加え、古い GPU や内蔵 GPU でも比較対象を見つけやすいです。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt; は日常の体感に近く、&lt;code&gt;pp512&lt;/code&gt; はスループットを見るのに向いています。ランキング上位の GPU でも、両指標でのリード幅は必ずしも同じではありません。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cuda-完全ランキング&#34;&gt;CUDA 完全ランキング
&lt;/h2&gt;&lt;h3 id=&#34;llama-2-7b-q4_0-no-fa&#34;&gt;Llama 2 7B, Q4_0, no FA
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Chip&lt;/th&gt;
          &lt;th&gt;Memory&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;pp512 t/s&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;tg128 t/s&lt;/th&gt;
          &lt;th&gt;Commit&lt;/th&gt;
          &lt;th&gt;Thanks to&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5090&lt;/td&gt;
          &lt;td&gt;32 GB / GDDR7 / 512 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14073.41 ± 115.16&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;290.02 ± 1.10&lt;/td&gt;
          &lt;td&gt;8cf6b42&lt;/td&gt;
          &lt;td&gt;@totaldev&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX PRO 6000 Blackwell&lt;/td&gt;
          &lt;td&gt;96 GB / GDDR7 / 512 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14854.63 ± 22.73&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;274.20 ± 0.14&lt;/td&gt;
          &lt;td&gt;79c1160&lt;/td&gt;
          &lt;td&gt;@Tom94&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;H100 80 GB&lt;/td&gt;
          &lt;td&gt;80 GB / HBM3 / 5120 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9918.34 ± 176.97&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;267.81 ± 1.54&lt;/td&gt;
          &lt;td&gt;5143fa8&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;A100 80 GB&lt;/td&gt;
          &lt;td&gt;80 GB / HBM2e / 5120 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4849.53 ± 8.94&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;190.88 ± 0.33&lt;/td&gt;
          &lt;td&gt;5143fa8&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4090 D&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10293.86 ± 134.72&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;189.33 ± 0.19&lt;/td&gt;
          &lt;td&gt;79c1160&lt;/td&gt;
          &lt;td&gt;@autonomous-AI-lab&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4090&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11992.70 ± 107.99&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;186.21 ± 0.13&lt;/td&gt;
          &lt;td&gt;2241453&lt;/td&gt;
          &lt;td&gt;@lhl&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5080&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR7 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8297.36 ± 9.50&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;181.99 ± 0.42&lt;/td&gt;
          &lt;td&gt;8a4280c&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5070 Ti&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR7 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6952.38 ± 13.73&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;176.85 ± 0.07&lt;/td&gt;
          &lt;td&gt;933414c&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 6000 Ada&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9229.23 ± 101.78&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;176.07 ± 0.26&lt;/td&gt;
          &lt;td&gt;b8e09f0&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3090 Ti&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6567.49 ± 20.30&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;171.19 ± 3.98&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@slaren&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3090&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5174.69 ± 21.83&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;158.16 ± 0.21&lt;/td&gt;
          &lt;td&gt;c76b420&lt;/td&gt;
          &lt;td&gt;@m18coppola&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;L40&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8870.49 ± 378.76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;152.01 ± 0.28&lt;/td&gt;
          &lt;td&gt;ee09828&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4080 SUPER&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6X / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8125.15 ± 41.05&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;148.33 ± 0.20&lt;/td&gt;
          &lt;td&gt;81086cd&lt;/td&gt;
          &lt;td&gt;@zacharyarnaise&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4080&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6X / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8031.64 ± 26.49&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;142.49 ± 0.16&lt;/td&gt;
          &lt;td&gt;20638e4&lt;/td&gt;
          &lt;td&gt;@Ristovski&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3080&lt;/td&gt;
          &lt;td&gt;10 GB / GDDR6X / 320 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5013.86 ± 24.80&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;139.65 ± 0.99&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@slaren&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A6000&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4913.93 ± 6.79&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;138.73 ± 2.75&lt;/td&gt;
          &lt;td&gt;4795c91&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4070 Ti SUPER&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6X / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6924.53 ± 13.87&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;132.26 ± 0.16&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@Ristovski&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX PRO 4000 Blackwell&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR7 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4992.83 ± 113.52&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;131.66 ± 0.20&lt;/td&gt;
          &lt;td&gt;7d77f07&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A5000&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4028.16 ± 19.14&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;130.07 ± 2.74&lt;/td&gt;
          &lt;td&gt;e5155e6&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla V100&lt;/td&gt;
          &lt;td&gt;32 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3042.64 ± 40.71&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;129.08 ± 0.05&lt;/td&gt;
          &lt;td&gt;51f5a45&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5070&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR7 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5184.75 ± 18.70&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;127.54 ± 0.46&lt;/td&gt;
          &lt;td&gt;@Spyro000&lt;/td&gt;
          &lt;td&gt;-&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;A40&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4609.01 ± 10.67&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;124.11 ± 0.17&lt;/td&gt;
          &lt;td&gt;3470a5c&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;A30&lt;/td&gt;
          &lt;td&gt;24 GB / HBM2e / 3072 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2767.10 ± 1.88&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;124.81 ± 0.16&lt;/td&gt;
          &lt;td&gt;583cb83&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Titan V&lt;/td&gt;
          &lt;td&gt;12 GB / HBM2 / 3072 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2617.46 ± 2.10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;108.79 ± 0.05&lt;/td&gt;
          &lt;td&gt;e56abd2&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2080 Ti&lt;/td&gt;
          &lt;td&gt;11 GB / GDDR6 / 352 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2890.66 ± 2.42&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;107.51 ± 0.21&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@ariya&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro RTX 6000&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2751.18 ± 19.43&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;102.77 ± 0.04&lt;/td&gt;
          &lt;td&gt;b8e09f0&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro RTX 8000&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2709.95 ± 3.35&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;102.68 ± 0.03&lt;/td&gt;
          &lt;td&gt;b8e09f0&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A4500&lt;/td&gt;
          &lt;td&gt;20 GB / GDDR6 / 320 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2827.20 ± 66.43&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;97.32 ± 2.80&lt;/td&gt;
          &lt;td&gt;5cdb27e&lt;/td&gt;
          &lt;td&gt;@aleksyx&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5060 Ti 16 GB&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR7 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3737.25 ± 6.79&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;90.94 ± 0.02&lt;/td&gt;
          &lt;td&gt;89d1029&lt;/td&gt;
          &lt;td&gt;@mike-llamacpp&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2070 SUPER&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2088.34 ± 1.94&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;88.06 ± 0.28&lt;/td&gt;
          &lt;td&gt;bc07349&lt;/td&gt;
          &lt;td&gt;@phstudy&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A4000&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2684.06 ± 15.28&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;83.77 ± 0.37&lt;/td&gt;
          &lt;td&gt;65349f2&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Titan Xp&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR5X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1154.96 ± 1.46&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;76.08 ± 0.08&lt;/td&gt;
          &lt;td&gt;c4510dc&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3060&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR6 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2137.50 ± 10.12&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;75.57 ± 0.07&lt;/td&gt;
          &lt;td&gt;baa9255&lt;/td&gt;
          &lt;td&gt;@QuantiusBenignus&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro RTX 4000&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1536.89 ± 0.90&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;65.62 ± 0.62&lt;/td&gt;
          &lt;td&gt;7d77f07&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4060 Ti 8 GB&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3394.63 ± 7.44&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;63.86 ± 0.01&lt;/td&gt;
          &lt;td&gt;89d1029&lt;/td&gt;
          &lt;td&gt;@mike-llamacpp&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1080 Ti&lt;/td&gt;
          &lt;td&gt;11 GB / GDDR5X / 352 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1084.41 ± 3.01&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;62.49 ± 0.06&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@ariya&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A4000 Ada&lt;/td&gt;
          &lt;td&gt;20 GB / GDDR6 / 160 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2779.77 ± 9.91&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;61.83 ± 0.04&lt;/td&gt;
          &lt;td&gt;a74a0d6&lt;/td&gt;
          &lt;td&gt;@sdwolfz&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2060 SUPER&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1420.24 ± 1.95&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;60.04 ± 0.01&lt;/td&gt;
          &lt;td&gt;5c0eb5e&lt;/td&gt;
          &lt;td&gt;@ggerganov&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla P100&lt;/td&gt;
          &lt;td&gt;16 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;760.80 ± 2.92&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;58.35 ± 0.00&lt;/td&gt;
          &lt;td&gt;b8372ee&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DGX Spark&lt;/td&gt;
          &lt;td&gt;128 GB / LPDDR5x&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3062.31 ± 11.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;57.21 ± 0.06&lt;/td&gt;
          &lt;td&gt;5acd455&lt;/td&gt;
          &lt;td&gt;@ggerganov&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla P40&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR5 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1007.42 ± 1.23&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;54.74 ± 0.07&lt;/td&gt;
          &lt;td&gt;c76b420&lt;/td&gt;
          &lt;td&gt;@m18coppola&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2000 Ada&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1956.22 ± 7.74&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.62 ± 0.04&lt;/td&gt;
          &lt;td&gt;756cfea&lt;/td&gt;
          &lt;td&gt;@DigitalRudeness&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla T4&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1219.06 ± 4.18&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;46.38 ± 0.73&lt;/td&gt;
          &lt;td&gt;d32e03f&lt;/td&gt;
          &lt;td&gt;@pt13762104&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4050 Laptop&lt;/td&gt;
          &lt;td&gt;6 GB / GDDR6 / 96 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1725.85 + 17.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.72 + 0.41&lt;/td&gt;
          &lt;td&gt;d79d8f3&lt;/td&gt;
          &lt;td&gt;@TimCabbage&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1660&lt;/td&gt;
          &lt;td&gt;6 GB / GDDR5 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;148.91 ± 0.01&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.35 ± 0.02&lt;/td&gt;
          &lt;td&gt;9515c61&lt;/td&gt;
          &lt;td&gt;@ariya&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla M40&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR5 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;282.65 ± 0.15&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;38.04 ± 0.02&lt;/td&gt;
          &lt;td&gt;97d5117&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1070 Ti&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR5 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;714.44 ± 2.04&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;37.82 ± 0.02&lt;/td&gt;
          &lt;td&gt;79c1160&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Jetson AGX Orin&lt;/td&gt;
          &lt;td&gt;64 GB / LPDDR5 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;991.31 ± 1.15&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;33.58 ± 0.14&lt;/td&gt;
          &lt;td&gt;c1b1876&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla P4&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR5 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;514.53 ± 3.06&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;33.29 ± 0.00&lt;/td&gt;
          &lt;td&gt;c76b420&lt;/td&gt;
          &lt;td&gt;@m18coppola&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;P106-100&lt;/td&gt;
          &lt;td&gt;6 GB / GDDR5 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;406.94 ± 0.25&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;30.40 ± 0.02&lt;/td&gt;
          &lt;td&gt;5fd160b&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1060&lt;/td&gt;
          &lt;td&gt;6 GB / GDDR5 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;416.85 ± 1.75&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;27.79 ± 0.02&lt;/td&gt;
          &lt;td&gt;5fd160b&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro T1000&lt;/td&gt;
          &lt;td&gt;4 GB / GDDR5 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;79.44 ± 0.01&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;27.82 ± 0.18&lt;/td&gt;
          &lt;td&gt;f6da8cb&lt;/td&gt;
          &lt;td&gt;@hanabu&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro P2000&lt;/td&gt;
          &lt;td&gt;5 GB / GDDR5 / 160 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;309.30 ± 0.05&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;23.63 ± 0.00&lt;/td&gt;
          &lt;td&gt;baa9255&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro P1000&lt;/td&gt;
          &lt;td&gt;4 GB / GDDR5 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;183.40 ± 0.11&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.99 ± 0.13&lt;/td&gt;
          &lt;td&gt;1e74897&lt;/td&gt;
          &lt;td&gt;@aleksyx&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla K80&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR5 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;133.14 ± 0.55&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.80 ± 0.02&lt;/td&gt;
          &lt;td&gt;32732f2&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;llama-2-7b-q4_0-with-fa&#34;&gt;Llama 2 7B, Q4_0, with FA
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Chip&lt;/th&gt;
          &lt;th&gt;Memory&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;pp512 t/s&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;tg128 t/s&lt;/th&gt;
          &lt;th&gt;Commit&lt;/th&gt;
          &lt;th&gt;Thanks to&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5090&lt;/td&gt;
          &lt;td&gt;32 GB / GDDR7 / 512 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14970.15 ± 381.06&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;300.40 ± 0.28&lt;/td&gt;
          &lt;td&gt;8cf6b42&lt;/td&gt;
          &lt;td&gt;@totaldev&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX PRO 6000 Blackwell&lt;/td&gt;
          &lt;td&gt;96 GB / GDDR7 / 512 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16618.98 ± 20.66&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;281.11 ± 0.41&lt;/td&gt;
          &lt;td&gt;5143fa8&lt;/td&gt;
          &lt;td&gt;@Tom94&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;H100 80 GB&lt;/td&gt;
          &lt;td&gt;80 GB / HBM3 / 5120 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11263.29 ± 98.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;280.74 ± 1.17&lt;/td&gt;
          &lt;td&gt;5143fa8&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;A100 80 GB&lt;/td&gt;
          &lt;td&gt;80 GB / HBM2e / 5120 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5285.96 ± 6.58&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;200.90 ± 0.12&lt;/td&gt;
          &lt;td&gt;5143fa8&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4090 D&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12506.97 ± 11.51&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;191.57 ± 0.03&lt;/td&gt;
          &lt;td&gt;79c1160&lt;/td&gt;
          &lt;td&gt;@autonomous-AI-lab&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4090&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14770.63 ± 102.93&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;188.96 ± 0.05&lt;/td&gt;
          &lt;td&gt;2241453&lt;/td&gt;
          &lt;td&gt;@lhl&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5080&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR7 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9487.70 ± 21.89&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;184.68 ± 0.05&lt;/td&gt;
          &lt;td&gt;8a4280c&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5070 Ti&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR7 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8419.56 ± 35.50&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;182.43 ± 0.09&lt;/td&gt;
          &lt;td&gt;933414c&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 6000 Ada&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10576.85 ± 530.21&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;179.47 ± 0.32&lt;/td&gt;
          &lt;td&gt;b8e09f0&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3090 Ti&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6924.01 ± 10.76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;172.26 ± 1.31&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@slaren&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX PRO 4500 Blackwell&lt;/td&gt;
          &lt;td&gt;32 GB / GDDR7 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7251.66 ± 92.40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;168.90 ± 0.20&lt;/td&gt;
          &lt;td&gt;becc481&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3090&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5560.06 ± 16.28&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;161.89 ± 0.18&lt;/td&gt;
          &lt;td&gt;c76b420&lt;/td&gt;
          &lt;td&gt;@m18coppola&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;L40&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10097.64 ± 671.22&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;153.76 ± 0.12&lt;/td&gt;
          &lt;td&gt;ee09828&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4080 SUPER&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6X / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9439.01 ± 56.75&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;147.48 ± 1.41&lt;/td&gt;
          &lt;td&gt;81086cd&lt;/td&gt;
          &lt;td&gt;@zacharyarnaise&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4080&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6X / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9205.93 ± 22.31&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;143.47 ± 0.02&lt;/td&gt;
          &lt;td&gt;20638e4&lt;/td&gt;
          &lt;td&gt;@Ristovski&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A6000&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5662.39 ± 13.87&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;144.87 ± 0.18&lt;/td&gt;
          &lt;td&gt;4795c91&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3080&lt;/td&gt;
          &lt;td&gt;10 GB / GDDR6X / 320 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5569.56 ± 14.04&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;139.95 ± 0.95&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@slaren&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX PRO 4000 Blackwell&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR7 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5674.44 ± 139.53&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;136.38 ± 0.13&lt;/td&gt;
          &lt;td&gt;7d77f07&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A5000&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4552.15 ± 9.68&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;135.83 ± 0.11&lt;/td&gt;
          &lt;td&gt;e5155e6&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla V100&lt;/td&gt;
          &lt;td&gt;32 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2973.78 ± 3.62&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;134.76 ± 0.02&lt;/td&gt;
          &lt;td&gt;51f5a45&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4070 Ti SUPER&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6X / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7612.32 ± 37.35&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;132.85 ± 0.31&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@Ristovski&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;A30&lt;/td&gt;
          &lt;td&gt;24 GB / HBM2e / 3072 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3068.72 ± 0.63&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;131.93 ± 0.18&lt;/td&gt;
          &lt;td&gt;583cb83&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5070&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR7 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5783.44 ± 36.95&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;128.21 ± 2.52&lt;/td&gt;
          &lt;td&gt;@Spyro000&lt;/td&gt;
          &lt;td&gt;-&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;A40&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5256.38 ± 19.39&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;126.24 ± 0.06&lt;/td&gt;
          &lt;td&gt;3470a5c&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Titan V&lt;/td&gt;
          &lt;td&gt;12 GB / HBM2 / 3072 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2481.25 ± 1.31&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;112.17 ± 0.01&lt;/td&gt;
          &lt;td&gt;e56abd2&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2080 Ti&lt;/td&gt;
          &lt;td&gt;11 GB / GDDR6 / 352 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3107.61 ± 4.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;109.17 ± 0.07&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@ariya&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro RTX 6000&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3053.96 ± 1.37&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;104.38 ± 0.04&lt;/td&gt;
          &lt;td&gt;b8e09f0&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro RTX 8000&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3052.35 ± 5.64&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;103.63 ± 0.02&lt;/td&gt;
          &lt;td&gt;b8e09f0&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A4500&lt;/td&gt;
          &lt;td&gt;20 GB / GDDR6 / 320 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3453.10 ± 49.19&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;103.00 ± 0.25&lt;/td&gt;
          &lt;td&gt;5cdb27e&lt;/td&gt;
          &lt;td&gt;@aleksyx&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 5060 Ti 16 GB&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR7 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4195.53 ± 1.98&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;93.46 ± 0.01&lt;/td&gt;
          &lt;td&gt;89d1029&lt;/td&gt;
          &lt;td&gt;@mike-llamacpp&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2070 SUPER&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2293.29 ± 5.91&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;87.71 ± 0.29&lt;/td&gt;
          &lt;td&gt;bc07349&lt;/td&gt;
          &lt;td&gt;@phstudy&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A4000&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2807.83 ± 52.44&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;85.17 ± 0.66&lt;/td&gt;
          &lt;td&gt;65349f2&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 3060&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR6 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2407.67 ± 3.73&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;76.92 ± 0.03&lt;/td&gt;
          &lt;td&gt;baa9255&lt;/td&gt;
          &lt;td&gt;@QuantiusBenignus&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Titan Xp&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR5X / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1218.12 ± 1.82&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;73.84 ± 0.04&lt;/td&gt;
          &lt;td&gt;c4510dc&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro RTX 4000&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1662.80 ± 2.04&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;67.62 ± 0.67&lt;/td&gt;
          &lt;td&gt;7d77f07&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 4060 Ti 8 GB&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3803.45 ± 70.80&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64.03 ± 0.53&lt;/td&gt;
          &lt;td&gt;89d1029&lt;/td&gt;
          &lt;td&gt;@mike-llamacpp&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla P100&lt;/td&gt;
          &lt;td&gt;16 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;787.36 ± 3.27&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;61.99 ± 0.00&lt;/td&gt;
          &lt;td&gt;b8372ee&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1080 Ti&lt;/td&gt;
          &lt;td&gt;11 GB / GDDR5X / 352 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1138.14 ± 2.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;61.38 ± 0.03&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@ariya&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX A4000 Ada&lt;/td&gt;
          &lt;td&gt;20 GB / GDDR6 / 160 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3171.86 ± 4.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;61.37 ± 0.01&lt;/td&gt;
          &lt;td&gt;a74a0d6&lt;/td&gt;
          &lt;td&gt;@sdwolfz&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2060 SUPER&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1563.77 ± 0.51&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;61.13 ± 0.05&lt;/td&gt;
          &lt;td&gt;5c0eb5e&lt;/td&gt;
          &lt;td&gt;@ggerganov&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DGX Spark&lt;/td&gt;
          &lt;td&gt;128 GB / LPDDR5x&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3661.37 ± 38.66&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;56.74 ± 0.03&lt;/td&gt;
          &lt;td&gt;5acd455&lt;/td&gt;
          &lt;td&gt;@ggerganov&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla P40&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR5 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1079.66 ± 0.18&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.73 ± 0.05&lt;/td&gt;
          &lt;td&gt;c76b420&lt;/td&gt;
          &lt;td&gt;@m18coppola&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RTX 2000 Ada&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2250.14 ± 5.91&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.71 ± 0.01&lt;/td&gt;
          &lt;td&gt;756cfea&lt;/td&gt;
          &lt;td&gt;@DigitalRudeness&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla T4&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1309.73 ± 1.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;44.03 ± 0.57&lt;/td&gt;
          &lt;td&gt;d32e03f&lt;/td&gt;
          &lt;td&gt;@pt13762104&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1660&lt;/td&gt;
          &lt;td&gt;6 GB / GDDR5 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;154.45 ± 0.52&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.43 ± 0.01&lt;/td&gt;
          &lt;td&gt;9515c61&lt;/td&gt;
          &lt;td&gt;@ariya&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla M40&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR5 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;290.17 ± 0.11&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;39.98 ± 0.01&lt;/td&gt;
          &lt;td&gt;97d5117&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1070 Ti&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR5 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;790.52 ± 2.39&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;37.87 ± 0.00&lt;/td&gt;
          &lt;td&gt;79c1160&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Jetson AGX Orin&lt;/td&gt;
          &lt;td&gt;64 GB / LPDDR5 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1171.96 ± 4.70&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;35.88 ± 0.18&lt;/td&gt;
          &lt;td&gt;c1b1876&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla P4&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR5 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;529.53 ± 2.12&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;33.12 ± 0.03&lt;/td&gt;
          &lt;td&gt;c76b420&lt;/td&gt;
          &lt;td&gt;@m18coppola&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;P106-100&lt;/td&gt;
          &lt;td&gt;6 GB / GDDR5 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;438.49 ± 0.38&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;30.64 ± 0.06&lt;/td&gt;
          &lt;td&gt;5fd160b&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GTX 1060&lt;/td&gt;
          &lt;td&gt;6 GB / GDDR5 / 192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;446.19 ± 0.81&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28.18 ± 0.01&lt;/td&gt;
          &lt;td&gt;5fd160b&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro T1000&lt;/td&gt;
          &lt;td&gt;4 GB / GDDR5 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;27.46 ± 0.23&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;27.46 ± 0.23&lt;/td&gt;
          &lt;td&gt;f6da8cb&lt;/td&gt;
          &lt;td&gt;@hanabu&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro P2000&lt;/td&gt;
          &lt;td&gt;5 GB / GDDR5 / 160 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;311.55 ± 0.19&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;23.76 ± 0.01&lt;/td&gt;
          &lt;td&gt;baa9255&lt;/td&gt;
          &lt;td&gt;@TinyServal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tesla K80&lt;/td&gt;
          &lt;td&gt;12 GB / GDDR5 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;133.36 ± 0.60&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14.27 ± 0.32&lt;/td&gt;
          &lt;td&gt;32732f2&lt;/td&gt;
          &lt;td&gt;@pebaryan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Quadro P1000&lt;/td&gt;
          &lt;td&gt;4 GB / GDDR5 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;173.82 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.65 ± 0.14&lt;/td&gt;
          &lt;td&gt;1e74897&lt;/td&gt;
          &lt;td&gt;@aleksyx&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;apple-silicon-の参照基準&#34;&gt;Apple Silicon の参照基準
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;#4167&lt;/code&gt; の discussion が後の 3 つと大きく違うのは、より早い段階で統一された見方を作っており、&lt;code&gt;Q4_0&lt;/code&gt; だけでなく &lt;code&gt;F16&lt;/code&gt; や &lt;code&gt;Q8_0&lt;/code&gt; も併記している点です。&lt;code&gt;PP / TG / t/s&lt;/code&gt; を理解するうえで役立ちます。&lt;/p&gt;
&lt;p&gt;discussion 内での説明は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PP&lt;/code&gt; は &lt;code&gt;prompt processing&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TG&lt;/code&gt; は &lt;code&gt;text-generation&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;t/s&lt;/code&gt; は &lt;code&gt;tokens per second&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本文で確認できる時系列比較の例として、同じ &lt;code&gt;M2 Ultra&lt;/code&gt; がバージョンと &lt;code&gt;FA&lt;/code&gt; の進化に応じてどう変わったかが示されています。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;日時&lt;/th&gt;
          &lt;th&gt;デバイス&lt;/th&gt;
          &lt;th&gt;バージョン/説明&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;帯域 GB/s&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;GPU コア&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;F16 PP&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;F16 TG&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q8_0 PP&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q8_0 TG&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q4_0 PP&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q4_0 TG&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;2023-11-21&lt;/td&gt;
          &lt;td&gt;M2 Ultra&lt;/td&gt;
          &lt;td&gt;8e672ef&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;800&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1401.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1248.59&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;66.64&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1238.48&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;94.27&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2024-11-12&lt;/td&gt;
          &lt;td&gt;M2 Ultra&lt;/td&gt;
          &lt;td&gt;86ed72d + FA&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;800&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1525.95&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.15&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1368.18&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;73.11&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1391.78&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;108.80&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2025-08-02&lt;/td&gt;
          &lt;td&gt;M2 Ultra&lt;/td&gt;
          &lt;td&gt;5c0eb5e + FA&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;800&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1561.35&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.24&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1386.97&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;73.35&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1412.42&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;109.41&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;デバイス&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q4_0 PP&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q4_0 TG&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q8_0 PP&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Q8_0 TG&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;F16 PP&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;F16 TG&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;M1 Pro 16 GPU&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;266.25&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;36.41&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;270.37&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;22.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;302.14&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.75&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;M2 Ultra 76 GPU&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1238.48&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;94.27&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1248.59&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;66.64&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1401.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.02&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;M3 Max 40 GPU&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;690.99&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;65.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;749.37&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.00&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;794.26&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;25.27&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Apple の系統はここでは全文を展開せず、以降は指定された 3 種類のディスクリート GPU バックエンドのランキングを中心に見ます。&lt;/p&gt;
&lt;h2 id=&#34;rocm--hip-完全ランキング&#34;&gt;ROCm / HIP 完全ランキング
&lt;/h2&gt;&lt;h3 id=&#34;llama-2-7b-q4_0-no-fa-1&#34;&gt;Llama 2 7B, Q4_0, no FA
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Chip&lt;/th&gt;
          &lt;th&gt;Memory&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;pp512 t/s&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;tg128 t/s&lt;/th&gt;
          &lt;th&gt;Commit&lt;/th&gt;
          &lt;th&gt;Thanks to&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI300X&lt;/td&gt;
          &lt;td&gt;192 GB / HBM3 / 8192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11476.40 ± 72.79&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;232.92 ± 0.53&lt;/td&gt;
          &lt;td&gt;ee3a9fc&lt;/td&gt;
          &lt;td&gt;@yeahdongcn&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7900 XTX&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3552.27 ± 101.96&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;167.11 ± 0.50&lt;/td&gt;
          &lt;td&gt;2f0c2db&lt;/td&gt;
          &lt;td&gt;@Diablo-D3&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI210&lt;/td&gt;
          &lt;td&gt;64 GB / HBM2e / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2486.22 ± 9.58&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;124.51 ± 0.04&lt;/td&gt;
          &lt;td&gt;8160b38&lt;/td&gt;
          &lt;td&gt;@65a&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pro W7900&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3213.17 ± 80.47&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;121.18 ± 0.06&lt;/td&gt;
          &lt;td&gt;8160b38&lt;/td&gt;
          &lt;td&gt;@65a&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7900 XT&lt;/td&gt;
          &lt;td&gt;20 GB / GDDR6 / 320 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3098.38 ± 24.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;116.15 ± 0.06&lt;/td&gt;
          &lt;td&gt;1e15bfd&lt;/td&gt;
          &lt;td&gt;@AdamNiederer&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 9070&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2381.77 ± 3.68&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;114.48 ± 0.60&lt;/td&gt;
          &lt;td&gt;d0660f2&lt;/td&gt;
          &lt;td&gt;@andj1210&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI100&lt;/td&gt;
          &lt;td&gt;32 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2732.83 ± 1.98&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;110.48 ± 0.14&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@firefox42&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 9070 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5055.19 ± 109.58&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;101.27 ± 0.27&lt;/td&gt;
          &lt;td&gt;583cb83&lt;/td&gt;
          &lt;td&gt;@Hadrianneue&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7800 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2151.81 + 17.94&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;100.94 + 0.10&lt;/td&gt;
          &lt;td&gt;00131d6&lt;/td&gt;
          &lt;td&gt;@olegshulyakov&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI50&lt;/td&gt;
          &lt;td&gt;32 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1057.24 ± 0.53&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;98.95 ± 0.25&lt;/td&gt;
          &lt;td&gt;97d5117&lt;/td&gt;
          &lt;td&gt;@wtarreau&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7900 GRE&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1456.98 ± 12.39&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;96.07 ± 0.10&lt;/td&gt;
          &lt;td&gt;6fa3b55&lt;/td&gt;
          &lt;td&gt;@MihaiBojescu&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AI PRO R9700&lt;/td&gt;
          &lt;td&gt;32 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4443.54 ± 339.25&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;93.84 ± 0.26&lt;/td&gt;
          &lt;td&gt;bd4ef13&lt;/td&gt;
          &lt;td&gt;@gogich77&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI60&lt;/td&gt;
          &lt;td&gt;32 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1289.11 ± 0.62&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;91.46 ± 0.13&lt;/td&gt;
          &lt;td&gt;504af20&lt;/td&gt;
          &lt;td&gt;@Said-Akbar&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 6900 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1889.84 ± 31.21&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;88.49 ± 0.00&lt;/td&gt;
          &lt;td&gt;a972fae&lt;/td&gt;
          &lt;td&gt;@notgood&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pro VII&lt;/td&gt;
          &lt;td&gt;16 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1064.99 ± 1.18&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;87.45 ± 0.04&lt;/td&gt;
          &lt;td&gt;2739a71&lt;/td&gt;
          &lt;td&gt;@8XXD8&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 6800 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1447.07 ± 1.36&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;83.92 ± 0.03&lt;/td&gt;
          &lt;td&gt;79c1160&lt;/td&gt;
          &lt;td&gt;@MrLavender&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pro V620&lt;/td&gt;
          &lt;td&gt;32 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1803.65 ± 2.54&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;74.66 ± 0.01&lt;/td&gt;
          &lt;td&gt;5c0eb5e&lt;/td&gt;
          &lt;td&gt;@samteezy&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 9060 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1419.67 ± 3.64&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;67.58 ± 0.24&lt;/td&gt;
          &lt;td&gt;a0e13dc&lt;/td&gt;
          &lt;td&gt;@lcy0321&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 5700 XT&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;354.17 ± 0.18&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;67.55 ± 0.04&lt;/td&gt;
          &lt;td&gt;c05e8c9&lt;/td&gt;
          &lt;td&gt;@daniandtheweb&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI25&lt;/td&gt;
          &lt;td&gt;16 GB / HBM2 / 2048 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;409.83 ± 0.23&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;63.94 ± 0.06&lt;/td&gt;
          &lt;td&gt;2739a71&lt;/td&gt;
          &lt;td&gt;@8XXD8&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AI Max+ 395&lt;/td&gt;
          &lt;td&gt;128 GB / LPDDR5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;911.36 ± 1.79&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.01 ± 0.07&lt;/td&gt;
          &lt;td&gt;e60f241&lt;/td&gt;
          &lt;td&gt;@firefox42&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7600 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1099.64 ± 2.05&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48.58 ± 0.06&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@wbruna&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX Vega 64&lt;/td&gt;
          &lt;td&gt;8 GB / HBM2 / 2048 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;240.68 ± 0.09&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48.46 ± 0.09&lt;/td&gt;
          &lt;td&gt;ec428b0&lt;/td&gt;
          &lt;td&gt;@davispuh&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Radeon 8060S&lt;/td&gt;
          &lt;td&gt;System Shared / DDR5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;351.36 ± 0.67&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;47.97 ± 0.33&lt;/td&gt;
          &lt;td&gt;1d0125b&lt;/td&gt;
          &lt;td&gt;@hspak&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Radeon 880M&lt;/td&gt;
          &lt;td&gt;System Shared / DDR5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;163.25 ± 13.86&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.97 ± 1.63&lt;/td&gt;
          &lt;td&gt;c55d53a&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;llama-2-7b-q4_0-with-fa-1&#34;&gt;Llama 2 7B, Q4_0, with FA
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Chip&lt;/th&gt;
          &lt;th&gt;Memory&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;pp512 t/s&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;tg128 t/s&lt;/th&gt;
          &lt;th&gt;Commit&lt;/th&gt;
          &lt;th&gt;Thanks to&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI300X&lt;/td&gt;
          &lt;td&gt;192 GB / HBM3 / 8192 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11945.97 ± 54.29&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;218.53 ± 0.09&lt;/td&gt;
          &lt;td&gt;ee3a9fc&lt;/td&gt;
          &lt;td&gt;@yeahdongcn&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7900 XTX&lt;/td&gt;
          &lt;td&gt;24 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3874.25 ± 11.92&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;170.12 ± 0.56&lt;/td&gt;
          &lt;td&gt;2f0c2db&lt;/td&gt;
          &lt;td&gt;@Diablo-D3&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pro W7900&lt;/td&gt;
          &lt;td&gt;48 GB / GDDR6 / 384 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3472.86 ± 52.86&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;127.43 ± 0.12&lt;/td&gt;
          &lt;td&gt;8160b38&lt;/td&gt;
          &lt;td&gt;@65a&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI210&lt;/td&gt;
          &lt;td&gt;64 GB / HBM2e / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2571.82 ± 2.89&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;130.18 ± 0.06&lt;/td&gt;
          &lt;td&gt;8160b38&lt;/td&gt;
          &lt;td&gt;@65a&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 9070&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2452.68 ± 1.33&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;115.32 ± 0.52&lt;/td&gt;
          &lt;td&gt;d0660f2&lt;/td&gt;
          &lt;td&gt;@andj1210&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7900 XT&lt;/td&gt;
          &lt;td&gt;20 GB / GDDR6 / 320 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3261.75 ± 9.09&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;112.30 ± 0.06&lt;/td&gt;
          &lt;td&gt;1e15bfd&lt;/td&gt;
          &lt;td&gt;@AdamNiederer&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI50&lt;/td&gt;
          &lt;td&gt;32 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1129.43 ± 0.15&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;105.82 ± 0.07&lt;/td&gt;
          &lt;td&gt;97d5117&lt;/td&gt;
          &lt;td&gt;@wtarreau&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instinct MI100&lt;/td&gt;
          &lt;td&gt;32 GB / HBM2 / 4096 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2755.00 ± 3.68&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;104.71 ± 0.10&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@firefox42&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AI PRO R9700&lt;/td&gt;
          &lt;td&gt;32 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4773.07 ± 49.30&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;97.98 ± 0.13&lt;/td&gt;
          &lt;td&gt;bd4ef13&lt;/td&gt;
          &lt;td&gt;@gogich77&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7900 GRE&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1598.79 ± 11.48&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;97.53 ± 0.06&lt;/td&gt;
          &lt;td&gt;6fa3b55&lt;/td&gt;
          &lt;td&gt;@MihaiBojescu&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 9070 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4903.51 ± 96.36&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;97.28 ± 0.13&lt;/td&gt;
          &lt;td&gt;583cb83&lt;/td&gt;
          &lt;td&gt;@Hadrianneue&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7800 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2304.63 + 2.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;95.99 + 0.21&lt;/td&gt;
          &lt;td&gt;00131d6&lt;/td&gt;
          &lt;td&gt;@olegshulyakov&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 6900 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1948.31 ± 13.51&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;85.04 ± 0.02&lt;/td&gt;
          &lt;td&gt;a972fae&lt;/td&gt;
          &lt;td&gt;@notgood&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pro V620&lt;/td&gt;
          &lt;td&gt;32 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1256.86 ± 0.55&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;70.83 ± 0.02&lt;/td&gt;
          &lt;td&gt;5c0eb5e&lt;/td&gt;
          &lt;td&gt;@samteezy&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 9060 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1479.27 ± 0.71&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;65.42 ± 0.19&lt;/td&gt;
          &lt;td&gt;a0e13dc&lt;/td&gt;
          &lt;td&gt;@lcy0321&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 5700 XT&lt;/td&gt;
          &lt;td&gt;8 GB / GDDR6 / 256 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;314.17 ± 0.29&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;62.02 ± 0.05&lt;/td&gt;
          &lt;td&gt;c05e8c9&lt;/td&gt;
          &lt;td&gt;@daniandtheweb&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AI Max+ 395&lt;/td&gt;
          &lt;td&gt;128 GB / LPDDR5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1003.53 ± 2.91&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;49.87 ± 0.02&lt;/td&gt;
          &lt;td&gt;e60f241&lt;/td&gt;
          &lt;td&gt;@firefox42&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Radeon 8060S&lt;/td&gt;
          &lt;td&gt;System Shared / DDR5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;366.08 ± 1.44&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48.97 ± 0.15&lt;/td&gt;
          &lt;td&gt;1d0125b&lt;/td&gt;
          &lt;td&gt;@hspak&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX 7600 XT&lt;/td&gt;
          &lt;td&gt;16 GB / GDDR6 / 128 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1199.16 ± 1.07&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;47.65 ± 0.06&lt;/td&gt;
          &lt;td&gt;9c35706&lt;/td&gt;
          &lt;td&gt;@wbruna&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RX Vega 64&lt;/td&gt;
          &lt;td&gt;8 GB / HBM2 / 2048 bit&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;153.17 ± 0.72&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;42.46 ± 0.40&lt;/td&gt;
          &lt;td&gt;ec428b0&lt;/td&gt;
          &lt;td&gt;@davispuh&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Radeon 880M&lt;/td&gt;
          &lt;td&gt;System Shared / DDR5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;213.31 ± 14.05&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.16 ± 1.41&lt;/td&gt;
          &lt;td&gt;c55d53a&lt;/td&gt;
          &lt;td&gt;@Hedede&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;vulkan-完全ランキング&#34;&gt;Vulkan 完全ランキング
&lt;/h2&gt;&lt;h3 id=&#34;llama-2-7b-q4_0-no-fa-2&#34;&gt;Llama 2 7B, Q4_0, no FA
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Chip&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;pp512 t/s&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;tg128 t/s&lt;/th&gt;
          &lt;th&gt;Commit&lt;/th&gt;
          &lt;th&gt;Comments&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5090&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10381.64 ± 508.84&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;263.63 ± 0.91&lt;/td&gt;
          &lt;td&gt;ca71fb9&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7900 XTX&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3531.93 ± 31.74&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;191.28 ± 0.20&lt;/td&gt;
          &lt;td&gt;2f0c2db&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4090&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9452.03 ± 187.70&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;187.97 ± 0.21&lt;/td&gt;
          &lt;td&gt;4ae88d0&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5080&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7444.99 ± 20.11&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;185.10 ± 0.54&lt;/td&gt;
          &lt;td&gt;f6b533d&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia A100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6389.86 ± 4.83&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;160.78 ± 0.16&lt;/td&gt;
          &lt;td&gt;2257758&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3090&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4298.97 ± 10.59&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;160.13 ± 0.25&lt;/td&gt;
          &lt;td&gt;4ae88d0&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4080 Super&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7101.18 ± 269.79&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;147.13 ± 5.64&lt;/td&gt;
          &lt;td&gt;81086cd&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3080&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4287.11 ± 55.50&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;139.15 ± 0.05&lt;/td&gt;
          &lt;td&gt;7c7d6ce&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX A5000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3641.55 ± 9.05&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;139.89 ± 0.69&lt;/td&gt;
          &lt;td&gt;4ae88d0&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 9070 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5036.04 ± 88.16&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;137.11 ± 0.02&lt;/td&gt;
          &lt;td&gt;e9fd8dc&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5070 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6213.63 ± 27.72&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;135.63 ± 0.18&lt;/td&gt;
          &lt;td&gt;d13d0f6&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon AI Pro R9700&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4036.04 ± 34.58&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;130.19 ± 0.39&lt;/td&gt;
          &lt;td&gt;3191462&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla V100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1391.39 ± 1.19&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;129.58 ± 0.58&lt;/td&gt;
          &lt;td&gt;7d77f07&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4070 Ti Super&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6099.18 ± 154.30&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;129.45 ± 0.18&lt;/td&gt;
          &lt;td&gt;4ae88d0&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7900 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2941.58 ± 17.17&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;123.18 ± 0.40&lt;/td&gt;
          &lt;td&gt;71e74a3&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 9070&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3164.10 ± 66.84&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;119.71 ± 3.40&lt;/td&gt;
          &lt;td&gt;21c17b5&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7800 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2017.33 ± 19.30&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;118.27 ± 0.27&lt;/td&gt;
          &lt;td&gt;4fdbc1e&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7900 GRE&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2336.31 ± 7.52&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;116.11 ± 0.26&lt;/td&gt;
          &lt;td&gt;4b2a477&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M3 Ultra&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1116.83 ± 0.55&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;115.54 ± 0.78&lt;/td&gt;
          &lt;td&gt;2d451c8&lt;/td&gt;
          &lt;td&gt;MoltenVK&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc Pro B70&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3379.00 ± 47.92&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;112.02 ± 1.08&lt;/td&gt;
          &lt;td&gt;b863507&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Titan V&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;984.36 ± 4.13&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;108.86 ± 0.28&lt;/td&gt;
          &lt;td&gt;e56abd2&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro VII&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1078.54 ± 0.86&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;107.82 ± 0.14&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6900 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1837.21 ± 25.44&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;104.60 ± 0.30&lt;/td&gt;
          &lt;td&gt;a972fae&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc Pro A60&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2261.11 ± 9.53&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;104.25 ± 0.07&lt;/td&gt;
          &lt;td&gt;97d5117&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6800 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1752.92 ± 1.71&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;100.32 ± 0.97&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon VII&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1059.14 ± 0.56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;101.19 ± 0.53&lt;/td&gt;
          &lt;td&gt;77d6ae4&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 2080 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1888.24 ± 9.20&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;97.58 ± 6.60&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6800&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1698.69 ± 0.80&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;95.61 ± 0.19&lt;/td&gt;
          &lt;td&gt;4b385bf&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro W6800X Duo&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;687.71 ± 4.33&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;94.82 ± 0.12&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5060 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3460.92 ± 7.16&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;93.51 ± 0.15&lt;/td&gt;
          &lt;td&gt;89f10ba&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4070&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3179.37 ± 46.16&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;92.29 ± 0.28&lt;/td&gt;
          &lt;td&gt;9a48399&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro W6800X&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;510.80 ± 0.13&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;86.47 ± 0.46&lt;/td&gt;
          &lt;td&gt;13b4548&lt;/td&gt;
          &lt;td&gt;MoltenVK&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6700 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1051.20 ± 0.98&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;83.88 ± 0.08&lt;/td&gt;
          &lt;td&gt;6d75883&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6750 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1040.58 ± 0.35&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;81.98 ± 0.03&lt;/td&gt;
          &lt;td&gt;228f34c&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro V620&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1595.32 ± 1.59&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;81.78 ± 0.06&lt;/td&gt;
          &lt;td&gt;03d4698&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3070&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2113.02 ± 7.38&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;78.71 ± 0.13&lt;/td&gt;
          &lt;td&gt;1b8fb81&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Instinct MI60&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;369.26 ± 2.48&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;78.16 ± 1.40&lt;/td&gt;
          &lt;td&gt;504af20&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3060&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1815.70 ± 5.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;75.94 ± 0.80&lt;/td&gt;
          &lt;td&gt;92c0b38&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M4 Max&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;724.77 ± 20.93&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;75.02 ± 0.14&lt;/td&gt;
          &lt;td&gt;1ece0cb6&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla T10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1692.70 ± 2.05&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;75.01 ± 0.21&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX A4000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2248.14 ± 7.59&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;73.74 ± 0.08&lt;/td&gt;
          &lt;td&gt;f5245b5&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 5700 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;529.69 ± 0.26&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;70.73 ± 0.04&lt;/td&gt;
          &lt;td&gt;4fdbc1e&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 9060 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2141.67 ± 6.87&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;70.54 ± 0.74&lt;/td&gt;
          &lt;td&gt;ed52f36&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc B580&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;620.94 ± 15.33&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;70.14 ± 0.28&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro V540&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;583.88 ± 6.56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;69.64 ± 0.24&lt;/td&gt;
          &lt;td&gt;9da3dcd&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro W5700&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;449.85 ± 0.46&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;68.55 ± 0.15&lt;/td&gt;
          &lt;td&gt;23bc779&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc Pro B60&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;522.36 ± 3.60&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;68.55 ± 0.01&lt;/td&gt;
          &lt;td&gt;516a4ca&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1080 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;540.69 ± 0.71&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64.99 ± 0.08&lt;/td&gt;
          &lt;td&gt;360d653&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 2070 Super&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1199.13 ± 7.70&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64.64 ± 0.20&lt;/td&gt;
          &lt;td&gt;b7552cf&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3070 Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1689.40 ± 19.57&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;63.64 ± 0.39&lt;/td&gt;
          &lt;td&gt;ceff6bb&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla P100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;678.14 ± 1.40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;63.16 ± 0.06&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD BC-250&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;370.66 ± 0.04&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;62.32 ± 0.32&lt;/td&gt;
          &lt;td&gt;5886f4f&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6650 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1029.52 ± 1.21&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;62.14 ± 0.02&lt;/td&gt;
          &lt;td&gt;dbb852b&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4060 Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2135.66 ± 23.18&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;59.53 ± 0.03&lt;/td&gt;
          &lt;td&gt;a5c07dc&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla P40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;488.06 ± 0.27&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;59.36 ± 0.16&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1660 Ti Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;511.67 ± 2.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;56.60 ± 0.07&lt;/td&gt;
          &lt;td&gt;b43556e&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Instinct MI25&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;439.42 ± 0.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;54.69 ± 0.03&lt;/td&gt;
          &lt;td&gt;2739a71&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6600 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;574.65 ± 0.86&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.92 ± 0.11&lt;/td&gt;
          &lt;td&gt;091592d&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen AI Max+ 395&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1288.96 ± 6.49&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.59 ± 0.38&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7600 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;840.85 ± 3.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.02 ± 0.01&lt;/td&gt;
          &lt;td&gt;01d8eaa&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc A770&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1073.85 + 29.68&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;52.56 + 0.11&lt;/td&gt;
          &lt;td&gt;a69d54f&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GB10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2737.79 ± 19.56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;52.28 ± 0.03&lt;/td&gt;
          &lt;td&gt;b9da444&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD FirePro S9300 x2&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;247.26 ± 0.43&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;51.86 ± 0.11&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;Split across two GPUs&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6600&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;761.89 ± 1.76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.63 ± 0.02&lt;/td&gt;
          &lt;td&gt;b1c70e2&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX Vega 56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;439.87 ± 0.61&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.23 ± 0.14&lt;/td&gt;
          &lt;td&gt;92c0b38&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc B570&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;913.95 ± 0.90&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;49.64 ± 0.03&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3060 Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1059.76 ± 3.54&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;49.03 ± 0.13&lt;/td&gt;
          &lt;td&gt;dbb3a47&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6800M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;861.99 ± 7.67&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48.71 ± 0.71&lt;/td&gt;
          &lt;td&gt;8e6f8bc&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6600M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;605.59 ± 0.65&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48.21 ± 0.07&lt;/td&gt;
          &lt;td&gt;fe5b78c&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc A770M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;875.92 ± 2.16&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;47.69 ± 0.16&lt;/td&gt;
          &lt;td&gt;eeee367&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia P104-100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;311.90 ± 0.22&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;46.18 ± 0.05&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX Vega 64&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;356.08 ± 0.09&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;45.73 ± 0.18&lt;/td&gt;
          &lt;td&gt;ec428b0&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX A2000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1245.19 ± 8.76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;45.52 ± 0.54&lt;/td&gt;
          &lt;td&gt;b1afcab&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7600M XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;459.39 ± 2.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;45.28 ± 0.10&lt;/td&gt;
          &lt;td&gt;b9ab0a4&lt;/td&gt;
          &lt;td&gt;eGPU&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro V340&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;375.41 ± 0.24&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;45.16 ± 0.06&lt;/td&gt;
          &lt;td&gt;9da3dcd&lt;/td&gt;
          &lt;td&gt;Split across two GPUs&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1070 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;297.50 ± 0.54&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;42.86 ± 1.20&lt;/td&gt;
          &lt;td&gt;860a9e4&lt;/td&gt;
          &lt;td&gt;eGPU&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc A750&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1075.94 ± 13.89&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;42.66 ± 0.18&lt;/td&gt;
          &lt;td&gt;c1b1876&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4050 Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1154.28 + 15.76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.89 + 0.10&lt;/td&gt;
          &lt;td&gt;d79d8f3&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1070&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;321.57 ± 0.93&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.48 ± 0.09&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc Pro B50&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;193.50 ± 0.24&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;39.99 ± 0.10&lt;/td&gt;
          &lt;td&gt;7b43f55&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla M40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;92.48 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;39.35 ± 1.22&lt;/td&gt;
          &lt;td&gt;b8372ee&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 580&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;258.03 ± 0.71&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;39.32 ± 0.03&lt;/td&gt;
          &lt;td&gt;de4c07f&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 470&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;218.07 ± 0.56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;38.63 ± 0.21&lt;/td&gt;
          &lt;td&gt;e288693&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro W5500&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;315.39 ± 3.76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;36.82 ± 0.38&lt;/td&gt;
          &lt;td&gt;860a9e4&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 480&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;248.66 ± 0.28&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;34.71 ± 0.14&lt;/td&gt;
          &lt;td&gt;3b15924&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M2 Ultra&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;205.98 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;34.34 ± 0.12&lt;/td&gt;
          &lt;td&gt;dbb852b&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 980&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;186.24 ± 0.09&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;33.90 ± 0.51&lt;/td&gt;
          &lt;td&gt;860a9e4&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia P106-100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;183.78 ± 0.26&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;29.77 ± 0.04&lt;/td&gt;
          &lt;td&gt;23bc779&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD FirePro W8100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;155.22 ± 0.17&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;29.52 ± 0.05&lt;/td&gt;
          &lt;td&gt;4536363&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla P4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;265.54 ± 0.21&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28.03 ± 0.14&lt;/td&gt;
          &lt;td&gt;24d2ee0&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6500 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;255.25 ± 0.35&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;27.81 ± 0.10&lt;/td&gt;
          &lt;td&gt;g9fdfcd&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M3&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;263.70 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;26.39 ± 0.14&lt;/td&gt;
          &lt;td&gt;b9ab0a4&lt;/td&gt;
          &lt;td&gt;MoltenVK&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD FirePro S10000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;94.78 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;25.32 ± 0.02&lt;/td&gt;
          &lt;td&gt;914a82d&lt;/td&gt;
          &lt;td&gt;Split across two GPUs&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Quadro P2000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;169.55 ± 0.17&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;23.05 ± 0.03&lt;/td&gt;
          &lt;td&gt;63f8fe0&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core Ultra 200 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;544.95 ± 4.15&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;22.49 ± 0.09&lt;/td&gt;
          &lt;td&gt;cea560f&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen AI 9 300 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;479.07 ± 0.41&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;22.41 ± 0.18&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 6000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;240.89 ± 0.52&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;21.26 ± 0.08&lt;/td&gt;
          &lt;td&gt;ee09828&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M2 Pro&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;62.70 ± 0.03&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20.95 ± 0.11&lt;/td&gt;
          &lt;td&gt;1fe0029&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1050 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;136.42 ± 0.67&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20.96 ± 0.21&lt;/td&gt;
          &lt;td&gt;2f0c2db&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 8000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;266.19 ± 1.36&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20.53 ± 0.08&lt;/td&gt;
          &lt;td&gt;a5c07dc&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 7000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;281.62 ± 1.56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;19.91 ± 0.07&lt;/td&gt;
          &lt;td&gt;ebce03e&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen Z1 Extreme&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;199.36 ± 7.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18.77 ± 0.02&lt;/td&gt;
          &lt;td&gt;53ff6b9&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD FirePro D700&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;69.95 ± 0.04&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.62 ± 0.01&lt;/td&gt;
          &lt;td&gt;d3bd719&lt;/td&gt;
          &lt;td&gt;MoltenVK, running in FP16 mode on FP32 only chip&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro WX 4100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;78.79 ± 0.10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.05 ± 0.07&lt;/td&gt;
          &lt;td&gt;860a9e4&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M2&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.79 ± 0.16&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.50 ± 0.02&lt;/td&gt;
          &lt;td&gt;8c0d6bb&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M1&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;38.29 ± 0.00&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.47 ± 0.03&lt;/td&gt;
          &lt;td&gt;2370665&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 5000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;90.55 ± 0.08&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.98 ± 0.07&lt;/td&gt;
          &lt;td&gt;d84635b&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core 1100 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;187.20 ± 1.78&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.39 ± 0.04&lt;/td&gt;
          &lt;td&gt;abb9f3c&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 550&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;52.66 ± 0.49&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.20 ± 0.01&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 4000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;103.87 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.63 ± 0.01&lt;/td&gt;
          &lt;td&gt;4b385bf&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla K80&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;89.46 ± 0.10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.39 ± 0.06&lt;/td&gt;
          &lt;td&gt;5d46bab&lt;/td&gt;
          &lt;td&gt;Running on single GPU&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla K40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64.37 ± 0.09&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.30 ± 0.19&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;MediaTek Dimensity 9400&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;38.36 ± 15.15&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8.92 ± 0.06&lt;/td&gt;
          &lt;td&gt;b9ab0a4&lt;/td&gt;
          &lt;td&gt;GPU supports coopmat but pp512 is faster with it turned off&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core Ultra 100 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;185.51 ± 0.22&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8.21 ± 0.07&lt;/td&gt;
          &lt;td&gt;1d72c84&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 3000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48.63 ± 0.10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8.49 ± 0.01&lt;/td&gt;
          &lt;td&gt;1fe0029&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CIX CD8180&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.80 ± 0.01&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5.51 ± 0.00&lt;/td&gt;
          &lt;td&gt;4dca015&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core 1000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;25.58 ± 0.00&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4.25 ± 0.18&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core 8000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;25.43 ± 0.17&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3.35 ± 0.03&lt;/td&gt;
          &lt;td&gt;c4df49a&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel N150&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28.84 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.93 ± 0.00&lt;/td&gt;
          &lt;td&gt;4f63cd7&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;llama-2-7b-q4_0-fa-enabled&#34;&gt;Llama 2 7B, Q4_0, FA enabled
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Chip&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;pp512 t/s&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;tg128 t/s&lt;/th&gt;
          &lt;th&gt;Commit&lt;/th&gt;
          &lt;th&gt;Comments&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5090&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11796.38 ± 601.36&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;273.68 ± 0.52&lt;/td&gt;
          &lt;td&gt;ca71fb9&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7900 XTX&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3332.90 ± 11.47&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;195.30 ± 0.23&lt;/td&gt;
          &lt;td&gt;2f0c2db&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5080&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8054.59 ± 35.68&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;192.17 ± 0.21&lt;/td&gt;
          &lt;td&gt;f6b533d&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4090&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10830.41 ± 36.25&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;190.10 ± 0.31&lt;/td&gt;
          &lt;td&gt;4ae88d0&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia A100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7064.40 ± 1.63&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;170.56 ± 0.02&lt;/td&gt;
          &lt;td&gt;2257758&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3090&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4732.33 ± 4.80&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;162.28 ± 0.21&lt;/td&gt;
          &lt;td&gt;4ae88d0&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4080 Super&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8007.37 ± 46.03&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;150.20 ± 0.26&lt;/td&gt;
          &lt;td&gt;81086cd&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3080&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4913.83 ± 21.52&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;145.74 ± 0.16&lt;/td&gt;
          &lt;td&gt;7c7d6ce&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla V100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1411.25 ± 2.12&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;142.13 ± 0.03&lt;/td&gt;
          &lt;td&gt;7d77f07&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX A5000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4071.22 ± 13.13&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;140.43 ± 0.22&lt;/td&gt;
          &lt;td&gt;4ae88d0&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 9070 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4911.74 ± 28.52&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;138.20 ± 0.18&lt;/td&gt;
          &lt;td&gt;e9fd8dc&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5070 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6764.53 ± 11.95&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;135.65 ± 0.02&lt;/td&gt;
          &lt;td&gt;d13d0f6&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon AI Pro R9700&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4333.83 ± 29.36&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;130.90 ± 0.12&lt;/td&gt;
          &lt;td&gt;3191462&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7900 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3043.93 ± 10.42&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;124.20 ± 0.09&lt;/td&gt;
          &lt;td&gt;71e74a3&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7800 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2094.64 ± 14.38&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;119.63 ± 0.13&lt;/td&gt;
          &lt;td&gt;4fdbc1e&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 9070&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3277.24 ± 18.17&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;119.55 ± 0.06&lt;/td&gt;
          &lt;td&gt;21c17b5&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7900 GRE&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2402.07 ± 22.50&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;116.77 ± 0.08&lt;/td&gt;
          &lt;td&gt;4b2a477&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M3 Ultra&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1115.55 ± 0.75&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;115.99 ± 0.12&lt;/td&gt;
          &lt;td&gt;2d451c8&lt;/td&gt;
          &lt;td&gt;MoltenVK&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc Pro B70&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3314.53 ± 17.95&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;111.63 ± 0.05&lt;/td&gt;
          &lt;td&gt;b863507&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Titan V&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;792.74 ± 4.30&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;109.21 ± 0.72&lt;/td&gt;
          &lt;td&gt;e56abd2&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro VII&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;783.94 ± 0.77&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;108.45 ± 0.48&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6900 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1761.93 ± 4.75&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;106.15 ± 0.04&lt;/td&gt;
          &lt;td&gt;a972fae&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 2080 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1936.25 ± 32.08&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;100.99 ± 0.24&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6800 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1704.79 ± 0.71&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;100.50 ± 0.06&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro W6800X Duo&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;795.28 ± 0.72&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;100.08 ± 0.02&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 5060 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3912.65 ± 5.86&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;97.01 ± 0.14&lt;/td&gt;
          &lt;td&gt;89f10ba&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6800&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1749.46 ± 3.36&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;96.65 ± 0.48&lt;/td&gt;
          &lt;td&gt;4b385bf&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4070&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4293.57 ± 27.70&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;91.49 ± 0.89&lt;/td&gt;
          &lt;td&gt;9a48399&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6750 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;997.05 ± 0.45&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;82.29 ± 0.06&lt;/td&gt;
          &lt;td&gt;228f34c&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6700 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1010.90 ± 12.89&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;81.86 ± 0.19&lt;/td&gt;
          &lt;td&gt;6d75883&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3060&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2012.88 ± 10.12&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;80.59 ± 0.02&lt;/td&gt;
          &lt;td&gt;92c0b38&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro V620&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1556.31 ± 2.82&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;79.24 ± 0.09&lt;/td&gt;
          &lt;td&gt;03d4698&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX A4000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2482.74 ± 26.05&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;76.07 ± 0.08&lt;/td&gt;
          &lt;td&gt;f5245b5&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla T10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1840.14 ± 1.22&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;76.05 ± 0.13&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 5700 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;538.31 ± 0.35&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;74.43 ± 0.03&lt;/td&gt;
          &lt;td&gt;4fdbc1e&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc B580&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;419.49 ± 3.37&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;72.00 ± 0.24&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M4 Max&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;557.46 ± 26.87&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;71.79 ± 4.16&lt;/td&gt;
          &lt;td&gt;1ece0cb6&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro W5700&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;446.98 ± 0.39&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;71.30 ± 0.24&lt;/td&gt;
          &lt;td&gt;23bc779&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc Pro B60&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;274.76 ± 0.27&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;70.54 ± 0.03&lt;/td&gt;
          &lt;td&gt;516a4ca&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 9060 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1915.41 ± 7.90&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;70.52 ± 0.16&lt;/td&gt;
          &lt;td&gt;ed52f36&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla P100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;685.51 ± 0.88&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;66.48 ± 0.02&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6650 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1088.90 ± 0.40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64.53 ± 0.75&lt;/td&gt;
          &lt;td&gt;dbb852b&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1080 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;529.96 ± 0.38&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64.63 ± 0.10&lt;/td&gt;
          &lt;td&gt;360d653&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD BC-250&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;356.87 ± 1.24&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;63.14 ± 0.09&lt;/td&gt;
          &lt;td&gt;5886f4f&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 3070 Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1832.07 ± 57.14&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;62.92 ± 0.37&lt;/td&gt;
          &lt;td&gt;ceff6bb&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX 4060 Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2358.03 ± 12.17&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;60.01 ± 0.08&lt;/td&gt;
          &lt;td&gt;a5c07dc&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla P40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;484.37 ± 0.27&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;59.22 ± 0.15&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1660 Ti Mobile&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;514.34 ± 0.88&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;57.30 ± 0.42&lt;/td&gt;
          &lt;td&gt;b43556e&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 7600 XT&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1024.38 ± 7.56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;56.11 ± 0.02&lt;/td&gt;
          &lt;td&gt;01d8eaa&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD FirePro S9300 x2&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;243.33 ± 0.22&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;55.64 ± 0.06&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;Split across two GPUs&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GB10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3279.89 ± 26.78&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.64 ± 0.05&lt;/td&gt;
          &lt;td&gt;b9da444&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6600&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;808.76 ± 0.15&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.24 ± 0.03&lt;/td&gt;
          &lt;td&gt;b1c70e2&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc A770&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1119.68 + 30.25&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.07 + 0.09&lt;/td&gt;
          &lt;td&gt;a69d54f&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen AI Max+ 395&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1357.07 ± 10.94&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.00 ± 0.13&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX Vega 56&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;428.54 ± 0.50&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;52.66 ± 0.03&lt;/td&gt;
          &lt;td&gt;92c0b38&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc B570&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;288.51 ± 0.09&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.49 ± 0.05&lt;/td&gt;
          &lt;td&gt;7f76692&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia P104-100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;325.30 ± 0.25&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48.64 ± 0.04&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro V340&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;360.23 ± 0.74&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;47.54 ± 0.06&lt;/td&gt;
          &lt;td&gt;9da3dcd&lt;/td&gt;
          &lt;td&gt;Split across two GPUs&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 6800M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;784.16 ± 2.76&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;49.06 ± 0.34&lt;/td&gt;
          &lt;td&gt;8e6f8bc&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX Vega 64&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;320.12 ± 0.22&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;47.06 ± 0.01&lt;/td&gt;
          &lt;td&gt;ec428b0&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia RTX A2000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1361.85 ± 3.26&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;45.69 ± 0.20&lt;/td&gt;
          &lt;td&gt;b1afcab&lt;/td&gt;
          &lt;td&gt;coopmat2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc A770M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;384.74 ± 0.78&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;45.68 ± 0.06&lt;/td&gt;
          &lt;td&gt;eeee367&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc A750&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;303.37 ± 1.44&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.96 ± 0.03&lt;/td&gt;
          &lt;td&gt;c1b1876&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1070 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;292.85 ± 0.23&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.42 ± 0.34&lt;/td&gt;
          &lt;td&gt;860a9e4&lt;/td&gt;
          &lt;td&gt;eGPU&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1070&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;330.84 ± 1.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.33 ± 0.06&lt;/td&gt;
          &lt;td&gt;360d653&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla M40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;93.35 ± 0.01&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.68 ± 0.01&lt;/td&gt;
          &lt;td&gt;b8372ee&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Arc Pro B50&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;132.48 ± 0.04&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;41.02 ± 0.04&lt;/td&gt;
          &lt;td&gt;7b43f55&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 470&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;197.26 ± 0.27&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;37.28 ± 0.11&lt;/td&gt;
          &lt;td&gt;3769fe6&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon RX 480&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;194.52 ± 0.61&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;37.23 ± 0.09&lt;/td&gt;
          &lt;td&gt;0bcb40b&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M2 Ultra&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;198.83 ± 0.85&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;198.83 ± 0.85&lt;/td&gt;
          &lt;td&gt;dbb852b&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 980&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;180.97 ± 0.74&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;34.16 ± 0.10&lt;/td&gt;
          &lt;td&gt;860a9e4&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia P106-100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;183.40 ± 0.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;30.79 ± 0.32&lt;/td&gt;
          &lt;td&gt;23bc779&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD FirePro W8100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;140.52 ± 0.34&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;29.28 ± 0.14&lt;/td&gt;
          &lt;td&gt;4536363&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla P4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;287.14 ± 0.29&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28.37 ± 0.24&lt;/td&gt;
          &lt;td&gt;24d2ee0&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Quadro P2000&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;181.71 ± 0.12&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;23.77 ± 0.02&lt;/td&gt;
          &lt;td&gt;63f8fe0&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core Ultra 200 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;536.48 ± 1.27&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;23.05 ± 0.04&lt;/td&gt;
          &lt;td&gt;cea560f&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen AI 9 300 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;532.59 ± 3.55&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;22.31 ± 0.06&lt;/td&gt;
          &lt;td&gt;N/A&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 6000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;277.91 ± 0.37&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;21.15 ± 0.09&lt;/td&gt;
          &lt;td&gt;ee09828&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M2 Pro&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;58.86 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20.97 ± 0.03&lt;/td&gt;
          &lt;td&gt;1fe0029&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 8000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;297.39 ± 1.22&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20.59 ± 0.38&lt;/td&gt;
          &lt;td&gt;a5c07dc&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 7000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;312.85 ± 2.51&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20.09 ± 0.35&lt;/td&gt;
          &lt;td&gt;835b2b9&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia GTX 1050 Ti&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;127.54 ± 1.03&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20.08 ± 0.17&lt;/td&gt;
          &lt;td&gt;2f0c2db&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Radeon Pro WX 4100&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;75.59 ± 0.19&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.56 ± 0.04&lt;/td&gt;
          &lt;td&gt;860a9e4&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M1&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;35.93 ± 0.00&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.85 ± 0.02&lt;/td&gt;
          &lt;td&gt;2370665&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Apple M2&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;46.81 ± 0.08&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.25 ± 2.30&lt;/td&gt;
          &lt;td&gt;8c0d6bb&lt;/td&gt;
          &lt;td&gt;Asahi Linux&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 5000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;79.06 ± 0.01&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.75 ± 0.00&lt;/td&gt;
          &lt;td&gt;5d195f1&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core 1100 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;174.77 ± 4.47&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.58 ± 0.03&lt;/td&gt;
          &lt;td&gt;abb9f3c&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla K40&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64.37 ± 0.02&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.92 ± 0.06&lt;/td&gt;
          &lt;td&gt;eec1e33&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 4000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;113.32 ± 0.01&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.87 ± 0.01&lt;/td&gt;
          &lt;td&gt;4b385bf&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nvidia Tesla K80&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;88.26 ± 0.19&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.49 ± 0.01&lt;/td&gt;
          &lt;td&gt;5d46bab&lt;/td&gt;
          &lt;td&gt;Running on single GPU&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AMD Ryzen 5 3000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;47.41 ± 0.14&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8.47 ± 0.01&lt;/td&gt;
          &lt;td&gt;1fe0029&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core Ultra 100 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;77.66 ± 2.75&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7.75 ± 0.05&lt;/td&gt;
          &lt;td&gt;2e89f76&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel Core 8000 Series&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;25.55 ± 0.04&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3.35 ± 0.02&lt;/td&gt;
          &lt;td&gt;c4df49a&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intel N150&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;25.59 ± 0.00&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.91 ± 0.00&lt;/td&gt;
          &lt;td&gt;4f63cd7&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;これらの表の使い方&#34;&gt;これらの表の使い方
&lt;/h2&gt;&lt;p&gt;GPU を買いたい、または手元のマシンがおおよそどの位置にあるかを知りたいだけなら、実用的な読み方は次の 3 ステップです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;まず &lt;code&gt;tg128&lt;/code&gt; と &lt;code&gt;pp512&lt;/code&gt; のどちらを重視するかを見る。&lt;br&gt;
日常会話、コーディング、チャットの体感なら &lt;code&gt;tg128&lt;/code&gt; を優先します。長いコンテキストの処理、バッチ処理、サーバー側で大量の prompt をさばく用途なら &lt;code&gt;pp512&lt;/code&gt; を見るべきです。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;次に実際に使うバックエンドを見る。&lt;br&gt;
Nvidia なら通常 &lt;code&gt;CUDA&lt;/code&gt; が実際の上限に近く、AMD なら &lt;code&gt;ROCm&lt;/code&gt; と &lt;code&gt;Vulkan&lt;/code&gt; を先に照合します。クロスプラットフォーム互換を重視する場合は &lt;code&gt;Vulkan&lt;/code&gt; が参考になります。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;最後に &lt;code&gt;FA&lt;/code&gt; を見る。&lt;br&gt;
多くの GPU では &lt;code&gt;FA&lt;/code&gt; 有効時に &lt;code&gt;pp512&lt;/code&gt; がより大きく伸びますが、&lt;code&gt;tg128&lt;/code&gt; が同じだけ伸びるとは限りません。単一の最高スコアだけで判断しないほうが安全です。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;ひと言でまとめると&#34;&gt;ひと言でまとめると
&lt;/h2&gt;&lt;p&gt;同じ &lt;code&gt;llama.cpp&lt;/code&gt; ベンチマークでも、&lt;code&gt;pp512&lt;/code&gt;、&lt;code&gt;tg128&lt;/code&gt;、&lt;code&gt;Q4_0&lt;/code&gt;、&lt;code&gt;FA&lt;/code&gt;、&lt;code&gt;CUDA / ROCm / Vulkan&lt;/code&gt; はそれぞれまったく違う軸を表します。先に条件を切り分けてから数字を見ることで、ランキングに意味が出ます。&lt;/p&gt;
&lt;p&gt;最短で覚えるなら、次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CUDA&lt;/code&gt; は現時点で全体的に最も強い&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ROCm&lt;/code&gt; はハイエンド AMD GPU でかなり戦える&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Vulkan&lt;/code&gt; は対応範囲が最も広く、古い GPU、内蔵 GPU、Intel Arc、Apple Asahi まで比較対象がある&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt; は &lt;code&gt;pp512&lt;/code&gt; より日常の実際の体感に近い&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;元データ&#34;&gt;元データ
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;CUDA discussion #15013: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/15013&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/15013&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Apple Silicon discussion #4167: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/4167&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/4167&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ROCm discussion #15021: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/15021&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/15021&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Vulkan discussion #10879: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/10879&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/10879&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPU 推論速度テストでよく見る指標の意味: FA、pp512、tg128、Q4_0 とは何か</title>
        <link>https://knightli.com/ja/2026/04/23/how-to-read-llm-cuda-scoreboard-fa-pp512-tg128-q4-0/</link>
        <pubDate>Thu, 23 Apr 2026 00:15:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/23/how-to-read-llm-cuda-scoreboard-fa-pp512-tg128-q4-0/</guid>
        <description>&lt;p&gt;ローカル LLM や GPU 推論速度テストを見始めると、すぐに &lt;code&gt;FA&lt;/code&gt;、&lt;code&gt;pp512&lt;/code&gt;、&lt;code&gt;tg128&lt;/code&gt;、&lt;code&gt;Q4_0&lt;/code&gt; といった略称に出会います。どれも性能指標のように見えますが、文脈がないとかなりわかりにくいです。&lt;/p&gt;
&lt;p&gt;たとえば、次のような行を見かけることがあります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CUDA Scoreboard for Llama 2 7B, Q4_0 (no FA)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;さらにその下には、&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pp512 t/s
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tg128 t/s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;のような表示が並びます。&lt;/p&gt;
&lt;p&gt;これらを分解して理解しないままだと、この種の速度テストが何を測っているのか、また異なる GPU の結果をどう比較すべきかが見えてきません。&lt;/p&gt;
&lt;p&gt;この記事では、どの GPU を買うべきかではなく、GPU 推論速度テストでよく出てくる指標そのものを整理します。&lt;/p&gt;
&lt;h2 id=&#34;まずタイトル行全体が何を言っているのか&#34;&gt;まずタイトル行全体が何を言っているのか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CUDA Scoreboard for Llama 2 7B, Q4_0 (no FA)&lt;/code&gt; のような一行には、すでにかなり多くの前提が含まれています。&lt;/p&gt;
&lt;p&gt;少なくとも次の四つの情報があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CUDA&lt;/code&gt;: NVIDIA GPU の CUDA 経路で測っている&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Llama 2 7B&lt;/code&gt;: テスト対象は &lt;code&gt;Llama 2&lt;/code&gt; の &lt;code&gt;7B&lt;/code&gt; モデル&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q4_0&lt;/code&gt;: モデルは 4-bit 量子化形式&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no FA&lt;/code&gt;: &lt;code&gt;Flash Attention&lt;/code&gt; を有効にしていない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまりこれは要するに、&lt;/p&gt;
&lt;p&gt;「NVIDIA GPU 上で、ある量子化済み LLM を、特定の推論経路で動かしたときの速度テスト」&lt;/p&gt;
&lt;p&gt;という意味になります。&lt;/p&gt;
&lt;h2 id=&#34;fa-とは何か-flash-attention&#34;&gt;FA とは何か: Flash Attention
&lt;/h2&gt;&lt;p&gt;ここでいう &lt;code&gt;FA&lt;/code&gt; は &lt;code&gt;Flash Attention&lt;/code&gt; の略です。&lt;/p&gt;
&lt;p&gt;これは大規模モデルの学習や推論で非常に重要な最適化のひとつで、主に Attention 計算の実装を高速化するための技術です。Transformer 系モデルでは、Attention 部分が最も重い処理のひとつだからです。&lt;/p&gt;
&lt;p&gt;従来の Attention 実装には次のような問題があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;グローバルメモリの読み書きが多い&lt;/li&gt;
&lt;li&gt;中間結果が増えやすい&lt;/li&gt;
&lt;li&gt;メモリと演算コアの間でデータ移動が多い&lt;/li&gt;
&lt;li&gt;コンテキストが長いほど負担が重くなる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Flash Attention&lt;/code&gt; は計算順序を工夫し、より多くの処理を高速なメモリ階層の中で完結させることで、この負担を減らします。&lt;/p&gt;
&lt;p&gt;その典型的な効果は次の三つです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;速くなる&lt;/li&gt;
&lt;li&gt;メモリ使用量が減る&lt;/li&gt;
&lt;li&gt;数学的には通常の Attention と等価で、精度を落とす近道ではない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、現在の推論・学習系フレームワークでは重要な最適化として扱われています。&lt;/p&gt;
&lt;h2 id=&#34;no-fa-とは何か&#34;&gt;no FA とは何か
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;FA&lt;/code&gt; が &lt;code&gt;Flash Attention&lt;/code&gt; なら、&lt;code&gt;no FA&lt;/code&gt; は単純に &lt;code&gt;Flash Attention&lt;/code&gt; を使っていないという意味です。&lt;/p&gt;
&lt;p&gt;つまり、そのベンチマークはより伝統的な Attention 実装で測られています。&lt;/p&gt;
&lt;p&gt;なぜわざわざ &lt;code&gt;no FA&lt;/code&gt; と書くのかというと、主に次の理由があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;比較用の基準として残したい&lt;/li&gt;
&lt;li&gt;ハードウェアやソフトウェアの都合で &lt;code&gt;FA&lt;/code&gt; を使えないケースがある&lt;/li&gt;
&lt;li&gt;条件の違うスコアを混ぜて読まれないようにしたい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;したがって &lt;code&gt;no FA&lt;/code&gt; は「GPU が弱い」という意味ではありません。より正確には、&lt;/p&gt;
&lt;p&gt;「このスコアは Flash Attention を使わない条件で測られた」&lt;/p&gt;
&lt;p&gt;という意味です。&lt;/p&gt;
&lt;h2 id=&#34;q4_0-とは何か-量子化形式&#34;&gt;Q4_0 とは何か: 量子化形式
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Q4_0&lt;/code&gt; は 4-bit 量子化形式のひとつです。&lt;/p&gt;
&lt;p&gt;LLM の元の重みは通常、こんな低精度では保存されていません。そのままではサイズが大きすぎるため、量子化によって重みをより少ない bit 数で表現し、一般的な GPU でも動かしやすくします。&lt;/p&gt;
&lt;p&gt;ざっくり言えば、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q&lt;/code&gt;: Quantization&lt;/li&gt;
&lt;li&gt;&lt;code&gt;4&lt;/code&gt;: 4-bit&lt;/li&gt;
&lt;li&gt;&lt;code&gt;_0&lt;/code&gt;: 具体的な量子化方式の識別&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;という理解で十分です。&lt;/p&gt;
&lt;p&gt;重要なのは、量子化によって&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;モデルサイズが縮む&lt;/li&gt;
&lt;li&gt;VRAM 要求が下がる&lt;/li&gt;
&lt;li&gt;そのままでは載らないモデルも動かしやすくなる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;という点です。&lt;/p&gt;
&lt;p&gt;つまり &lt;code&gt;Llama 2 7B, Q4_0&lt;/code&gt; は、「7B モデル」ではあるものの、「4-bit 量子化された 7B モデル」を意味しています。&lt;/p&gt;
&lt;h2 id=&#34;pp512-ts-とは何か&#34;&gt;pp512 t/s とは何か
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; は通常、&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Prompt Processing 512 tokens&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;を意味します。&lt;/p&gt;
&lt;p&gt;これは入力プロンプトを処理する速度の指標で、単位は &lt;code&gt;t/s&lt;/code&gt;、つまり &lt;code&gt;tokens per second&lt;/code&gt; です。&lt;/p&gt;
&lt;p&gt;ここでの &lt;code&gt;512&lt;/code&gt; は、テスト時の入力長が &lt;code&gt;512 token&lt;/code&gt; だったことを表しています。&lt;/p&gt;
&lt;p&gt;この指標が測っているのは「しゃべる速さ」ではなく、モデルが回答を始める前に、入力内容を読み込んで計算する速さです。言い換えると、「まずこちらの入力を読む段階」のスループットです。&lt;/p&gt;
&lt;p&gt;この段階の大きな特徴は、並列性が高いことです。&lt;/p&gt;
&lt;p&gt;入力系列はまとめて処理しやすいので、GPU はこの場面では高い並列度を活かせます。そのため &lt;code&gt;pp512&lt;/code&gt; の値は非常に大きくなることが多く、初めて見ると少し不自然に感じるほどです。&lt;/p&gt;
&lt;p&gt;たとえば&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pp512 ≈ 14000 t/s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;のような値が出ても不思議ではありません。これは「入力処理の吞吐量」を測っているのであって、逐次生成の速さを測っているわけではないからです。&lt;/p&gt;
&lt;h2 id=&#34;tg128-ts-とは何か&#34;&gt;tg128 t/s とは何か
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;tg128&lt;/code&gt; は通常、&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Text Generation 128 tokens&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;を意味します。&lt;/p&gt;
&lt;p&gt;これは 128 token を連続生成したときの平均生成速度で、同じく単位は &lt;code&gt;t/s&lt;/code&gt; です。&lt;/p&gt;
&lt;p&gt;この指標は、私たちが普段感じる「モデルの返答速度」により近いです。実際に出力フェーズを測っているからです。&lt;/p&gt;
&lt;p&gt;ただし &lt;code&gt;pp512&lt;/code&gt; との最大の違いは、テキスト生成が一般に自己回帰的であることです。&lt;/p&gt;
&lt;p&gt;つまり、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;まず 1 個目の token を出す&lt;/li&gt;
&lt;li&gt;それが決まってから 2 個目を出す&lt;/li&gt;
&lt;li&gt;さらにその後に 3 個目を出す&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;という順番になります。&lt;/p&gt;
&lt;p&gt;そのため、入力処理のような大規模並列はかけにくく、速度はずっと低くなります。&lt;/p&gt;
&lt;p&gt;だからこそ、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pp512&lt;/code&gt; は数万 &lt;code&gt;t/s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt; は数百 &lt;code&gt;t/s&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;といった差が普通に起こります。&lt;/p&gt;
&lt;p&gt;これは測定ミスではなく、そもそも別の性質の処理を測っているためです。&lt;/p&gt;
&lt;h2 id=&#34;なぜ-pp512-と-tg128-の差がこんなに大きいのか&#34;&gt;なぜ pp512 と tg128 の差がこんなに大きいのか
&lt;/h2&gt;&lt;p&gt;ここは多くの人が最初に引っかかるポイントです。&lt;/p&gt;
&lt;p&gt;一言で言えば、&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; は並列吞吐、&lt;code&gt;tg128&lt;/code&gt; は逐次生成性能を見ているからです。&lt;/p&gt;
&lt;p&gt;もう少し丁寧に言うと、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;入力処理は並列化しやすい&lt;/li&gt;
&lt;li&gt;出力生成はトークンごとの逐次性が強い&lt;/li&gt;
&lt;li&gt;生成側はメモリ帯域やキャッシュ効率の影響を受けやすい&lt;/li&gt;
&lt;li&gt;そのため生成速度は入力処理よりかなり低くなりやすい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これにより、GPU 間比較でも面白い現象が起きます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pp512&lt;/code&gt; では一方が勝つ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt; では別の GPU が少し速い&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ということがあり得るのです。&lt;/p&gt;
&lt;p&gt;これは矛盾ではなく、一方がピーク算力寄り、他方が実際の生成経路での帯域・遅延特性に左右されているからです。&lt;/p&gt;
&lt;h2 id=&#34;ts-はどう読むべきか&#34;&gt;t/s はどう読むべきか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;t/s&lt;/code&gt; は &lt;code&gt;tokens per second&lt;/code&gt; の略です。&lt;/p&gt;
&lt;p&gt;つまり、モデルが 1 秒あたりに何 token を処理または生成できるかを表しています。&lt;/p&gt;
&lt;p&gt;ただし注意したいのは、&lt;code&gt;token&lt;/code&gt; は「文字」でも「単語」でもなく、モデルのトークナイザが切る単位だということです。モデルや言語によって、1 token が表すテキスト量はかなり変わります。&lt;/p&gt;
&lt;p&gt;そのため &lt;code&gt;t/s&lt;/code&gt; は主に次の用途に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;同一モデル内で GPU を比べる&lt;/li&gt;
&lt;li&gt;同じ環境で設定違いを比べる&lt;/li&gt;
&lt;li&gt;同一フレームワークで最適化の有無を比べる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;逆に、モデルもフレームワークもトークナイザも違う条件をまたいで、絶対値だけで単純比較するのにはあまり向いていません。&lt;/p&gt;
&lt;h2 id=&#34;scoreboard-を読むときにまず押さえるべき点&#34;&gt;Scoreboard を読むときにまず押さえるべき点
&lt;/h2&gt;&lt;p&gt;毎回略称に埋もれたくないなら、まず次のポイントから見れば十分です。&lt;/p&gt;
&lt;h3 id=&#34;1-テスト対象モデルは何か&#34;&gt;1. テスト対象モデルは何か
&lt;/h3&gt;&lt;p&gt;たとえば &lt;code&gt;Llama 2 7B&lt;/code&gt; なのか、量子化形式は &lt;code&gt;Q4_0&lt;/code&gt; なのか。同じモデル・同じ量子化でなければ、結果の横比較はあまり意味を持ちません。&lt;/p&gt;
&lt;h3 id=&#34;2-重要な最適化が有効かどうか&#34;&gt;2. 重要な最適化が有効かどうか
&lt;/h3&gt;&lt;p&gt;もっとも典型的なのが &lt;code&gt;FA&lt;/code&gt; です。一方は &lt;code&gt;Flash Attention&lt;/code&gt; を有効にしていて、もう一方は無効なら、そのスコアは単純には比較できません。&lt;/p&gt;
&lt;h3 id=&#34;3-入力速度を見ているのか出力速度を見ているのか&#34;&gt;3. 入力速度を見ているのか、出力速度を見ているのか
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; と &lt;code&gt;tg128&lt;/code&gt; は別物です。前者は「読み込みの速さ」、後者は「しゃべる速さ」に近いです。&lt;/p&gt;
&lt;h3 id=&#34;4-吞吐を見たいのか体感を見たいのか&#34;&gt;4. 吞吐を見たいのか、体感を見たいのか
&lt;/h3&gt;&lt;p&gt;長いプロンプトの立ち上がりを重視するなら &lt;code&gt;pp512&lt;/code&gt; が参考になります。実際の返答の滑らかさを気にするなら、&lt;code&gt;tg128&lt;/code&gt; の方が体感に近いことが多いです。&lt;/p&gt;
&lt;h2 id=&#34;もっとも実用的な覚え方&#34;&gt;もっとも実用的な覚え方
&lt;/h2&gt;&lt;p&gt;これらを一番短く覚えるなら、次のように整理すると実用的です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q4_0&lt;/code&gt;: モデルは 4-bit 量子化されている&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FA&lt;/code&gt;: Flash Attention を使っているかどうか&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pp512&lt;/code&gt;: 512 token の入力処理速度&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt;: 128 token の出力生成速度&lt;/li&gt;
&lt;li&gt;&lt;code&gt;t/s&lt;/code&gt;: 1 秒あたり何 token か&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この五つだけ分かっていれば、似たような CUDA Scoreboard を見たときに、単に「どちらの数字が大きいか」ではなく、「その数字は何を測っているのか」を理解しやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;結び&#34;&gt;結び
&lt;/h2&gt;&lt;p&gt;GPU ベンチマーク表が難しく見えるのは、指標そのものが神秘的だからではありません。モデル名、量子化、最適化の有無、入力処理と出力生成という別々の吞吐が、短い略称に圧縮されているからです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;FA&lt;/code&gt;、&lt;code&gt;Q4_0&lt;/code&gt;、&lt;code&gt;pp512&lt;/code&gt;、&lt;code&gt;tg128&lt;/code&gt; を順に解きほぐしていけば、こうした Scoreboard は実はそれほど難しくありません。&lt;/p&gt;
&lt;p&gt;本当に大事なのは、GPU 名だけを見て終わらないことです。つまり、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;どのモデル条件で測ったのか&lt;/li&gt;
&lt;li&gt;最適化は有効か無効か&lt;/li&gt;
&lt;li&gt;入力を測っているのか、出力を測っているのか&lt;/li&gt;
&lt;li&gt;算力寄りなのか、実際の生成体感に近いのか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;を一緒に見ることです。&lt;/p&gt;
&lt;p&gt;そうすれば、似たようなベンチマーク表を見ても、その結果がどんな条件と意味を持っているのかを判断しやすくなります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>大規模モデルでよく使われるテンソル型入門: FP32、FP16、BF16、TF32、FP8</title>
        <link>https://knightli.com/ja/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/</link>
        <pubDate>Wed, 22 Apr 2026 22:40:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/</guid>
        <description>&lt;p&gt;大規模モデルの学習、推論、デプロイに触れ始めると、すぐに &lt;code&gt;FP32&lt;/code&gt;、&lt;code&gt;FP16&lt;/code&gt;、&lt;code&gt;BF16&lt;/code&gt;、&lt;code&gt;TF32&lt;/code&gt;、&lt;code&gt;FP8&lt;/code&gt; という略称を見かけるようになります。これらはモデルの説明欄に添えられた小さなラベルのように見えますが、実際の意味はそれ以上に大きいです。&lt;/p&gt;
&lt;p&gt;これらの型は、数値をメモリ上にどう保持し、計算中にどう表現するかを決めます。そしてそれは、学習の安定性、推論速度、さらには 1 枚の GPU でどれだけ大きなモデルを扱えるかにまで影響します。&lt;/p&gt;
&lt;p&gt;そのため、大規模モデルの精度トレードオフを本当に理解したいなら、特定モデルのベンチマークを見る前に、まずこれらのテンソル型が何であり、なぜそのように設計されているのかを押さえるのが近道です。&lt;/p&gt;
&lt;h2 id=&#34;テンソル型は何を決めているのか&#34;&gt;テンソル型は何を決めているのか
&lt;/h2&gt;&lt;p&gt;大規模モデルの本質は、膨大なパラメータを使った行列演算です。そしてテンソル型とは、その数値をメモリ上でどう保持し、計算中にどう表現するかという形式です。&lt;/p&gt;
&lt;p&gt;このトレードオフは、たいてい次の三つの軸に集約されます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;精度&lt;/li&gt;
&lt;li&gt;VRAM 使用量&lt;/li&gt;
&lt;li&gt;計算速度&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは画像フォーマットに少し似ています。可逆形式は細部を多く保てますが、容量が大きく、読み込みも遅くなります。圧縮形式は人間に見えにくい情報を一部捨てる代わりに、サイズを小さくし処理を速くします。大規模モデルが同じような折衷を受け入れられるのは、非常に多くのパラメータの中では、ごく小さな数値の違いが最終出力に大きく影響しないことが多いからです。&lt;/p&gt;
&lt;p&gt;そのため、モデルの世界にはさまざまな精度フォーマットが存在します。&lt;/p&gt;
&lt;h2 id=&#34;数値はどう表現されるのか&#34;&gt;数値はどう表現されるのか
&lt;/h2&gt;&lt;p&gt;各フォーマットを見る前に、まず浮動小数点数の基本構造を押さえておくと理解しやすくなります。浮動小数点数は通常、次の三つの部分からできています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;符号ビット: 正負を決める&lt;/li&gt;
&lt;li&gt;指数ビット: 数値の表現範囲を決める&lt;/li&gt;
&lt;li&gt;仮数ビット: 数値の細かさを決める&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;大規模モデルでは仮数精度も重要ですが、多くの場合それ以上に問題になりやすいのが、指数ビット不足による表現範囲の狭さです。これがオーバーフローや学習不安定性につながります。多くのテンソル型設計は、限られた bit 数を「範囲」と「細かさ」の間でどう配分するか、という問題だと考えるとわかりやすいです。&lt;/p&gt;
&lt;p&gt;まずは次の図で全体像をつかむと理解しやすいです。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/tensor-format-overview.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FP32、FP16、BF16、TF32、FP8 のビット構成の全体像&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;fp32-最も安定するが高価&#34;&gt;FP32: 最も安定するが高価
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;FP32&lt;/code&gt; は最も伝統的な単精度浮動小数点形式で、合計 32 bit、つまり 4 バイトです。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/fp32-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FP32 ビット構成図&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;長所はわかりやすいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;数値範囲が広い&lt;/li&gt;
&lt;li&gt;精度が高い&lt;/li&gt;
&lt;li&gt;学習が最も安定しやすい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;その一方で、欠点も明確です。VRAM を大きく消費します。&lt;/p&gt;
&lt;p&gt;非常に大ざっぱに見積もるなら、&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;VRAM 使用量 ≈ パラメータ数 × 1 パラメータあたりのバイト数
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;となります。&lt;/p&gt;
&lt;p&gt;もし 27B モデルの重みをすべて &lt;code&gt;FP32&lt;/code&gt; で持つなら、重みだけでおよそ&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;27B × 4 bytes ≈ 108GB
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;が必要です。&lt;/p&gt;
&lt;p&gt;しかも、ここには活性値、KV Cache、オプティマイザ状態、そのほかの実行時オーバーヘッドは含まれていません。つまり、現代の大規模モデル推論や学習において、&lt;code&gt;FP32&lt;/code&gt; はもはや標準というより、「最も安定な基準形式」に近い存在です。&lt;/p&gt;
&lt;h2 id=&#34;fp16-サイズは半分ただし安定性はやや弱い&#34;&gt;FP16: サイズは半分、ただし安定性はやや弱い
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;FP16&lt;/code&gt; は各パラメータを 2 バイトに圧縮し、&lt;code&gt;FP32&lt;/code&gt; と比べてメモリ使用量をほぼ半分にします。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/fp16-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FP16 ビット構成図&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;同じ 27B モデルで重みサイズだけを見ると、&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;27B × 2 bytes ≈ 54GB
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;になります。&lt;/p&gt;
&lt;p&gt;これだけでも、なぜ多くのデプロイ手順で 27B モデルの VRAM 要件が 50GB 前後になるのかを説明できます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;FP16&lt;/code&gt; の利点は明快です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VRAM 圧力が大きく下がる&lt;/li&gt;
&lt;li&gt;スループットが高い&lt;/li&gt;
&lt;li&gt;初期の mixed precision 学習で広く使われた&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし弱点は、指数ビットが少なく、動的範囲が狭いことです。大規模モデル学習ではこれがオーバーフローを起こしやすくし、loss scaling のような補助技法を必要とするため、運用がやや面倒になります。&lt;/p&gt;
&lt;p&gt;そのため &lt;code&gt;FP16&lt;/code&gt; は今も一般的ですが、多くの場面では最も扱いやすい選択肢ではなくなっています。&lt;/p&gt;
&lt;h2 id=&#34;bf16-大規模モデル時代により実用的な半精度&#34;&gt;BF16: 大規模モデル時代により実用的な半精度
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;BF16&lt;/code&gt; も 2 バイトですが、&lt;code&gt;FP16&lt;/code&gt; とは設計思想が異なります。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/bf16-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;BF16 ビット構成図&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;指数範囲を大きく確保することで、動的範囲を &lt;code&gt;FP32&lt;/code&gt; に近づけ、その代わり仮数精度を一部削っています。この折衷は大規模モデルに特に向いています。というのも、多くのモデルは仮数の数 bit より、まず範囲不足に敏感だからです。&lt;/p&gt;
&lt;p&gt;そのため、現在では多くの学習フレームワーク、大規模モデルの論文、実際のデプロイ環境が &lt;code&gt;BF16&lt;/code&gt; を好む傾向にあります。&lt;/p&gt;
&lt;p&gt;感覚的には次のように捉えるとわかりやすいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VRAM コストは &lt;code&gt;FP16&lt;/code&gt; に近い&lt;/li&gt;
&lt;li&gt;安定性は &lt;code&gt;FP32&lt;/code&gt; に近い&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ある 27B のデプロイ手順が 50GB 前後の VRAM を要求し、別の最適化された手順が 30GB 近くまで下がるなら、前者はまだ &lt;code&gt;FP16/BF16&lt;/code&gt; の層に留まり、後者はより低精度や量子化に踏み込んでいることが多いです。&lt;/p&gt;
&lt;h2 id=&#34;tf32-vram-削減ではなく-fp32-ワークフローの高速化&#34;&gt;TF32: VRAM 削減ではなく FP32 ワークフローの高速化
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;TF32&lt;/code&gt; は「また別の省メモリ形式」と誤解されやすいですが、役割はかなり違います。&lt;/p&gt;
&lt;p&gt;一般的には、指数範囲を大きく保ちつつ、仮数精度を短くした計算形式として捉えるとわかりやすいです。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/tf32-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;TF32 計算形式図&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;ただし重要なのは、&lt;code&gt;TF32&lt;/code&gt; は &lt;code&gt;FP16/BF16&lt;/code&gt; のように重み保存のための形式というより、Tensor Core 上で使われる内部計算形式に近いという点です。&lt;/p&gt;
&lt;p&gt;これは主に NVIDIA が新しい GPU 世代で提供している計算モードであり、目的は VRAM 使用量を下げることではなく、もともと &lt;code&gt;FP32&lt;/code&gt; ベースだった学習ワークフローを、大きくコード変更せずに高速化することです。&lt;/p&gt;
&lt;p&gt;要点を一言で言えば、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;表向きは &lt;code&gt;FP32&lt;/code&gt; ワークフローのまま&lt;/li&gt;
&lt;li&gt;行列演算の内部でより高速な近似計算を行う&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ということです。&lt;/p&gt;
&lt;p&gt;したがって &lt;code&gt;TF32&lt;/code&gt; が解決するのは「&lt;code&gt;FP32&lt;/code&gt; が遅い」という問題であり、「&lt;code&gt;FP32&lt;/code&gt; が VRAM を食いすぎる」という問題ではありません。同じモデルで VRAM 要件が大きく変わる理由を考えるとき、&lt;code&gt;TF32&lt;/code&gt; は主因ではありません。&lt;/p&gt;
&lt;h2 id=&#34;fp8-さらに圧縮するがより高度な工学が必要&#34;&gt;FP8: さらに圧縮するが、より高度な工学が必要
&lt;/h2&gt;&lt;p&gt;さらに先へ進むと &lt;code&gt;FP8&lt;/code&gt; があります。1 つの数値をさらに少ない bit 数で表現し、メモリ帯域と保存コストをさらに下げます。&lt;/p&gt;
&lt;p&gt;これは単一の形式というより、代表的には &lt;code&gt;E4M3&lt;/code&gt; と &lt;code&gt;E5M2&lt;/code&gt; という二つの変種として現れます。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/fp8-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FP8 の代表的な変種の図&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;ただし &lt;code&gt;FP8&lt;/code&gt; の代償も明確です。bit 数がここまで少なくなると、範囲と精度を同時に保つのが難しくなります。そのため実際の工学では、順伝播、逆伝播、勾配など段階ごとに異なる変種を使ってバランスを取ることがよくあります。&lt;/p&gt;
&lt;p&gt;この系統は、より攻めた方針を表しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;さらなる精度低下を受け入れる&lt;/li&gt;
&lt;li&gt;その代わり保存コストとスループットを改善する&lt;/li&gt;
&lt;li&gt;より成熟したハードウェアとフレームワークが必要になる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;将来性は高いですが、一般ユーザーが日常的に意識する分岐点としては、依然として &lt;code&gt;FP32&lt;/code&gt;、&lt;code&gt;FP16&lt;/code&gt;、&lt;code&gt;BF16&lt;/code&gt; が中心です。&lt;/p&gt;
&lt;h2 id=&#34;なぜこれらの型を理解することが重要なのか&#34;&gt;なぜこれらの型を理解することが重要なのか
&lt;/h2&gt;&lt;p&gt;最初はこれらの略称を、ダウンロードページに書かれた実装上の細部だと捉えがちです。ですが実際には、学習やデプロイをどう理解するかそのものに関わってきます。&lt;/p&gt;
&lt;p&gt;たとえば、同じ GPU を見ていても、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;なぜ学習では数値安定性がそれほど重視されるのか&lt;/li&gt;
&lt;li&gt;なぜ推論では量子化や低精度がすぐ話題になるのか&lt;/li&gt;
&lt;li&gt;なぜパラメータ数が近いモデルでもデプロイ難易度が大きく違うのか&lt;/li&gt;
&lt;li&gt;なぜある形式は重み保存向きで、別の形式は計算経路向きなのか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;といった疑問が出てきます。&lt;/p&gt;
&lt;p&gt;こうした問いを突き詰めていくと、結局は「精度、範囲、メモリ、速度をどう交換するか」という一点に戻ってきます。&lt;/p&gt;
&lt;p&gt;だから &lt;code&gt;FP32&lt;/code&gt;、&lt;code&gt;FP16&lt;/code&gt;、&lt;code&gt;BF16&lt;/code&gt;、&lt;code&gt;TF32&lt;/code&gt;、&lt;code&gt;FP8&lt;/code&gt; を理解することは、単に用語集を読めるようになるためではありません。学習設定、推論エンジン、デプロイ要件を見たときに、その数字の裏で何が交換されているのかを理解するためです。&lt;/p&gt;
&lt;h2 id=&#34;実用的な覚え方&#34;&gt;実用的な覚え方
&lt;/h2&gt;&lt;p&gt;最初から細かな仕様を全部覚えたくないなら、まずは次の順で捉えると実用的です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;FP32&lt;/code&gt;: 最も安定、最も高価&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FP16&lt;/code&gt;: VRAM は減るが、範囲は狭い&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BF16&lt;/code&gt;: &lt;code&gt;FP16&lt;/code&gt; に近い VRAM で、より大規模モデル向きの安定性&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TF32&lt;/code&gt;: 主に &lt;code&gt;FP32&lt;/code&gt; の遅さを改善し、VRAM 削減は主目的ではない&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FP8&lt;/code&gt;: さらに攻めた圧縮と高速化の路線&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/tensor-format-summary.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;代表的なテンソル型のまとめ図&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;こうしておけば、モデル配布ページに &lt;code&gt;fp16&lt;/code&gt;、&lt;code&gt;bf16&lt;/code&gt;、&lt;code&gt;fp8&lt;/code&gt; と書かれていても、あるいはデプロイ手順ごとに VRAM 要件が大きく違っていても、それが単なる表記の違いではなく、精度予算と工学的な選択の違いだとわかるようになります。&lt;/p&gt;
&lt;h2 id=&#34;結び&#34;&gt;結び
&lt;/h2&gt;&lt;p&gt;大規模モデルにおけるテンソル型の話は、表面上は bit 数の話に見えても、本質的には工学的なトレードオフの話です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;FP32&lt;/code&gt;、&lt;code&gt;FP16&lt;/code&gt;、&lt;code&gt;BF16&lt;/code&gt;、&lt;code&gt;TF32&lt;/code&gt;、&lt;code&gt;FP8&lt;/code&gt; に絶対的な優劣はありません。それぞれが、安定性、範囲、精度、メモリ、速度のどこに重みを置くかが違うだけです。&lt;/p&gt;
&lt;p&gt;この層が見えるようになると、学習論文を読むときも、推論設定を調整するときも、異なるデプロイ戦略を比べるときも、ずっと要点をつかみやすくなります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>16GB GPUでも35Bモデルは動かせる: LM StudioでMoEモデルのVRAMを圧縮する考え方</title>
        <link>https://knightli.com/ja/2026/04/22/16gb-gpu-run-35b-moe-models-in-lm-studio/</link>
        <pubDate>Wed, 22 Apr 2026 21:47:34 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/22/16gb-gpu-run-35b-moe-models-in-lm-studio/</guid>
        <description>&lt;p&gt;16GB VRAM というと、ローカルで大規模モデルを動かす場合はせいぜい 12B〜14B あたりが限界で、それ以上は量子化してもかなり厳しい、というイメージを持つ人が多いと思います。その見方は完全に間違いではありませんが、16GB GPU の本当の上限でもありません。&lt;/p&gt;
&lt;p&gt;モデル選定とパラメータ設定がうまく噛み合えば、16GB GPU は必ずしも「小さめのモデル」に留まる必要はありません。その代表的な考え方のひとつが、&lt;code&gt;LM Studio&lt;/code&gt; で &lt;code&gt;MoE&lt;/code&gt; モデルを使い、適切なアンロード戦略によって 35B 級モデルを実用的な速度で回すというものです。&lt;/p&gt;
&lt;h2 id=&#34;01-なぜ16gb-gpuが12b14bに固定されるわけではないのか&#34;&gt;01 なぜ16GB GPUが12B〜14Bに固定されるわけではないのか
&lt;/h2&gt;&lt;p&gt;ここでの核心はシンプルです。VRAM 容量は重要ですが、モデルのアーキテクチャも同じくらい重要です。&lt;/p&gt;
&lt;p&gt;標準的な dense モデルを 16GB GPU に無理やり押し込もうとすると、すぐに限界に当たります。こうしたモデルは推論時に基本的にすべてのパラメータ計算へ関与するため、VRAM と帯域の負荷が一気に上がるからです。&lt;/p&gt;
&lt;p&gt;しかし &lt;code&gt;MoE&lt;/code&gt; モデルは違います。総パラメータ数は大きくても、1 回の推論で実際に有効化される専門家パラメータはその一部だけです。35B 級モデルを例にすると、総量は大きくても、1 回の推論で実際に計算に参加するパラメータはずっと少ないため、実際の VRAM 要求は想像ほど極端ではありません。&lt;/p&gt;
&lt;p&gt;だからこそ、16GB GPU にもまだ工夫の余地があります。&lt;/p&gt;
&lt;h2 id=&#34;02-実測上のポイント-35bのmoeモデルはかなり速く動く&#34;&gt;02 実測上のポイント: 35BのMoEモデルはかなり速く動く
&lt;/h2&gt;&lt;p&gt;代表的な例として挙げられるのが、&lt;code&gt;Qwen 3.5 35B A3B&lt;/code&gt; のような &lt;code&gt;MoE&lt;/code&gt; モデルの量子化版です。16GB GPU と &lt;code&gt;LM Studio&lt;/code&gt; の組み合わせで設定を調整すると、&lt;code&gt;Q6&lt;/code&gt; 量子化で 30 &lt;code&gt;tokens/s&lt;/code&gt; を超える水準に届き、&lt;code&gt;Q4&lt;/code&gt; ではさらに高い速度が出ることもあります。&lt;/p&gt;
&lt;p&gt;この結果に価値があるのは、単に「動く」からではありません。速度がすでに「明らかに実用的」と言える水準に入っているからです。&lt;/p&gt;
&lt;p&gt;比較として、同じくらい大きな規模でも &lt;code&gt;MoE&lt;/code&gt; ではないモデルを 16GB GPU で無理に回そうとすると、VRAM あふれや大幅な速度低下が起こりがちです。つまり結果を決めるのは、総パラメータ数だけではなく、推論時にそのパラメータをどう使うかです。&lt;/p&gt;
&lt;h2 id=&#34;03-lm-studioでは見るべきパラメータが1つではない&#34;&gt;03 LM Studioでは、見るべきパラメータが1つではない
&lt;/h2&gt;&lt;p&gt;16GB GPU でこうしたモデルを安定して動かすには、運任せではなく、2 つのパラメータを正しく調整する必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPU Offload&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;一部の expert layer を CPU メモリへ強制的に載せるための設定&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;前者は比較的わかりやすく、&lt;code&gt;GPU Offload&lt;/code&gt; は基本的に可能な限り高く設定し、GPU 側での計算を優先させます。&lt;/p&gt;
&lt;p&gt;後者こそが重要です。これは「VRAM があふれてからシステムメモリを借りる」という昔ながらのやり方ではなく、あらかじめ一部の expert layer を CPU メモリへ逃がして VRAM 使用量を下げる方法です。&lt;code&gt;MoE&lt;/code&gt; モデルはそもそも毎回すべての expert を有効化するわけではないため、専門家層の一部をメモリ側へ回しても、推論速度への影響は多くの人が思うほど大きくありません。&lt;/p&gt;
&lt;p&gt;実際には、まず一定の範囲から試し、手元のマシンに合わせて少しずつ調整するのが安全です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;関連値を &lt;code&gt;20&lt;/code&gt;〜&lt;code&gt;35&lt;/code&gt; あたりから始める&lt;/li&gt;
&lt;li&gt;VRAM 使用量とメモリ圧力を見ながら微調整する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本質的には、システムメモリを使って VRAM の余裕を買う方法です。&lt;/p&gt;
&lt;h2 id=&#34;04-128kコンテキストでも動きさらに縮めればvramをもっと減らせる&#34;&gt;04 128Kコンテキストでも動き、さらに縮めればVRAMをもっと減らせる
&lt;/h2&gt;&lt;p&gt;もうひとつ面白いのは、コンテキスト長を &lt;code&gt;128K&lt;/code&gt; に引き上げた状態でも、35B 級 &lt;code&gt;MoE&lt;/code&gt; モデルが比較的高い速度を保てることです。&lt;/p&gt;
&lt;p&gt;ここからわかるのは、16GB GPU の限界は思っているほど固定的ではない、ということです。特に &lt;code&gt;LM Studio&lt;/code&gt; のようなローカル推論ツールでは、「動くか動かないか」の二択ではなく、実際には次のようなトレードオフになります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;より多くのシステムメモリを使ってでも VRAM を節約するか&lt;/li&gt;
&lt;li&gt;コンテキスト長を短くするか&lt;/li&gt;
&lt;li&gt;量子化ごとの能力差を受け入れるか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もしコンテキストを &lt;code&gt;128K&lt;/code&gt; から &lt;code&gt;64K&lt;/code&gt; や &lt;code&gt;32K&lt;/code&gt; に縮めれば、VRAM 圧力はさらに下げられます。つまり、35B 級の &lt;code&gt;MoE&lt;/code&gt; モデルの中には、より少ない VRAM の GPU でも何とか動くものが出てくる可能性があります。ただし、その分だけ速度とメモリ負荷のバランスは再調整が必要になります。&lt;/p&gt;
&lt;h2 id=&#34;05-この方法の代償-ramと仮想メモリへの要求が高くなる&#34;&gt;05 この方法の代償: RAMと仮想メモリへの要求が高くなる
&lt;/h2&gt;&lt;p&gt;もちろん、この方法はタダで性能が増えるわけではありません。&lt;/p&gt;
&lt;p&gt;注意すべきなのは、VRAM 圧力をさらに圧縮すると、システム RAM の使用量が目立って増え、仮想メモリの負荷も上がることです。つまり、コストが消えるのではなく、GPU から RAM とディスクスワップへ圧力が移るだけです。&lt;/p&gt;
&lt;p&gt;そのため、実際に試すなら、先にいくつか確認しておくべきです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;システム RAM が十分あるか&lt;/li&gt;
&lt;li&gt;仮想メモリを十分に確保しているか&lt;/li&gt;
&lt;li&gt;バックグラウンドで重いソフトがたくさん動いていないか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうした条件が揃っていないと、「35B が速く動く」どころか、マシン全体が遅くなる可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;06-量子化は攻めればいいというものでもない&#34;&gt;06 量子化は攻めればいいというものでもない
&lt;/h2&gt;&lt;p&gt;ここにはもうひとつ実務的な判断があります。より低ビットの量子化はたしかに VRAM をさらに節約しやすいですが、それが最善とは限りません。&lt;/p&gt;
&lt;p&gt;実際には、&lt;code&gt;Q4&lt;/code&gt; のほうが速度は高くても、元の能力が落ちやすいモデルもあります。その点、&lt;code&gt;Q6&lt;/code&gt; は速度と能力保持のバランスが取りやすいことが多いです。結局は、自分がどちらを優先するかです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;とにかく速く、VRAM に収めたいのか&lt;/li&gt;
&lt;li&gt;それともモデル本来の能力をより多く残したいのか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この優先順位によって、選ぶ量子化は変わってきます。&lt;/p&gt;
&lt;h2 id=&#34;07-試す価値があるモデルの考え方&#34;&gt;07 試す価値があるモデルの考え方
&lt;/h2&gt;&lt;p&gt;この観点で見ると、やるべきことは「とにかく大きいモデルを追うこと」ではなく、この戦略に合うモデルを先に探すことです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;MoE&lt;/code&gt; アーキテクチャのモデル&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LM Studio&lt;/code&gt; での対応が良く、量子化版が揃っているモデル&lt;/li&gt;
&lt;li&gt;長いコンテキストや instruction following に明確な強みがあるモデル&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そして、この考え方は 1 つの 35B &lt;code&gt;MoE&lt;/code&gt; モデルだけに限りません。長文脈記憶に強い実験的モデル、命令追従が優秀なモデル、あるいは軽量量子化で速度が出るモデルなどにも自然に広げられます。&lt;/p&gt;
&lt;p&gt;つまり重要なのは、まず「メモリで VRAM を補う」戦略に合うアーキテクチャを見つけ、そのうえで調整に入ることです。最初に総パラメータ数だけ見て判断するべきではありません。&lt;/p&gt;
&lt;h2 id=&#34;08-まとめ&#34;&gt;08 まとめ
&lt;/h2&gt;&lt;p&gt;もし手元に 16GB GPU があり、ローカル LLM はせいぜい 12B〜14B までだと思っていたなら、その前提は少し更新してよさそうです。&lt;/p&gt;
&lt;p&gt;より正確に言えば、次のようになります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;16GB GPU でも大きめのモデルが完全に無理なわけではない&lt;/li&gt;
&lt;li&gt;dense モデルと &lt;code&gt;MoE&lt;/code&gt; モデルは分けて考える必要がある&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LM Studio&lt;/code&gt; の &lt;code&gt;GPU Offload&lt;/code&gt; と expert layer の CPU メモリ移動は、VRAM 使用量を大きく変えられる&lt;/li&gt;
&lt;li&gt;実際には、より大きいモデル規模とより高い実用速度を得るために、より高いメモリ圧力を受け入れている&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この方法がすべてのマシンに向くわけではありませんが、少なくともひとつ確かなことがあります。ローカル LLM 運用では、VRAM 上限だけが唯一の制約ではなく、モデルアーキテクチャと推論設定も同じくらい重要です。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude Code のマルチエージェント協調: Subagents と Agent Teams はどう使い分けるか</title>
        <link>https://knightli.com/ja/2026/04/22/claude-code-subagents-vs-agent-teams/</link>
        <pubDate>Wed, 22 Apr 2026 21:35:52 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/22/claude-code-subagents-vs-agent-teams/</guid>
        <description>&lt;p&gt;Claude Code でマルチエージェント協調を考えるとき、最も混同しやすいのが &lt;code&gt;Subagents&lt;/code&gt; と &lt;code&gt;Agent Teams&lt;/code&gt; です。どちらも「複数の Agent を動かして一緒に作業する」ように見えますが、実際には想定している使い方が異なります。簡単に言えば、前者は独立したタスクを切り出して処理するのに向いており、後者は複数の Agent が同じテーマについて継続的に協力し、相互に検証しながら進めるのに向いています。&lt;/p&gt;
&lt;p&gt;もし Skill を使ったことがあるなら、まずは次のように理解すると分かりやすいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skill は手順やルールを定義する&lt;/li&gt;
&lt;li&gt;Subagent や Agent teammate は実際の作業を行う&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり重要なのは、どちらが「上位」かではなく、どの種類の協調課題を解きたいのかです。&lt;/p&gt;
&lt;h2 id=&#34;subagents-サイドタスクを切り出す&#34;&gt;Subagents: サイドタスクを切り出す
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Subagents&lt;/code&gt; は、現在のセッションから一時的に送り出す分身に近い存在です。各分身は独自のコンテキストウィンドウを持ち、作業後は結果の要約だけを返します。そのため、メインの会話は大量の中間ログや出力で埋まりにくくなります。&lt;/p&gt;
&lt;p&gt;この仕組みには、実務上かなり分かりやすい利点があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;メインスレッドがきれいなままで、テストログや検索結果、長い出力で汚れにくい&lt;/li&gt;
&lt;li&gt;相互依存のない調査や実行タスクを並列化できる&lt;/li&gt;
&lt;li&gt;「結果だけ返してくれればよい」タイプの仕事に向いている&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;元記事では、Claude Code には次の 3 種類の組み込み Subagent があると説明されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Explore&lt;/code&gt;: 読み取り専用で、コードベースの高速検索に向く&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Plan&lt;/code&gt;: 読み取り専用で、plan mode 中のバックグラウンド情報収集に向く&lt;/li&gt;
&lt;li&gt;&lt;code&gt;General-purpose&lt;/code&gt;: 読み書き可能で、探索と編集を組み合わせる仕事に向く&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;カスタム-subagent&#34;&gt;カスタム Subagent
&lt;/h3&gt;&lt;p&gt;組み込みのものだけでは足りない場合は、自分で Subagent を定義できます。やり方はシンプルで、Markdown ファイルを用意するだけです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.claude/agents/&lt;/code&gt;: 現在のプロジェクトでのみ有効&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~/.claude/agents/&lt;/code&gt;: すべてのプロジェクトで有効&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ファイル形式は次のようになります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: code-reviewer
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: Expert code review specialist. Proactively reviews code for quality, security, and maintainability. Use immediately after writing or modifying code.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tools: Read, Grep, Glob, Bash
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;model: inherit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;You are a senior code reviewer ensuring high standards of code quality and security.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;When invoked:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; Run git diff to see recent changes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; Focus on modified files
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; Begin review immediately
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Review checklist:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Code is clear and readable
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Functions and variables are well-named
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; No duplicated code
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Proper error handling
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; No exposed secrets or API keys
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Input validation implemented
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Good test coverage
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Performance considerations addressed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Provide feedback organized by priority:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Critical issues (must fix)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Warnings (should fix)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Suggestions (consider improving)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Include specific examples of how to fix issues.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ここで特に重要なのは &lt;code&gt;description&lt;/code&gt; です。Claude はこの説明を見て、いつこの Subagent を呼ぶべきか判断します。説明が正確であるほど、呼び出しの精度も上がりやすくなります。&lt;/p&gt;
&lt;p&gt;ほかにも知っておくと便利な設定項目があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tools&lt;/code&gt;: 使用できるツールを制限する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;model&lt;/code&gt;: &lt;code&gt;sonnet&lt;/code&gt;、&lt;code&gt;opus&lt;/code&gt;、&lt;code&gt;haiku&lt;/code&gt;、&lt;code&gt;inherit&lt;/code&gt; から選ぶ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;permissionMode&lt;/code&gt;: 編集権限や権限プロンプトの挙動を制御する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;memory&lt;/code&gt;: Subagent に対話をまたぐ記憶ディレクトリを与える&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一時的にだけ使いたい場合は、CLI 経由で定義することもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude --agents &lt;span class=&#34;s1&#34;&gt;&amp;#39;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;  &amp;#34;code-reviewer&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;    &amp;#34;description&amp;#34;: &amp;#34;Expert code reviewer. Use proactively after code changes.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;    &amp;#34;prompt&amp;#34;: &amp;#34;You are a senior code reviewer. Focus on code quality, security, and best practices.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;    &amp;#34;tools&amp;#34;: [&amp;#34;Read&amp;#34;, &amp;#34;Grep&amp;#34;, &amp;#34;Glob&amp;#34;, &amp;#34;Bash&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;    &amp;#34;model&amp;#34;: &amp;#34;sonnet&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;subagents-が向いている場面&#34;&gt;Subagents が向いている場面
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Subagents&lt;/code&gt; が特に向いているのは、たとえば次のような仕事です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;テストを実行し、数千行のログではなく失敗要約だけをメイン会話に返す&lt;/li&gt;
&lt;li&gt;相互依存しない複数モジュールの調査を並列に進める&lt;/li&gt;
&lt;li&gt;「問題を見つける」と「修正する」を単純なパイプラインに分ける&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たとえば次のような指示です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Research the authentication, database, and API modules in parallel using separate subagents
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use the code-reviewer subagent to find performance issues, then use the optimizer subagent to fix them
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;一方で、タスクが何度も往復しながら調整を要する場合、複数段階で大量の文脈を共有する場合、あるいは変更が一つ二つのファイルに集中している場合は、Subagent を立てるよりメイン会話で直接処理したほうが楽なことが多いです。&lt;/p&gt;
&lt;h2 id=&#34;agent-teams-複数の独立セッションで協調する&#34;&gt;Agent Teams: 複数の独立セッションで協調する
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Agent Teams&lt;/code&gt; は別のレイヤーの機能です。1 つのセッション内で分身を出すのではなく、完全に独立した複数の Claude Code インスタンスを起動し、共有タスクリストを中心に協調させます。しかも、メンバー同士が直接メッセージを送り合うこともできます。&lt;/p&gt;
&lt;p&gt;そのため、単なるサイドタスク処理というより、本当に小さなチームを作る感覚に近いです。&lt;/p&gt;
&lt;p&gt;元記事では、これはまだ実験機能であり、先に有効化が必要だと説明されています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これを &lt;code&gt;settings.json&lt;/code&gt; に追加すると、Claude に対して目的に応じた team を組ませることができます。たとえば次のような形です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;I&amp;#39;m designing a CLI tool that helps developers track TODO comments across
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;their codebase. Create an agent team to explore this from different angles: one
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;teammate on UX, one on technical architecture, one playing devil&amp;#39;s advocate.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;agent-teams-の構成&#34;&gt;Agent Teams の構成
&lt;/h3&gt;&lt;p&gt;Agent Team は主に次の 3 つで構成されます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Team lead: あなたが使っているメインセッション。編成、割り振り、要約を担当する&lt;/li&gt;
&lt;li&gt;Teammates: 複数の独立した Claude Code インスタンス&lt;/li&gt;
&lt;li&gt;Task list と Mailbox: 共有タスクリストとメッセージ経路&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Subagents&lt;/code&gt; との最大の違いは、teammates 同士が直接やり取りできることです。毎回 lead を経由する必要はありません。タスク状態は通常 &lt;code&gt;pending&lt;/code&gt;、&lt;code&gt;in progress&lt;/code&gt;、&lt;code&gt;completed&lt;/code&gt; の間を移り、1 つ終えた teammate は次のタスクを引き取ることもできます。&lt;/p&gt;
&lt;h3 id=&#34;agent-teams-が向いている場面&#34;&gt;Agent Teams が向いている場面
&lt;/h3&gt;&lt;p&gt;複数視点からの検討、結論への異議申し立て、仮説同士の競合、あるいはモジュール単位の並列開発が必要なときは、&lt;code&gt;Agent Teams&lt;/code&gt; のほうが適しています。&lt;/p&gt;
&lt;p&gt;記事では次のような典型例が挙げられています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;同じ PR を複数 reviewer が並列でレビューし、それぞれ異なる観点を見る&lt;/li&gt;
&lt;li&gt;同じ bug に対して複数の Agent が異なる仮説を立て、互いに反証する&lt;/li&gt;
&lt;li&gt;フロントエンド、バックエンド、テストが別々の領域を並列で進める&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たとえば並列コードレビューでは、次のように指示できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create an agent team to review PR &lt;span class=&#34;ni&#34;&gt;#142&lt;/span&gt;. Spawn three reviewers:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; One focused on security implications
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; One checking performance impact
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; One validating test coverage
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Have them each review and report findings.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;また、討論型のデバッグでは次のような使い方ができます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Users report the app exits after one message instead of staying connected.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Spawn 5 agent teammates to investigate different hypotheses. Have them talk to
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;each other to try to disprove each other&amp;#39;s theories, like a scientific
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;debate. Update the findings doc with whatever consensus emerges.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;この種の仕事に共通しているのは、単に 1 つの答えが欲しいのではなく、複数の Agent が判断を持ち寄り、前提を揺さぶり合いながら、より確かな結論に収束していくことです。&lt;/p&gt;
&lt;h2 id=&#34;どう使い分けるか&#34;&gt;どう使い分けるか
&lt;/h2&gt;&lt;p&gt;手早く判断したいなら、次のように覚えると分かりやすいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;結果だけ持ち帰ればよいなら &lt;code&gt;Subagents&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;議論や相互検証が必要なら &lt;code&gt;Agent Teams&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もう少し整理すると、主な違いは次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;通信方法: &lt;code&gt;Subagents&lt;/code&gt; は主にメイン会話へ結果を返すが、&lt;code&gt;Agent Teams&lt;/code&gt; はメンバー同士で直接やり取りできる&lt;/li&gt;
&lt;li&gt;調整方法: &lt;code&gt;Subagents&lt;/code&gt; はメイン会話側のオーケストレーションに依存しやすいが、&lt;code&gt;Agent Teams&lt;/code&gt; は共有タスクリストをもとに各メンバーが自律的に動ける&lt;/li&gt;
&lt;li&gt;Token コスト: &lt;code&gt;Subagents&lt;/code&gt; のほうが軽く、&lt;code&gt;Agent Teams&lt;/code&gt; は各 teammate が独立インスタンスのため高くなりやすい&lt;/li&gt;
&lt;li&gt;向いている仕事: &lt;code&gt;Subagents&lt;/code&gt; は独立性が高く結果志向の仕事向き、&lt;code&gt;Agent Teams&lt;/code&gt; は議論や相互検証が重要な仕事向き&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;実運用で気をつけたいこと&#34;&gt;実運用で気をつけたいこと
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Agent Teams&lt;/code&gt; は強力ですが、だからといってすべてのタスクで team を組むべきというわけではありません。記事では特に次のような現実的な注意点が挙げられています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;token 消費が明らかに大きい&lt;/li&gt;
&lt;li&gt;複数 teammate が同じファイルを同時に編集すると、上書き競合が起きやすい&lt;/li&gt;
&lt;li&gt;teammate が多すぎると調整コストが増え、成果が伸びるとは限らない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、比較的安全な進め方としては次のようになります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;まずは 3〜5 人程度の teammate から始める&lt;/li&gt;
&lt;li&gt;モジュールやファイル単位で仕事を分け、編集衝突を避ける&lt;/li&gt;
&lt;li&gt;lead が早まって teammate の仕事に手を出し始めたら、先に待つよう明示する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;また、現時点の実験版には次のような制約もあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/resume&lt;/code&gt; と &lt;code&gt;/rewind&lt;/code&gt; で in-process teammates を復元できない&lt;/li&gt;
&lt;li&gt;タスク状態が遅れて反映され、手動での更新が必要になることがある&lt;/li&gt;
&lt;li&gt;1 人の lead が同時に扱える team は 1 つだけ&lt;/li&gt;
&lt;li&gt;teammate がさらに子 team を作ることはできない&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;この 2 つの機能は、互いの代替ではありません。解いている協調課題そのものが違います。&lt;/p&gt;
&lt;p&gt;目的が「サイドタスクを並列化し、メインの文脈をきれいに保つこと」なら、まずは &lt;code&gt;Subagents&lt;/code&gt; を使うのが自然です。目的が「複数の Agent に小さなチームのように協力させ、議論し、相互検証させること」なら、&lt;code&gt;Agent Teams&lt;/code&gt; が向いています。&lt;/p&gt;
&lt;p&gt;実際のタスクで一度試してみると、違いはかなり早く体感できます。片方は文脈の分離と結果回収に強く、もう片方は多視点での協調と継続的なやり取りに強い、という違いです。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;元記事: &lt;a class=&#34;link&#34; href=&#34;https://cloud.tencent.com/developer/article/2652960&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://cloud.tencent.com/developer/article/2652960&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT Image 2 正式公開、画像生成は「作れる」から「商用で使える」へ</title>
        <link>https://knightli.com/ja/2026/04/22/gpt-image-2-from-generation-to-commercial-use/</link>
        <pubDate>Wed, 22 Apr 2026 20:08:22 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/22/gpt-image-2-from-generation-to-commercial-use/</guid>
        <description>&lt;p&gt;OpenAI の次世代画像生成モデル &lt;code&gt;GPT Image 2&lt;/code&gt; が、すでに ChatGPT ユーザー向けに正式公開されています。リーク段階でのコミュニティの反応と、現在公開されている実例をあわせて見ると、今回の変化は単なる通常アップデートというより、AI 画像生成が「見られるもの」から「実際に使えるもの」へ進んだ大きな一歩に見えます。&lt;/p&gt;
&lt;p&gt;前世代の画像モデルが、主にアイデア出し、コンセプトアート、試作的な生成に向いていたとすれば、&lt;code&gt;GPT Image 2&lt;/code&gt; のいちばん目立つ点は、制作現場で使えるツールに近づいてきたことです。読みやすい文字、UI スクリーンショット、販促ポスター、よりリアルな商業写真風の画像など、どの用途でも以前より「そのまま使える」感覚が強くなっています。&lt;/p&gt;
&lt;h2 id=&#34;1-コアアップグレードとして注目したい-5-つの点&#34;&gt;1. コアアップグレードとして注目したい 5 つの点
&lt;/h2&gt;&lt;h3 id=&#34;1-文字レンダリングがついに実用域に入った&#34;&gt;1. 文字レンダリングがついに実用域に入った
&lt;/h3&gt;&lt;p&gt;AI 画像生成でずっと難所だったのが文字です。文字化け、スペルミス、長文の崩れ、フォントの歪みは、ほとんどすべてのモデルで見られてきた問題でした。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT Image 2&lt;/code&gt; はこの点でかなりはっきりした改善を見せています。英語や中国語の文字をより明瞭に扱えるだけでなく、複雑なレイアウト、長めの段落、ある程度の多言語混在にも対応しやすくなっています。つまり、これまで後工程で文字を直していた場面の多くが、生成段階でそのまま完了できる可能性が高くなったわけです。&lt;/p&gt;
&lt;p&gt;代表的な用途としては次のようなものがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ポスター&lt;/li&gt;
&lt;li&gt;SNS カバー画像&lt;/li&gt;
&lt;li&gt;タイトルや説明文付きのプロモーションページ&lt;/li&gt;
&lt;li&gt;PPT 用ビジュアル&lt;/li&gt;
&lt;li&gt;実際の文言や UI 要素を含む App スクリーンショット&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;実務フローにおいて、これはかなり重要です。文字が安定して読めるようになると、画像生成は単なる「背景画像づくり」ではなく、販促素材やプロダクト紹介画像まで担えるようになるからです。&lt;/p&gt;
&lt;h3 id=&#34;2-写真級のリアリティが明確に向上した&#34;&gt;2. 写真級のリアリティが明確に向上した
&lt;/h3&gt;&lt;p&gt;コミュニティの比較を見ると、&lt;code&gt;GPT Image 2&lt;/code&gt; は全体的によりシャープで、質感の描写も細かく、光の整合性も高くなっています。これまで AI っぽさが出やすかった顔、手、輪郭の細部も、今世代ではかなり安定しています。&lt;/p&gt;
&lt;p&gt;もちろん、完全に破綻がなくなったわけではありません。ただ、いわゆる「AI っぽさ」はかなり薄くなっています。初見では本物の写真や商業撮影の作例、あるいはゲームのスクリーンショットだと見間違える画像も増えています。&lt;/p&gt;
&lt;p&gt;そのため、多くの人の第一印象が「うまく描けている」から「かなり本物っぽい」に変わってきています。&lt;/p&gt;
&lt;h3 id=&#34;3-世界知識の統合がより強くなった&#34;&gt;3. 世界知識の統合がより強くなった
&lt;/h3&gt;&lt;p&gt;これは派手ではないものの、とても実用的な強化です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT Image 2&lt;/code&gt; は、単にパーツや画風を組み合わせるだけでなく、「自分が何を描いているかをわかっている」ような印象があります。元記事で挙げられていた例もわかりやすいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;腕時計の文字盤の時刻表現がより自然&lt;/li&gt;
&lt;li&gt;ブランドの細部やキャラクターの特徴の再現がより正確&lt;/li&gt;
&lt;li&gt;Minecraft のようなゲーム画面やソフトウェア UI の構造がより本物らしい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、現実の物体、デジタル UI、ゲーム画面のように、常識や構造理解が必要な内容を扱うときの成功率が上がっています。ユーザーにとっては、単なる高解像度化よりこうした改善のほうが価値を感じやすいはずです。&lt;/p&gt;
&lt;h3 id=&#34;4-ui-とスクリーンショット生成がかなり強い&#34;&gt;4. UI とスクリーンショット生成がかなり強い
&lt;/h3&gt;&lt;p&gt;リーク段階から正式公開まで、&lt;code&gt;GPT Image 2&lt;/code&gt; で特に話題になっていた方向のひとつが、ソフトウェア画面、Web スクリーンショット、App mockup の生成でした。&lt;/p&gt;
&lt;p&gt;こうしたタスクが難しかったのは、次の条件を同時に満たす必要があったからです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文字がはっきり読めること&lt;/li&gt;
&lt;li&gt;レイアウトが整っていること&lt;/li&gt;
&lt;li&gt;ボタン、カード、ナビゲーションバーなどの要素がきちんと揃うこと&lt;/li&gt;
&lt;li&gt;配色や情報階層が実在する製品らしく見えること&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;今回のモデルは、そのあたりの完成度がかなり高くなっています。プロダクトマネージャー、個人開発者、デザイナーにとっては、提案、デモ、ユーザーテスト用の高忠実度モックアップをより速く作れることを意味します。&lt;/p&gt;
&lt;h3 id=&#34;5-局所編集が実用フローに近づいた&#34;&gt;5. 局所編集が実用フローに近づいた
&lt;/h3&gt;&lt;p&gt;元記事をもとにすると、&lt;code&gt;GPT Image 2&lt;/code&gt; はより精密な局所編集に対応しており、毎回画像全体を作り直すのではなく、必要な部分だけを修正できます。&lt;/p&gt;
&lt;p&gt;この能力はクリエイティブワークでは非常に重要です。実際のデザイン作業では、「1 枚まるごと作り直す」よりも次のような修正のほうが多いからです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ボタンを 1 つ変える&lt;/li&gt;
&lt;li&gt;一文だけ差し替える&lt;/li&gt;
&lt;li&gt;あるオブジェクトの位置を調整する&lt;/li&gt;
&lt;li&gt;背景の一部を直す&lt;/li&gt;
&lt;li&gt;局所的な要素だけ入れ替える&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;局所編集が十分安定すれば、AI 画像生成の価値は初回出力だけにとどまりません。反復的な改善サイクルに本格的に組み込めるようになります。&lt;/p&gt;
&lt;h2 id=&#34;2-gpt-image-2-の使い方&#34;&gt;2. GPT Image 2 の使い方
&lt;/h2&gt;&lt;h3 id=&#34;chatgpt-で使う&#34;&gt;ChatGPT で使う
&lt;/h3&gt;&lt;p&gt;現在 &lt;code&gt;GPT Image 2&lt;/code&gt; は ChatGPT に統合されており、一般ユーザーも画像生成機能から直接利用できます。&lt;/p&gt;
&lt;p&gt;よくある流れは次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ChatGPT の Web 版または App を開く&lt;/li&gt;
&lt;li&gt;入力欄の &lt;code&gt;+&lt;/code&gt; をクリックする&lt;/li&gt;
&lt;li&gt;「画像を作成」を選ぶ&lt;/li&gt;
&lt;li&gt;プロンプトを入力して送信する&lt;/li&gt;
&lt;li&gt;システムが &lt;code&gt;GPT Image 2&lt;/code&gt; を呼び出して結果を返す&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;元記事では、契約プランによって利用枠が異なり、無料ユーザーと &lt;code&gt;Plus&lt;/code&gt; / &lt;code&gt;Pro&lt;/code&gt; ユーザーでは生成回数に差があるとも触れられています。具体的な上限は後から変わる可能性があるため、その時点で ChatGPT 上に表示される内容を確認するのがよいでしょう。&lt;/p&gt;
&lt;h3 id=&#34;api-で使う&#34;&gt;API で使う
&lt;/h3&gt;&lt;p&gt;開発者向けには、OpenAI API 経由で画像生成モデルを呼び出すこともできます。元記事ではモデル名を &lt;code&gt;gpt-image-2&lt;/code&gt; としていますが、実装時には最新の正式名称やパラメータを公式ドキュメントで確認するのが安全です。&lt;/p&gt;
&lt;p&gt;記事内で紹介されていた代表的な解像度は次の通りです。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;解像度&lt;/th&gt;
          &lt;th&gt;想定ユースケース&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;1024×1024&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;汎用の正方形画像、アイコン、SNS 画像&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;1536×1024&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;横長カバー、スライド、ワイド壁紙&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;1024×1536&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;縦長ポスター、スマホ壁紙、ストーリー向け画像&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;2048×2048&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;高精細印刷、大判表示、細密なイラスト&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;3-代表的なユースケース&#34;&gt;3. 代表的なユースケース
&lt;/h2&gt;&lt;p&gt;元記事には多くの例がありますが、ここでは特に代表的なものを整理します。&lt;/p&gt;
&lt;h3 id=&#34;1-app-画面のスクリーンショット&#34;&gt;1. App 画面のスクリーンショット
&lt;/h3&gt;&lt;p&gt;この種のプロンプトは、プロダクトのプロトタイプ、デザインデモ、要件議論に向いています。&lt;/p&gt;
&lt;p&gt;典型的には次のような条件を入れます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;iOS などのプラットフォームスタイルを指定する&lt;/li&gt;
&lt;li&gt;画面構成を明確に書く&lt;/li&gt;
&lt;li&gt;主要なデータカードを列挙する&lt;/li&gt;
&lt;li&gt;下部ナビゲーションを指定する&lt;/li&gt;
&lt;li&gt;配色やタイポグラフィの方向を説明する&lt;/li&gt;
&lt;li&gt;文字の視認性と要素の整列を強調する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この書き方のポイントは、単に見栄えを良くすることではありません。モデルの自由度を減らして、より本物の画面に近い結果を出させることです。&lt;/p&gt;
&lt;h3 id=&#34;2-ec-商品画像&#34;&gt;2. EC 商品画像
&lt;/h3&gt;&lt;p&gt;香水、イヤホン、腕時計、化粧品のような商品画像は、&lt;code&gt;GPT Image 2&lt;/code&gt; が力を発揮しやすい領域です。&lt;/p&gt;
&lt;p&gt;理由は、次のような表現が安定してきたからです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ガラス、金属、液体などの素材感&lt;/li&gt;
&lt;li&gt;やわらかい影と反射&lt;/li&gt;
&lt;li&gt;商業写真でよくあるライティングの論理&lt;/li&gt;
&lt;li&gt;シンプルな背景での高級感ある見せ方&lt;/li&gt;
&lt;li&gt;少量のブランド文字&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;出力が安定すれば、EC 詳細画像、LP のメインビジュアル、SNS 用の商品ビジュアルの試行錯誤コストをかなり下げられます。&lt;/p&gt;
&lt;h3 id=&#34;3-文字入りポスター&#34;&gt;3. 文字入りポスター
&lt;/h3&gt;&lt;p&gt;ポスターは、今回の文字能力をもっともわかりやすく体感できる用途のひとつです。&lt;/p&gt;
&lt;p&gt;元記事の例では、夕暮れの都市シルエットを背景に、メインタイトル、日時場所、出演者名を明示し、さらに次の条件を求めています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文字がはっきり読めること&lt;/li&gt;
&lt;li&gt;スペルミスがないこと&lt;/li&gt;
&lt;li&gt;中英混在でも安定すること&lt;/li&gt;
&lt;li&gt;全体のスタイルが統一されていること&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この手の作業は以前なら背景を生成したあとで人手で文字を入れるのが普通でした。もし一度の生成で大部分を終えられるなら、実用価値はかなり大きくなります。&lt;/p&gt;
&lt;h3 id=&#34;4-ゲームコンセプトアートと偽スクリーンショット&#34;&gt;4. ゲームコンセプトアートと「偽スクリーンショット」
&lt;/h3&gt;&lt;p&gt;これは &lt;code&gt;GPT Image 2&lt;/code&gt; で作られたコンテンツの中でも、SNS で特に拡散されやすいジャンルです。&lt;/p&gt;
&lt;p&gt;たとえば三人称視点のゲーム画面、ネオン街、雨上がりの路面反射、被写界深度、粒状感、PS5 実機風といった要素を組み合わせると、ぱっと見でリーク画像だと誤認されやすいビジュアルができます。&lt;/p&gt;
&lt;p&gt;拡散という意味では非常に強い一方で、リスク面では、本物らしい偽画像を作るハードルがかなり下がってきたことも示しています。画像の真偽を判断する際には、これまで以上に慎重さが必要です。&lt;/p&gt;
&lt;h3 id=&#34;5-写実的な人物像とクリエイティブポートレート&#34;&gt;5. 写実的な人物像とクリエイティブポートレート
&lt;/h3&gt;&lt;p&gt;人物画像は、AI の画像能力をもっとも直感的に試せる分野のひとつです。&lt;/p&gt;
&lt;p&gt;元記事の例は、自然光、カフェ、逆光の縁取り、ニット、暖色の背景ボケといった組み合わせを中心にしています。その狙いは次の点にあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;肌の質感が自然であること&lt;/li&gt;
&lt;li&gt;髪の細部がきちんと出ること&lt;/li&gt;
&lt;li&gt;手の構造が崩れないこと&lt;/li&gt;
&lt;li&gt;光の回り方に無理がないこと&lt;/li&gt;
&lt;li&gt;全体に露骨な AI 感が出ないこと&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらを安定して満たせてこそ、人物生成が本当に実用段階に入ったと言えます。&lt;/p&gt;
&lt;h3 id=&#34;6-フードフォト&#34;&gt;6. フードフォト
&lt;/h3&gt;&lt;p&gt;元記事には、高級レストラン風の豚骨ラーメン写真を生成するための非常に長い英語プロンプトも紹介されています。これは、モデルが十分強くなると、プロンプトが撮影台本のような粒度になっていくことを示しています。&lt;/p&gt;
&lt;p&gt;具体的には次のような要素まで細かく指定できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;料理の構成&lt;/li&gt;
&lt;li&gt;食器の材質&lt;/li&gt;
&lt;li&gt;スープ表面の艶&lt;/li&gt;
&lt;li&gt;チャーシューの脂身と焼き目&lt;/li&gt;
&lt;li&gt;半熟卵の状態&lt;/li&gt;
&lt;li&gt;背景の被写界深度とボケ&lt;/li&gt;
&lt;li&gt;光の方向&lt;/li&gt;
&lt;li&gt;レンズの種類と絞り&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;飲食ブランド、メニュー制作、デリバリーサービスのメイン画像、SNS コンテンツにとって、このレベルの生成はすでに商業フードフォトの代替案にかなり近いところまで来ています。&lt;/p&gt;
&lt;h3 id=&#34;7-教育用イラスト&#34;&gt;7. 教育用イラスト
&lt;/h3&gt;&lt;p&gt;もうひとつ代表的なのが、ラベル付きの科学教育図です。&lt;/p&gt;
&lt;p&gt;元記事の例は植物細胞の断面図で、モデルに次の点を同時に求めています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;構造が正しいこと&lt;/li&gt;
&lt;li&gt;ラベル位置が正確であること&lt;/li&gt;
&lt;li&gt;誘導線が見やすいこと&lt;/li&gt;
&lt;li&gt;フォントが統一されていること&lt;/li&gt;
&lt;li&gt;配色に階層感があること&lt;/li&gt;
&lt;li&gt;教材やスライドに使いやすい全体設計であること&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは &lt;code&gt;GPT Image 2&lt;/code&gt; の価値が、単に「きれいな絵を作る」ことだけでなく、「情報を伝える図を作る」ことにも広がっていると示しています。&lt;/p&gt;
&lt;h2 id=&#34;4-一般ユーザーにとって最も現実的な意味&#34;&gt;4. 一般ユーザーにとって最も現実的な意味
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT Image 2&lt;/code&gt; が本当に注目に値するのは、単に画質をさらに押し上げたからではありません。AI 画像生成を、娯楽や試作のための道具から、商用利用や納品に近い制作ツールへと一段進めたことにあります。&lt;/p&gt;
&lt;p&gt;具体的には次のような変化があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文字がようやく信頼しやすくなった&lt;/li&gt;
&lt;li&gt;UI やポスターが実在の制作物に近づいた&lt;/li&gt;
&lt;li&gt;商業写真風の画像がより使いやすくなった&lt;/li&gt;
&lt;li&gt;教育用途や情報図版も作りやすくなった&lt;/li&gt;
&lt;li&gt;局所編集によって反復改善に向くようになった&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もちろん、これでデザイナー、フォトグラファー、イラストレーターが完全に不要になるわけではありません。実際の商用案件には、審美判断、ブランド管理、著作権への配慮、人による確認が引き続き必要です。&lt;/p&gt;
&lt;p&gt;それでも今回の更新から見えてくるのは、AI 画像生成の競争軸が「画像を作れるかどうか」だけではなく、「現実のワークフローにどれだけ安定して入れるか」へ移ってきているということです。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;元記事で触れられていた参考リンク: &lt;a class=&#34;link&#34; href=&#34;https://getgpt.pro/blog/gpt-image-2-release&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://getgpt.pro/blog/gpt-image-2-release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;元記事で触れられていた体験サイト: &lt;a class=&#34;link&#34; href=&#34;https://getgpt.pro&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://getgpt.pro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;元記事で触れられていた招待リンク: &lt;a class=&#34;link&#34; href=&#34;https://getgpt.pro/i/ig2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://getgpt.pro/i/ig2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>nuwa-skill: 「ある人を蒸留する」を発想から実行可能なワークフローへ</title>
        <link>https://knightli.com/ja/2026/04/22/nuwa-skill-distill-how-someone-thinks/</link>
        <pubDate>Wed, 22 Apr 2026 16:20:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/22/nuwa-skill-distill-how-someone-thinks/</guid>
        <description>&lt;p&gt;&lt;code&gt;[alchaincyf/nuwa-skill](https://github.com/alchaincyf/nuwa-skill)&lt;/code&gt; を見ると、まず「AI に有名人の口調で答えさせるものだろう」と思うかもしれません。ですが本当に面白いのは、どれだけ似ているかではありません。このプロジェクトは「ある人がどう考えるかを蒸留する」ことを、繰り返し実行できるワークフローにしようとしている点にあります。&lt;/p&gt;
&lt;p&gt;それが成立すれば、価値は単なる面白いキャラクター prompt をいくつか作ることにとどまりません。ある人の判断フレーム、注目点、よく使うヒューリスティック、表現の癖を、何度も呼び出せる skill として定着させられるからです。欲しいのは「その人が言いそうな一文」ではなく、「その人ならこの問題をどう見て、何を優先し、何を疑うか」に近い作業インターフェースです。&lt;/p&gt;
&lt;h2 id=&#34;これは模倣ではなくモデリングを解く&#34;&gt;これは「模倣」ではなく「モデリング」を解く
&lt;/h2&gt;&lt;p&gt;いわゆる人物 prompt の多くは、本質的にはスタイルの上貼りです。&lt;/p&gt;
&lt;p&gt;よくある指示は次のようなものです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ある人物の口調で話す&lt;/li&gt;
&lt;li&gt;その人の決まり文句を多く使う&lt;/li&gt;
&lt;li&gt;公開発言の言い回しをできるだけ真似する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうしたやり方はデモでは目を引きますが、実務に入ると崩れやすいです。理由は単純で、口調は表層であり、判断構造こそが核だからです。人物に識別性があるのは、好んで使う単語があるからではなく、問題に向き合うときに一定の切り込み方をするからです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;nuwa-skill&lt;/code&gt; の方向性は、そうした「安定した方法」を抽出することに近いです。言い換えれば、関心があるのは「どうすればその人っぽく話せるか」ではなく、「どうすればその人っぽく考えられるか」です。&lt;/p&gt;
&lt;h2 id=&#34;より完全なワークフロー&#34;&gt;より完全なワークフロー
&lt;/h2&gt;&lt;p&gt;リポジトリの説明を見ると、&lt;code&gt;nuwa-skill&lt;/code&gt; が目指しているのはエンドツーエンドの流れです。人名を入力すると、自動で調査、抽出、検証を行い、その結果を Claude Code で呼び出せる skill としてまとめる、という形です。&lt;/p&gt;
&lt;p&gt;この考え方にはいくつか重要な変化があります。&lt;/p&gt;
&lt;p&gt;第一に、蒸留対象は自分のチームの同僚でなくてもよいという前提です。この種の発想に初めて触れると、「優秀な同僚のやり方を残す」ことをまず思い浮かべる人が多いでしょう。それにも価値はありますが、学習サンプルが限られ、内部の経験に偏りやすいという境界もあります。&lt;code&gt;nuwa-skill&lt;/code&gt; は対象をもっと広げ、起業家、投資家、科学者、プロダクトマネージャー、書き手のような人たちまで含めています。&lt;/p&gt;
&lt;p&gt;第二に、強調されているのは手作業で prompt を組み立てることではなく、「自動で完了する」ことです。この手の能力を実用化するうえで本当に大事なのは、華やかな prompt 文ではなく、資料収集、観点の整理、パターン抽出、結果の検証を安定して回せるかどうかです。どこか一工程でも全面的に手作業へ依存すると、再利用コストは急激に上がります。&lt;/p&gt;
&lt;p&gt;第三に、出力を一度きりの会話ではなく skill にしようとしていることです。前者なら繰り返し呼び出し、組み合わせ、改善できます。後者はその場の文脈でしか効かず、数ターンで崩れがちです。&lt;/p&gt;
&lt;h2 id=&#34;なぜこの方向に注目する価値があるのか&#34;&gt;なぜこの方向に注目する価値があるのか
&lt;/h2&gt;&lt;p&gt;AI を質問応答マシンとして見るなら、自然な使い方は「答えをください」です。ですが AI を作業台として見るなら、問いは「この問題を見る方法をください」に変わります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;nuwa-skill&lt;/code&gt; の価値は後者に寄っています。&lt;/p&gt;
&lt;p&gt;たとえばプロダクトの意思決定に向き合うとき、欲しいのは一つの正解ではなく、鋭く異なる複数の分析フレームかもしれません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;長期的な複利から見る人&lt;/li&gt;
&lt;li&gt;リソース制約から見る人&lt;/li&gt;
&lt;li&gt;ユーザー体験の一貫性から見る人&lt;/li&gt;
&lt;li&gt;市場参入のタイミングから見る人&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうしたフレームを安定してパッケージ化できれば、AI の役割は「文章を一段落書くもの」から「視点を素早く切り替えるもの」へ変わります。これは名言の模倣よりずっと実用的です。なぜなら、意思決定の質に直接効くからです。&lt;/p&gt;
&lt;h2 id=&#34;最も魅力的な点-暗黙知を呼び出せる資産に変えること&#34;&gt;最も魅力的な点: 暗黙知を呼び出せる資産に変えること
&lt;/h2&gt;&lt;p&gt;価値の高い能力ほど、そもそも SOP に書きにくいものです。&lt;/p&gt;
&lt;p&gt;ある人の判断がなぜ他の人よりも的確なのかは、多くの場合、明示的なルールをたくさん知っているからではありません。長い実践の中で、暗黙のフィルタリング機構を作ってきたからです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;どのシグナルを優先して見るか&lt;/li&gt;
&lt;li&gt;どのノイズをすぐ切り捨てるか&lt;/li&gt;
&lt;li&gt;どの問いを分解して考えるか&lt;/li&gt;
&lt;li&gt;どの問いを反転させてみるか&lt;/li&gt;
&lt;li&gt;どの結論はさらに証拠を待つべきか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうした能力は、本人でも常に明快に言語化できるとは限らないため、普段は残しにくいです。だからこそ、構造化して抽出できるなら価値が高い。&lt;code&gt;nuwa-skill&lt;/code&gt; が惹きつけるのはこの点です。表層的な知識移送ではなく、認知習慣の再構成を扱おうとしているのです。&lt;/p&gt;
&lt;h2 id=&#34;どんな場面に向いているか&#34;&gt;どんな場面に向いているか
&lt;/h2&gt;&lt;p&gt;この種の skill は、特に次のような場面で有効だと思います。&lt;/p&gt;
&lt;h3 id=&#34;1-意思決定前の多視点レビュー&#34;&gt;1. 意思決定前の多視点レビュー
&lt;/h3&gt;&lt;p&gt;すでに案はあるものの、自分が慣れた道筋でしか考えていない気がするとき、異なる「人物視点」に切り替えて同じ問題を見直す方が、元の文章をそのまま膨らませるより価値があります。&lt;/p&gt;
&lt;h3 id=&#34;2-特定タイプの達人の判断フレームを学ぶ&#34;&gt;2. 特定タイプの達人の判断フレームを学ぶ
&lt;/h3&gt;&lt;p&gt;達人から学ぶとき、多くの人は名言を集め、インタビューを見て、要約を写します。しかし最後に残るのは、たいてい数個の印象的な言葉だけです。思考パターンを skill 化できれば、学び方は「実際の問いを持ち込んで何度も呼び出す」ものに近づき、「静的な抜き書きを大量に作る」ことから離れます。&lt;/p&gt;
&lt;h3 id=&#34;3-チームで分析スタイルを共有する&#34;&gt;3. チームで分析スタイルを共有する
&lt;/h3&gt;&lt;p&gt;チームに本当に不足しがちなのは、文書そのものではなく、「私たちは問題にぶつかったとき普段どう考えるか」という共有です。この流れが成熟すれば、組織内の強い実務家の方法論を残す用途にも逆向きで使えるでしょう。ただ、このプロジェクトがそれだけに能力を閉じ込めるつもりではないことは明らかです。&lt;/p&gt;
&lt;h2 id=&#34;この種のプロジェクトで本当に難しいこと&#34;&gt;この種のプロジェクトで本当に難しいこと
&lt;/h2&gt;&lt;p&gt;もちろん、方向性が魅力的だからといって、難題が解けたわけではありません。&lt;/p&gt;
&lt;p&gt;本当の難しさは skill をインストールすることではなく、むしろ次の点にあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;情報源が十分に信頼できるか&lt;/li&gt;
&lt;li&gt;抽出されたパターンが安定しているか、単なる断片的な語料の錯覚ではないか&lt;/li&gt;
&lt;li&gt;モデルが人物のフレームを使って分析しているのか、それとも一般的な印象をなぞっているだけなのか&lt;/li&gt;
&lt;li&gt;複数の人物の境界がモデル内部で曖昧にならないか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり本当に重要なのは、「もっともらしい文章を出せるか」ではなく、「この skill が生む認知フレームが多様なタスクに耐えて再利用できるか」です。今後、検証工程がさらに深まれば、この種のプロジェクトの信頼性は大きく上がるはずです。&lt;/p&gt;
&lt;h2 id=&#34;なぜこれはprompt-テンプレート集より一歩先なのか&#34;&gt;なぜこれは「prompt テンプレート集」より一歩先なのか
&lt;/h2&gt;&lt;p&gt;これまで多くのプロジェクトは、この能力をテンプレート集として扱ってきました。人物ごとに一つ prompt を用意し、ユーザーがコピーして使う形です。しかしテンプレート集は本質的に静的資産であり、更新は遅く、検証は弱く、完全な制作フローにもなりにくいです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;nuwa-skill&lt;/code&gt; が一歩進んでいるのは、「人物蒸留」をテンプレートの問題からワークフローの問題へ進めている点です。&lt;/p&gt;
&lt;p&gt;重心が「prompt を一つ書く」ことから、「人物 skill をどう体系的に生成し、検証し、改善するか」へ移ると、この営みはひらめきよりも工学に近くなります。長く使いたい人にとって重要なのは、明らかにこちらです。&lt;/p&gt;
&lt;h2 id=&#34;結び&#34;&gt;結び
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;nuwa-skill&lt;/code&gt; が面白いのは、AI を有名人のものまねショーにしたからではありません。「ある人の考え方をどう学ぶか」を、実行可能で、再利用できて、反復改善できる方向へ一歩進めたからです。&lt;/p&gt;
&lt;p&gt;多くの人物 prompt が解いているのが「誰かのように話す」ことだとすれば、このプロジェクトが解こうとしているのは「誰かのように問題を見る」ことです。前者はデモ向きで、後者こそ生産性ツールに近いと言えます。&lt;/p&gt;
&lt;h2 id=&#34;参考リンク&#34;&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub リポジトリ: &lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/nuwa-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/alchaincyf/nuwa-skill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;プロジェクト説明: &lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/nuwa-skill/blob/main/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/alchaincyf/nuwa-skill/blob/main/README.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skill 定義: &lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/nuwa-skill/blob/main/SKILL.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/alchaincyf/nuwa-skill/blob/main/SKILL.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenAIがChatGPT Images 2.0を発表、画像生成は「そのまま使える成果物」へ</title>
        <link>https://knightli.com/ja/2026/04/22/openai-chatgpt-images-2-0-deliverable-image-generation/</link>
        <pubDate>Wed, 22 Apr 2026 14:21:45 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/22/openai-chatgpt-images-2-0-deliverable-image-generation/</guid>
        <description>&lt;p&gt;OpenAI は 2026 年 4 月 21 日に &lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/introducing-chatgpt-images-2-0/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Introducing ChatGPT Images 2.0&lt;/a&gt; を公開しました。発表ページを見る限り、今回のアップデートが伝えたいのは単に「画像がよりきれいになった」ということではありません。より制御しやすく、レイアウトに強く、そのまま使える方向へ画像生成が進んでいる、という点です。&lt;/p&gt;
&lt;p&gt;この発表ページは、従来の技術的な発表というより、高密度な能力デモに近い構成です。モデル構造や学習の詳細、ベンチマークについてはほとんど語られていません。その代わり、多数のサンプルを通じて、ChatGPT の画像生成がこれまで人手で何度も修正していた文字、レイアウト、仕上げの工程までどこまで前倒しできるのかを示しています。&lt;/p&gt;
&lt;h2 id=&#34;01-今回の更新で最もわかりやすいシグナル&#34;&gt;01 今回の更新で最もわかりやすいシグナル
&lt;/h2&gt;&lt;p&gt;発表ページで特に目立つキーワードは、すでに今回の方向性をかなりはっきり示しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Greater precision and control&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Stronger across languages&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Stylistic sophistication and realism&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この 3 つをまとめて見ると、意図はかなり明確です。&lt;/p&gt;
&lt;p&gt;1つ目は、想像力だけでなく制御性を前面に出していることです。ページにはポスター、雑誌レイアウト、販促ページ、インフォグラフィック、キャラクター設定シート、コミックページ、印刷用しおりデザインなどが数多く並んでいます。これらに共通するのは、単に見栄えがよいだけではなく、文字処理、情報の階層、余白、構図、スタイルの統一、出力比率まで同時に扱う必要がある点です。つまり OpenAI は「1枚の画像を作る」から「実際に使えるビジュアル成果物を作る」へと製品の位置づけを進めようとしているように見えます。&lt;/p&gt;
&lt;p&gt;2つ目は、多言語テキストを大きく打ち出していることです。ページには多言語ポスター、書籍カバー、韓国語の宿泊施設プロモーション、日本語マンガ、そして typography を強調した例まであります。これは重要です。画像モデルは、長いテキスト、複雑なレイアウト、英語以外の文字になると急に不安定になることが多かったからです。そこを発表の中心に置いたこと自体が、文字レンダリングや多言語レイアウトが、いまや積極的に見せられる能力になってきたというシグナルです。&lt;/p&gt;
&lt;p&gt;3つ目は、スタイルの幅がかなり広いことです。フォトリアルな写真、レトロコラージュ、Bauhaus風ポスター、ファッションエディトリアル、モノクロのドキュメンタリー調、児童書風イラスト、マンガ、教育用インフォグラフィック、商品グリッド、キャラクター設定シートまで幅広く並んでいます。ここで伝えたいのは「多くの画風を真似できる」という話だけではありません。より多様な実務的ビジュアルタスクに適応しようとしている、ということです。&lt;/p&gt;
&lt;h2 id=&#34;02-なぜそのまま使える成果物へ向かっていると言えるのか&#34;&gt;02 なぜ「そのまま使える成果物」へ向かっていると言えるのか
&lt;/h2&gt;&lt;p&gt;この発表内容を見ると、ChatGPT Images 2.0 は単純に強化された画像生成モデルというより、ビジュアル制作ワークベンチの進化に近い印象です。&lt;/p&gt;
&lt;p&gt;これまでのモデルも見栄えのよい画像は生成できましたが、タスクが次のようなものになると体験が急に崩れやすくなっていました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;見出し、副題、説明文まで入ったポスターを作る&lt;/li&gt;
&lt;li&gt;情報量の多い雑誌ページや販促ページを作る&lt;/li&gt;
&lt;li&gt;キャラクターや物語の連続性が必要なコミックページを作る&lt;/li&gt;
&lt;li&gt;比率、レイアウト、ブランド感が決まった販促素材を作る&lt;/li&gt;
&lt;li&gt;多言語の文字を含む完成度の高いビジュアルを作る&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;今回の発表は、こうした従来の弱点に正面から応えようとしているように見えます。&lt;/p&gt;
&lt;p&gt;実際にページには、教育用インフォグラフィック、デザイントレンドのポスター、印刷仕様入りのしおり、カフェのオープン告知ポスター、観光プロモーション、グッズのモックアップ、論文ポスターの再構成例などが並んでいます。これらは「ちょっと良い画像」というより、実際の制作フローにおける半完成品、あるいは完成品に近いものです。&lt;/p&gt;
&lt;p&gt;そう考えると、今回の重要点は単に1枚絵の品質が上がったことではなく、コンテンツ制作、ブランド素材、教育用途、軽量なデザイン制作に使える生成システムへ近づいていることだと言えます。&lt;/p&gt;
&lt;h2 id=&#34;03-これは-chatgpt-の製品定位に何を意味するのか&#34;&gt;03 これは ChatGPT の製品定位に何を意味するのか
&lt;/h2&gt;&lt;p&gt;発表ページの見せ方からは、製品としての方向性の変化も読み取れます。&lt;/p&gt;
&lt;p&gt;OpenAI は ChatGPT Images 2.0 を、クリエイター向けの狭い画像モデルとして見せていません。むしろ、調査、推論、資料変換、レイアウト整理、知識伝達、マーケティング出力といった文脈で繰り返し提示しています。数学の証明、デザイントレンド、歴史ノート、学術論文の可視化まで例に含まれているのも象徴的です。&lt;/p&gt;
&lt;p&gt;つまり ChatGPT における画像生成は、単なる「会話に添える画像」や「1枚のイラスト生成」ではなく、より汎用的な表現レイヤーに近づいています。ユーザーが ChatGPT 上で調べ、考え、整理し、文章化したあと、その最終的なビジュアル出力まで一気通貫で扱うことを目指しているように見えます。&lt;/p&gt;
&lt;p&gt;この方向が続くなら、画像生成の競争軸は、単純な審美性や写実性だけではなく、次のような点にますます依存するはずです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;複雑な文字をどこまで安定して扱えるか&lt;/li&gt;
&lt;li&gt;ページやコマをまたいだ一貫性を維持できるか&lt;/li&gt;
&lt;li&gt;実務で使う素材に近いレイアウトを作れるか&lt;/li&gt;
&lt;li&gt;調査、執筆、マーケティング、教育といった流れに自然につながるか&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;04-この発表ページで語られていないこと&#34;&gt;04 この発表ページで語られていないこと
&lt;/h2&gt;&lt;p&gt;もちろん、このページの書き方には限界もあります。&lt;/p&gt;
&lt;p&gt;2026 年 4 月 21 日時点の公式ページは、方法よりも結果を見せることに重心があります。具体的には、次のような点は詳しく書かれていません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;前世代比での定量的な改善幅&lt;/li&gt;
&lt;li&gt;文字精度や多言語レンダリングの明確な指標&lt;/li&gt;
&lt;li&gt;複雑なレイアウト生成における失敗境界&lt;/li&gt;
&lt;li&gt;API、価格、利用方法、エンタープライズ向け統合の詳細&lt;/li&gt;
&lt;li&gt;安全ポリシーや生成制限の具体的な更新内容&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、このページは完全な技術仕様というより、製品シグナルとして読むほうが適切です。&lt;/p&gt;
&lt;h2 id=&#34;05-まとめ&#34;&gt;05 まとめ
&lt;/h2&gt;&lt;p&gt;ChatGPT Images 2.0 を一言でまとめるなら、今回の進化は「より上手に描けるようになった」ことより、「より完成品に近いものを作れるようになった」ことにあります。&lt;/p&gt;
&lt;p&gt;OpenAI は画像生成を、発想支援のツールから、実行可能で、レイアウトに強く、伝達力があり、納品に近い制作ツールへ押し進めようとしているように見えます。文字制御、多言語、レイアウト、スタイルの広さ、長いページの構成といった、これまで弱点が出やすかった部分が、今回はむしろ強みとして提示されています。&lt;/p&gt;
&lt;p&gt;もちろん、これでデザイン作業のすべての問題が解決したわけではありません。それでも今回の発表からは、競争の重心が変わりつつあることが見て取れます。これからの差は、最も派手な1枚を出せるかどうかではなく、実際に使えるビジュアルをどれだけ安定して出せるかで決まるのかもしれません。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/introducing-chatgpt-images-2-0/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Introducing ChatGPT Images 2.0 - OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Karpathy の 65 行の CLAUDE.md：AI コーディングで三つの典型的なミスを減らす</title>
        <link>https://knightli.com/ja/2026/04/19/karpathy-claude-md-ai-coding-rules/</link>
        <pubDate>Sun, 19 Apr 2026 18:27:23 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/19/karpathy-claude-md-ai-coding-rules/</guid>
        <description>&lt;p&gt;最近、AI コーディングに関する GitHub プロジェクトが注目を集めている。中心にあるのは複雑なコードではなく、およそ 65 行の &lt;code&gt;CLAUDE.md&lt;/code&gt; ファイルだ。このプロジェクトが多くの star を集めた理由は、技術実装の複雑さではない。AI にコードを書かせるとき、多くの人が繰り返し遭遇する問題をうまく捉えているからだ。&lt;/p&gt;
&lt;p&gt;背景には、Andrej Karpathy による AI コーディングへの観察がある。Karpathy は AI 分野で大きな影響力を持つ教育者でありエンジニアだ。スタンフォード大学の博士で、OpenAI の初期にも関わり、Tesla では Autopilot の視覚システムを担当した。その後も大規模モデル、教育、AI ツールについて発信を続けているため、彼がプログラミング手法の変化について語ると、多くの開発者が注目する。&lt;/p&gt;
&lt;p&gt;彼は、Claude Code を数週間使ったあと、自分のプログラミングスタイルが大きく変わったと述べている。以前はおよそ 80% を手書きし、20% を AI に補助させていた。今は 80% を AI に書かせ、自分は 20% を修正する感覚に近いという。自然言語で LLM に何を書くべきか伝えるので、「英語でプログラミングしている」ようなものだと表現している。&lt;/p&gt;
&lt;p&gt;一方で、彼は AI コーディングにありがちな問題も指摘している。&lt;/p&gt;
&lt;h2 id=&#34;01-誤った仮定&#34;&gt;01 誤った仮定
&lt;/h2&gt;&lt;p&gt;一つ目の問題は、モデルがユーザーの代わりに勝手な仮定を置き、その仮定に沿って書き進めてしまうことだ。モデルは必ずしも自分の混乱を管理しないし、要件が曖昧なときに立ち止まって質問するとも限らない。&lt;/p&gt;
&lt;p&gt;たとえばユーザーが「ユーザーのエクスポート機能を追加して」とだけ言った場合、モデルは全ユーザーを出力する、JSON 形式にする、ローカルファイルに書き出す、権限や項目は確認不要だ、と勝手に決めるかもしれない。コードが完成してから、ユーザーはモデルの理解が実際のシナリオとずれていたことに気づく。&lt;/p&gt;
&lt;p&gt;よりよい進め方は、不確かな点を先に列挙することだ。全ユーザーを出力するのか、フィルタ後の結果なのか。ブラウザでダウンロードするのか、バックグラウンドジョブなのか。必要な項目は何か。データ量はどれくらいか。権限制御はあるのか。こうした点を確認しないまま速く書いても、ずれが大きくなるだけだ。&lt;/p&gt;
&lt;h2 id=&#34;02-過度な複雑化&#34;&gt;02 過度な複雑化
&lt;/h2&gt;&lt;p&gt;二つ目の問題は、モデルが簡単な問題を複雑にしがちなことだ。一つの関数で済む問題に対して、抽象クラス、ストラテジーパターン、ファクトリーパターン、設定レイヤー、将来使うかもしれない拡張ポイントを山ほど追加することがある。&lt;/p&gt;
&lt;p&gt;こうしたコードは一見エンジニアリングされているように見えるが、実際には保守コストを増やす。AI は大量の構造を素早く生成するのが得意だが、その構造が本当に必要かを常に判断できるわけではない。その結果、100 行で済むタスクが 1,000 行に膨らむ。&lt;/p&gt;
&lt;p&gt;判断基準はシンプルだ。経験あるエンジニアがその変更を見て、過剰設計だと感じるかどうか。答えが yes なら、余分な層を削り、今の問題を解くために必要な最小限のコードに戻すべきだ。&lt;/p&gt;
&lt;h2 id=&#34;03-付随的な被害&#34;&gt;03 付随的な被害
&lt;/h2&gt;&lt;p&gt;三つ目の問題は、モデルが十分に理解していないコードを変更したり削除したりすることだ。小さな bug を直している途中で、ついでにコメントを変えたり、フォーマットを整えたり、未使用に見える import を消したり、現在のタスクと無関係なロジックにまで手を入れることがある。&lt;/p&gt;
&lt;p&gt;こうした「ついでの改善」は危険だ。変更範囲を広げ、レビューを難しくするからだ。ユーザーは空の email でバリデータが落ちる問題だけを直したいのに、モデルが email 検証を強化し、ユーザー名検証を追加し、ドキュメント文字列まで書き換えると、どの行が挙動を変えたのか分かりにくくなる。&lt;/p&gt;
&lt;p&gt;より安全な原則は、必要なコードだけを変更し、自分の変更によって生まれた問題だけを片付けることだ。もともと存在していた dead code、フォーマットの問題、歴史的な負債は、明示的に依頼されていない限り触らない。必要なら一言指摘するだけでよい。&lt;/p&gt;
&lt;h2 id=&#34;04-不満を-claudemd-に変える&#34;&gt;04 不満を CLAUDE.md に変える
&lt;/h2&gt;&lt;p&gt;Karpathy の見解が広く共有されたあと、開発者の Forrest Cheung は賢いことをした。これらの不満を、実行可能な行動指針として整理し、&lt;code&gt;CLAUDE.md&lt;/code&gt; ファイルに書き込んだのだ。&lt;/p&gt;
&lt;p&gt;このプロジェクトには複雑なコードはない。重要なのは、AI コーディングで問題が起きやすい部分を、明確な作業ルールに変えたことだ。大きく四つの原則にまとめられる。&lt;/p&gt;
&lt;p&gt;一つ目は、書く前に考えること。黙って仮定しない。混乱を隠さない。要件に複数の解釈があるなら列挙する。より簡単な案があるなら伝える。確認が必要なら質問し、反論すべきときは反論する。&lt;/p&gt;
&lt;p&gt;二つ目は、シンプルさを優先すること。求められていない機能を追加しない。一度しか使わないコードを抽象化しない。余計な設定を増やさない。ほぼ起きないケースのために大量の防御コードを書かない。50 行で済むなら 200 行にしない。&lt;/p&gt;
&lt;p&gt;三つ目は、正確に変更すること。すべての変更行は、ユーザーの依頼に直接結びついているべきだ。近くのコードをついでに改善しない。壊れていないものをリファクタリングしない。できるだけ既存プロジェクトのスタイルに合わせる。&lt;/p&gt;
&lt;p&gt;四つ目は、目標駆動で進めること。モデルに曖昧な指示だけを渡すのではなく、検証可能な成功基準を与える。たとえば「bug を直す」は「bug を再現するテストを書き、それを通す」にできる。「バリデーションを追加する」は「不正入力のテストを書き、それを通す」にできる。成功基準が明確なほど、モデルは完了に向けて自分でループしやすくなる。&lt;/p&gt;
&lt;h2 id=&#34;05-なぜ広まったのか&#34;&gt;05 なぜ広まったのか
&lt;/h2&gt;&lt;p&gt;このプロジェクトが広まったのは、内容が難解だからではない。実際の開発に近いからだ。&lt;/p&gt;
&lt;p&gt;AI にコードを書かせたことがある人の多くは、似た場面を経験している。モデルが自信満々に要件を誤解する。コードがどんどん複雑になる。触るべきでない場所を変更する。&lt;code&gt;CLAUDE.md&lt;/code&gt; の価値は、こうした経験をプロジェクトに置ける協作ルールに変えたことにある。&lt;/p&gt;
&lt;p&gt;導入の敷居も低い。複雑な連携は不要で、一つのファイルから始められる。Karpathy 本人の影響力に加え、プロジェクト内に実践的な比較例があるため、Claude Code ユーザーや AI コーディングコミュニティの間で自然に広まった。&lt;/p&gt;
&lt;p&gt;さらに重要なのは、この種のルールが Claude Code だけに限られないことだ。どの AI コーディングツールを使っても、本質的な問題は似ている。モデルは、いつ質問すべきか、いつ単純化すべきか、いつ手を止めるべきか、どうやってタスク完了を判断するかを知る必要がある。&lt;/p&gt;
&lt;h2 id=&#34;06-普通の開発者への示唆&#34;&gt;06 普通の開発者への示唆
&lt;/h2&gt;&lt;p&gt;普通の開発者にとっての示唆はシンプルだ。AI コーディングは、一文の要件をモデルに投げて奇跡を待つものではない。本当に有効なのは、モデルに境界を与えることだ。&lt;/p&gt;
&lt;p&gt;要件が不明確なときは、まず仮定を表に出させる。実装が複雑になり始めたら、最小の実用解に戻らせる。コードを変更するときは、タスクの目的だけに集中させる。完了時には、テスト、コマンド、明確なチェックポイントで結果を検証する。&lt;/p&gt;
&lt;p&gt;AI がコードを書く能力はすでに高い。それでも、よい協作上の制約は必要だ。短い &lt;code&gt;CLAUDE.md&lt;/code&gt; がこれほど注目されたことは、開発者が求めているのはより賢いモデルだけではなく、より信頼できる作業方法でもあることを示している。&lt;/p&gt;
&lt;p&gt;簡単にまとめると：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;書く前に考え、誤った仮定を減らす。&lt;/li&gt;
&lt;li&gt;シンプルさを優先し、過度な設計を避ける。&lt;/li&gt;
&lt;li&gt;正確に変更し、変更範囲を制御する。&lt;/li&gt;
&lt;li&gt;検証可能な成功基準で、目標に向かって進める。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この四つは複雑ではないが、実用的だ。AI コーディングが本当に効率を上げる前提は、モデルにより多く書かせることではない。より正確に、より少なく、より制御された形で書かせることだ。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude Codeの使用枠を節約する：モデル選択、コンテキスト、キャッシュ、/compact</title>
        <link>https://knightli.com/ja/2026/04/19/claude-code-usage-context-compact-notes/</link>
        <pubDate>Sun, 19 Apr 2026 15:29:06 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/19/claude-code-usage-context-compact-notes/</guid>
        <description>&lt;p&gt;最近、Claude Code や Claude Max を使っていて同じ問題に当たる人が増えています。Pro、Max 5x、Max 20x を契約しているのに、少し使っただけで使用量の警告が出る、あるいは次のリセットを待つ必要がある、というものです。特に大きなプロジェクトで Claude Code に大量のファイルを読ませたり、複雑な bug を修正させたり、長いタスクを走らせたりすると、この感覚はかなり強くなります。&lt;/p&gt;
&lt;p&gt;先に結論を書くと、使用枠は「時間」で線形に減るわけではありません。モデル、コンテキスト長、添付ファイル、コードベースの大きさ、会話履歴、ツール呼び出し、現在の容量によって変わります。同じ5時間ウィンドウでも、長く使える人もいれば、十数分で上限に近づく人もいます。多くの場合、アカウントがおかしいのではなく、1回ごとのリクエストが重すぎます。&lt;/p&gt;
&lt;p&gt;この記事では、使用枠を節約するための実用的な習慣を整理します。&lt;/p&gt;
&lt;h2 id=&#34;01-まず-claude-の使用ウィンドウを理解する&#34;&gt;01 まず Claude の使用ウィンドウを理解する
&lt;/h2&gt;&lt;p&gt;Claude Pro と Max には使用制限があります。Claude Code の使用量は、Claude のWeb、デスクトップ、モバイルアプリと同じサブスクリプション枠を共有します。公式ヘルプでは、送信できるメッセージ数はメッセージの長さ、添付ファイルの大きさ、現在の会話の長さ、使うモデルや機能に左右されると説明されています。Claude Code ではさらに、プロジェクトの複雑さ、コードベースの大きさ、自動承認設定なども影響します。&lt;/p&gt;
&lt;p&gt;大まかにはこう考えるとよいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pro：軽い利用と小さなプロジェクト向け。&lt;/li&gt;
&lt;li&gt;Max 5x：より頻繁な利用と大きめのコードベース向け。&lt;/li&gt;
&lt;li&gt;Max 20x：重めの日常利用や高頻度の共同作業向け。&lt;/li&gt;
&lt;li&gt;使用ウィンドウは5時間セッション単位でリセットされる。&lt;/li&gt;
&lt;li&gt;長いメッセージ、長い会話、大きなファイル、複雑なタスクは使用量を早く消費する。&lt;/li&gt;
&lt;li&gt;Opus のような強いモデルは Sonnet より早く制限に近づきやすい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、「20分しか使っていない」という説明だけでは状況は分かりません。重要なのは、その20分で Claude がどれだけのコンテキストを読んだか、どのモデルを使ったか、大きなファイルを何度も処理したか、同じ長い会話にタスクを追加し続けたかです。&lt;/p&gt;
&lt;h2 id=&#34;02-まずやること最も高いモデルをデフォルトにしない&#34;&gt;02 まずやること：最も高いモデルをデフォルトにしない
&lt;/h2&gt;&lt;p&gt;Claude 系列は、おおよそ次のように使い分けられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Opus&lt;/code&gt;：最も強力。複雑な推論、設計判断、難しい bug に向く。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Sonnet&lt;/code&gt;：能力とコストのバランスがよく、日常的なコーディング作業に向く。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Haiku&lt;/code&gt;：軽量。簡単な分類、要約、形式変換などに向く。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;日常的なスクリプト作成、小さな bug 修正、ドキュメント整理、コード説明なら、多くの場合 Sonnet で十分です。Opus は次のような場面に残しておくほうがよいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;複雑なアーキテクチャ設計。&lt;/li&gt;
&lt;li&gt;複数ファイルにまたがる深いリファクタリング。&lt;/li&gt;
&lt;li&gt;再現しにくい bug。&lt;/li&gt;
&lt;li&gt;長い推論が必要なトラブルシュート。&lt;/li&gt;
&lt;li&gt;通常モデルが明らかに詰まったタスク。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Claude Code では &lt;code&gt;/model&lt;/code&gt; でモデルを切り替えられますし、&lt;code&gt;/config&lt;/code&gt; でデフォルトも設定できます。安定した使い方は、普段は Sonnet、重要な局面だけ Opus に切り替えることです。最初から最後まで Opus で押し切る必要はありません。&lt;/p&gt;
&lt;h2 id=&#34;03-次にやることコンテキストを制御し古いタスクを引きずらない&#34;&gt;03 次にやること：コンテキストを制御し、古いタスクを引きずらない
&lt;/h2&gt;&lt;p&gt;コンテキストが長くなるほど、Claude が毎回処理する内容が増え、使用量も増えます。Claude Code の公式ドキュメントでも、コンテキストを能動的に管理することが推奨されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;無関係なタスクに切り替えるときは &lt;code&gt;/clear&lt;/code&gt; で履歴を消す。&lt;/li&gt;
&lt;li&gt;現在のタスクが一段落したが重要な文脈は残したいときは &lt;code&gt;/compact&lt;/code&gt; で圧縮する。&lt;/li&gt;
&lt;li&gt;何がコンテキストを使っているか知りたいときは &lt;code&gt;/context&lt;/code&gt; を使う。&lt;/li&gt;
&lt;li&gt;状態を常に見たい場合は status line を設定する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;使いやすいリズムは次の通りです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;小さな段階が終わった：/compact
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;大きなタスクが終わった：/clear
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;無関係な作業に切り替える：/clear
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;コンテキスト使用量が高くなってきた：早めに /compact
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;/compact&lt;/code&gt; は前の会話を要約し、重要なタスク状態、結論、ファイルパス、TODO を残しつつ、後続リクエストに持ち込む履歴を減らします。後ろに重点を書いてもよいです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/compact 変更済みファイル、テスト結果、残りTODO、重要な設計判断を残す
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;自動圧縮を待つ必要はありません。公式ドキュメントでは、Claude Code はコンテキストが上限に近づくと自動圧縮すると説明されていますが、段階の区切りで手動圧縮するほうが制御しやすいです。&lt;/p&gt;
&lt;h2 id=&#34;04-三つ目長い会話と大きなファイルは毎回のリクエストを重くする&#34;&gt;04 三つ目：長い会話と大きなファイルは毎回のリクエストを重くする
&lt;/h2&gt;&lt;p&gt;「もう一言聞いただけだから安いはず」と思いがちです。しかし長い会話では、その一言の背後に大量の履歴、ファイル要約、ツール定義、システムルールが付いてくることがあります。&lt;/p&gt;
&lt;p&gt;特にコンテキストを増やしやすいものは次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ずっと消していない長い会話。&lt;/li&gt;
&lt;li&gt;Claude に大きなファイル全体を読ませること。&lt;/li&gt;
&lt;li&gt;長いログ、ビルド出力、テスト出力を貼ること。&lt;/li&gt;
&lt;li&gt;スクリーンショットや画像を一度に大量に入れること。&lt;/li&gt;
&lt;li&gt;リポジトリ全体を何度もスキャンさせること。&lt;/li&gt;
&lt;li&gt;長すぎる &lt;code&gt;CLAUDE.md&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;多すぎる MCP server。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;節約するなら、ログは重要なエラーだけ、テスト出力は失敗部分だけにします。大きなファイルは、まず &lt;code&gt;rg&lt;/code&gt;、&lt;code&gt;head&lt;/code&gt;、&lt;code&gt;tail&lt;/code&gt;、シンボル検索で位置を絞り、必要な部分だけ読ませます。コマンドラインで絞れる内容を、丸ごとコンテキストに入れないほうがよいです。&lt;/p&gt;
&lt;h2 id=&#34;05-四つ目キャッシュを理解するただし過信しない&#34;&gt;05 四つ目：キャッシュを理解する。ただし過信しない
&lt;/h2&gt;&lt;p&gt;Anthropic の Prompt Caching は、繰り返される prompt の前方部分をキャッシュします。デフォルトのキャッシュ寿命は5分で、1時間キャッシュもサポートされています。キャッシュがヒットすると、繰り返し使う大きなコンテキストを毎回完全に再処理せずに済むため、コスト削減や使用枠の効率改善につながります。&lt;/p&gt;
&lt;p&gt;ただしキャッシュには制限があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;テキストや画像を含め、内容が完全一致する必要がある。&lt;/li&gt;
&lt;li&gt;デフォルトのキャッシュは短命。&lt;/li&gt;
&lt;li&gt;モデル、ツール、システムプロンプト、コンテキスト構造を変えるとヒット率が下がることがある。&lt;/li&gt;
&lt;li&gt;出力 token はキャッシュで消えるわけではなく、回答生成分は必要。&lt;/li&gt;
&lt;li&gt;Claude Code が具体的にどうキャッシュを使うかは製品実装の詳細なので、永続的な「無料メモリ」と考えないほうがよい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;実際の利用で大事なのは、キャッシュの細部を研究することではなく、セッションを安定させることです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;同じ段階ではモデルを頻繁に切り替えない。&lt;/li&gt;
&lt;li&gt;作業中に大量のルールを何度も書き換えない。&lt;/li&gt;
&lt;li&gt;同じタスクの途中で新しい画像を次々追加しない。&lt;/li&gt;
&lt;li&gt;長いタスクを長時間放置したあと、いきなり大きなリクエストを投げない。&lt;/li&gt;
&lt;li&gt;段階が終わったら &lt;code&gt;/compact&lt;/code&gt; する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうすると、繰り返しのコンテキストを再利用しやすくなり、後続リクエストも軽くなります。&lt;/p&gt;
&lt;h2 id=&#34;06-ピーク時間について避けられるなら避けるただし固定公式にしない&#34;&gt;06 ピーク時間について：避けられるなら避ける。ただし固定公式にしない
&lt;/h2&gt;&lt;p&gt;ネット上では、特定の時間帯は使用枠が厳しいという話をよく見かけます。公式ヘルプの表現はもっと慎重で、送信可能数は Claude の現在の容量、会話の長さ、添付ファイル、モデル、機能に影響されるとされています。つまり、ピーク時の容量は体験に影響する可能性がありますが、特定地域の特定時間を永続的な固定ルールとして扱うべきではありません。&lt;/p&gt;
&lt;p&gt;実用的には次のように考えます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;大きなリファクタリングや重い分析は、自分のネットワークとサービスが安定している時間に行う。&lt;/li&gt;
&lt;li&gt;すぐ離席する直前に超長タスクを始めない。&lt;/li&gt;
&lt;li&gt;長時間離れる予定があるなら、先に &lt;code&gt;/compact&lt;/code&gt; または &lt;code&gt;/clear&lt;/code&gt; する。&lt;/li&gt;
&lt;li&gt;小さな修正なら、長いコンテキストのまま Opus で強引に走らせない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;固定の「何時から何時は使わない」というルールを覚えるより、このほうが安定します。&lt;/p&gt;
&lt;h2 id=&#34;07-claudemdrulesmcpskills-を軽くする&#34;&gt;07 CLAUDE.md、rules、MCP、skills を軽くする
&lt;/h2&gt;&lt;p&gt;Claude Code はセッション内でプロジェクトルール、ツール情報、一部の環境コンテキストを読み込みます。公式ドキュメントでも、汎用ルールと専用ルールを分け、毎回大量の無関係な内容を読み込まないようにすることが推奨されています。&lt;/p&gt;
&lt;p&gt;おすすめの分け方は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;：全体に常に適用される最小限のルールだけ。&lt;/li&gt;
&lt;li&gt;rules：特定パスや特定ファイルタイプに必要なルール。&lt;/li&gt;
&lt;li&gt;skills：投稿、デプロイ、画像生成、コードコミットなどの特定ワークフロー。&lt;/li&gt;
&lt;li&gt;MCP：現在のタスクで本当に使う server だけ有効にする。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; が何百行、何千行もあると、毎回その分を持ち込みます。たまにしか使わない手順は skill に移し、必要なときだけ呼び出すほうが軽くなります。&lt;/p&gt;
&lt;p&gt;MCP も同じです。ツールが多いほど効率が上がるとは限りません。Claude Code のドキュメントでは、&lt;code&gt;/mcp&lt;/code&gt; で不要な server を確認して無効化し、&lt;code&gt;/context&lt;/code&gt; で何がコンテキストを使っているか確認できると説明されています。&lt;/p&gt;
&lt;h2 id=&#34;08-実用コマンド一覧&#34;&gt;08 実用コマンド一覧
&lt;/h2&gt;&lt;p&gt;日常的によく使うのは次のコマンドです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/model
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;モデルを切り替える。通常は Sonnet、複雑な推論では Opus。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;現在のコンテキストをクリアする。無関係なタスクに切り替えるときに使う。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/compact
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;会話履歴を圧縮する。段階が終わったが同じタスクを続けるときに使う。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/context
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;コンテキスト使用量を確認し、何が場所を取っているか調べる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;現在のサブスクリプションや使用量関連の状態を見る。公式ヘルプでも残り割り当ての確認に推奨されています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;MCP server を確認、管理し、現在使わないツールを無効化する。&lt;/p&gt;
&lt;p&gt;API 課金で使っている場合は &lt;code&gt;/cost&lt;/code&gt; も参考になります。ただし Pro/Max サブスクリプションでは、公式ドキュメントが &lt;code&gt;/cost&lt;/code&gt; のドル見積もりは請求の基準ではないと説明しています。サブスクリプション利用者は &lt;code&gt;/stats&lt;/code&gt; や &lt;code&gt;/status&lt;/code&gt; の利用情報を見るほうが適しています。&lt;/p&gt;
&lt;h2 id=&#34;09-使用枠を節約する作業フロー&#34;&gt;09 使用枠を節約する作業フロー
&lt;/h2&gt;&lt;p&gt;使いやすい流れは次のようになります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;新しいタスクの前に &lt;code&gt;/clear&lt;/code&gt; する。&lt;/li&gt;
&lt;li&gt;デフォルトは Sonnet にする。&lt;/li&gt;
&lt;li&gt;Claude にはまずプロジェクト構造と重要ファイルだけを読ませ、リポジトリ全体を一気に読ませない。&lt;/li&gt;
&lt;li&gt;小さな段階が終わるたびに &lt;code&gt;/compact&lt;/code&gt; する。&lt;/li&gt;
&lt;li&gt;難しい詰まりどころだけ Opus に切り替える。&lt;/li&gt;
&lt;li&gt;ログ、エラー、テスト出力は絞ってから渡す。&lt;/li&gt;
&lt;li&gt;タスク完了後は &lt;code&gt;/clear&lt;/code&gt; し、古いコンテキストを引きずって新しい作業を始めない。&lt;/li&gt;
&lt;li&gt;定期的に &lt;code&gt;CLAUDE.md&lt;/code&gt;、MCP、skills を見直し、常駐コンテキストを小さくする。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;この流れの核心は、Claude に毎回「今本当に必要なもの」だけを見せることです。&lt;/p&gt;
&lt;h2 id=&#34;10-まとめ&#34;&gt;10 まとめ
&lt;/h2&gt;&lt;p&gt;Claude Code の使用枠がすぐ尽きる原因は、たいてい1つではありません。高コストなモデル、消していない長い会話、多すぎるファイルやログ、重い MCP とルール、キャッシュ命中率の低下、ピーク時の容量変動が重なって起こります。&lt;/p&gt;
&lt;p&gt;節約の要点はシンプルです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;日常作業は Sonnet を優先する。&lt;/li&gt;
&lt;li&gt;Opus は本当に複雑な問題に残す。&lt;/li&gt;
&lt;li&gt;段階が終わったら &lt;code&gt;/compact&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;タスクを切り替えるときは &lt;code&gt;/clear&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/context&lt;/code&gt; でコンテキスト肥大化の原因を探す。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;、rules、MCP、skills を軽くする。&lt;/li&gt;
&lt;li&gt;リポジトリ全体、ログ全体、大量の画像をそのまま入れない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;同じ Pro や Max でも、どれだけ作業できるかはコンテキスト管理に大きく左右されます。コンテキストを小さくし、タスクの境界をはっきりさせると、Claude Code はかなり安定して使いやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;参考リンク&#34;&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Claude Help Center：Using Claude Code with your Pro or Max plan：&lt;a class=&#34;link&#34; href=&#34;https://support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Claude Help Center：About Claude&amp;rsquo;s Max Plan Usage：&lt;a class=&#34;link&#34; href=&#34;https://support.anthropic.com/en/articles/11014257-about-claude-s-max-plan-usage/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://support.anthropic.com/en/articles/11014257-about-claude-s-max-plan-usage/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Claude Code Docs：Manage costs effectively：&lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/costs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://code.claude.com/docs/en/costs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Anthropic Docs：Prompt caching：&lt;a class=&#34;link&#34; href=&#34;https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>rembgプロジェクト整理：ローカル画像背景除去ツール</title>
        <link>https://knightli.com/ja/2026/04/19/rembg-background-removal-notes/</link>
        <pubDate>Sun, 19 Apr 2026 08:56:01 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/19/rembg-background-removal-notes/</guid>
        <description>&lt;p&gt;&lt;code&gt;rembg&lt;/code&gt; は画像の背景を除去するツールです。コマンドラインツール、Python ライブラリ、HTTP サーバー、Docker コンテナとして使えます。役割はとても明確で、画像を入力すると、透明チャンネル付きの前景画像を出力します。商品画像、プロフィール画像、素材の一括処理、自動画像処理フローに向いています。&lt;/p&gt;
&lt;p&gt;この種のツールの大きな利点は、ローカルで動かせることです。元画像をオンラインの背景除去サービスへアップロードしたくない場合、大量の画像を処理したい場合、背景除去をスクリプトや業務システムに組み込みたい場合、&lt;code&gt;rembg&lt;/code&gt; はWebツールより自動化しやすい選択肢です。&lt;/p&gt;
&lt;h2 id=&#34;01-インストール方法&#34;&gt;01 インストール方法
&lt;/h2&gt;&lt;p&gt;現在のバージョンは Python &lt;code&gt;&amp;gt;=3.11,&amp;lt;3.14&lt;/code&gt; を要求します。インストール時はハードウェアに合わせてバックエンドを選びます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;rembg[cpu]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;CLI も必要な場合は &lt;code&gt;cli&lt;/code&gt; を追加します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;rembg[cpu,cli]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;NVIDIA CUDA 環境では GPU 版をインストールできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;rembg[gpu,cli]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;AMD ROCm 環境では、先に ROCm 公式手順に従って &lt;code&gt;onnxruntime-rocm&lt;/code&gt; を入れ、その後でインストールします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;rembg[rocm,cli]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;GPU 版のつまずきどころは、多くの場合 &lt;code&gt;rembg&lt;/code&gt; 本体ではなく、&lt;code&gt;onnxruntime-gpu&lt;/code&gt;、CUDA、cuDNN、ドライバーのバージョンが合っているかです。うまく入らないときは、まず CPU 版で処理フローが動くことを確認してから GPU 環境を調整すると、無駄な遠回りを減らせます。&lt;/p&gt;
&lt;h2 id=&#34;02-cli-サブコマンド&#34;&gt;02 CLI サブコマンド
&lt;/h2&gt;&lt;p&gt;CLI をインストールすると、ターミナルで &lt;code&gt;rembg&lt;/code&gt; を直接使えます。主なサブコマンドは 4 つです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;i&lt;/code&gt;：単一ファイルを処理する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;p&lt;/code&gt;：フォルダー全体を処理する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;s&lt;/code&gt;：HTTP サーバーを起動する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;b&lt;/code&gt;：RGB24 ピクセルのバイナリストリームを処理する。FFmpeg と組み合わせる場面でよく使います。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ヘルプを確認します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg --help
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg i --help
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ローカル画像を1枚処理します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg i input.png output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;リモート画像をパイプで入力します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -s http://input.png &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; rembg i &amp;gt; output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;モデルを指定します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg i -m u2netp input.png output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;mask だけを出力します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg i -om input.png mask.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;alpha matting を有効にします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg i -a input.png output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;-a&lt;/code&gt; は髪の毛、細い輪郭、半透明の境界を自然にできる場合があります。ただし処理は遅くなり、すべての画像で明確に改善するわけではありません。&lt;/p&gt;
&lt;h2 id=&#34;03-フォルダーの一括処理&#34;&gt;03 フォルダーの一括処理
&lt;/h2&gt;&lt;p&gt;一括処理は &lt;code&gt;rembg&lt;/code&gt; の実用的な機能です。元画像を1つのディレクトリに入れ、結果を別のディレクトリへ出力できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg p path/to/input path/to/output
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ディレクトリの変更を監視し、新規または更新された画像を自動処理します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg p -w path/to/input path/to/output
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このモードは、ダウンロードスクリプト、商品画像整理、素材フォルダーと組み合わせやすいです。たとえば処理待ち画像を &lt;code&gt;input&lt;/code&gt; に入れると、&lt;code&gt;rembg&lt;/code&gt; が透明 PNG を &lt;code&gt;output&lt;/code&gt; に自動生成します。&lt;/p&gt;
&lt;h2 id=&#34;04-python-ライブラリとして使う&#34;&gt;04 Python ライブラリとして使う
&lt;/h2&gt;&lt;p&gt;自分のスクリプトに組み込むなら、もっとも簡単なのは &lt;code&gt;remove&lt;/code&gt; を使う方法です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;rembg&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;remove&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;input.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;rb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;output.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;wb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;o&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;input_data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;output_data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;remove&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;input_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;o&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;write&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;output_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;PIL 画像を直接処理することもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;rembg&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;remove&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;PIL&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;input_image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;input.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;output_image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;remove&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;input_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;output_image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;output.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;一括処理では session を再利用し、画像ごとにモデルを初期化し直さないようにするのがおすすめです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pathlib&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;rembg&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;remove&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;new_session&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;session&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;new_session&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;input&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;glob&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;*.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;output&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parent&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stem&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;.out.png&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;rb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;output&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;wb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;o&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;o&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;write&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;remove&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;session&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;session&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;長時間動く画像処理サービスを作るなら、CLI を毎回呼ぶより session を再利用するほうが向いています。&lt;/p&gt;
&lt;h2 id=&#34;05-http-サーバーを起動する&#34;&gt;05 HTTP サーバーを起動する
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;rembg&lt;/code&gt; は HTTP サーバーとして直接起動することもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg s --host 0.0.0.0 --port &lt;span class=&#34;m&#34;&gt;7000&lt;/span&gt; --log_level info
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;起動後は次の URL にアクセスできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:7000/api
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;URL から背景を除去します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -s &lt;span class=&#34;s2&#34;&gt;&amp;#34;http://localhost:7000/api/remove?url=http://input.png&amp;#34;&lt;/span&gt; -o output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ローカル画像をアップロードします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -s -F &lt;span class=&#34;nv&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;@input.jpg &lt;span class=&#34;s2&#34;&gt;&amp;#34;http://localhost:7000/api/remove&amp;#34;&lt;/span&gt; -o output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;API だけが必要で Gradio UI が不要なら、UI を無効にしてアイドル時の CPU 使用率を下げられます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg s --no-ui
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;サーバーモードは、社内ツール、自動化フロー、ほかのアプリケーションから呼び出す用途に向いています。ただし完全な画像アセット管理システムではありません。認証、レート制限、キュー、ファイル削除などは外側で補う必要があります。&lt;/p&gt;
&lt;h2 id=&#34;06-docker-実行&#34;&gt;06 Docker 実行
&lt;/h2&gt;&lt;p&gt;CPU 版は公式イメージをそのまま使えます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -v .:/data danielgatis/rembg i /data/input.png /data/output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;CUDA 加速にはホスト側の NVIDIA Container Toolkit が必要で、多くの場合、プロジェクト内の &lt;code&gt;Dockerfile_nvidia_cuda_cudnn_gpu&lt;/code&gt; から自分でイメージをビルドします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker build -t rembg-nvidia-cuda-cudnn-gpu -f Dockerfile_nvidia_cuda_cudnn_gpu .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;実行例です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run --rm -it --gpus all &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v /dev/dri:/dev/dri &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v &lt;span class=&#34;nv&#34;&gt;$PWD&lt;/span&gt;:/data &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  rembg-nvidia-cuda-cudnn-gpu &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  i -m birefnet-general /data/input.png /data/output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;公式 README では、GPU イメージは CPU イメージよりかなり大きく、モデルファイルはイメージに含まれないと説明されています。モデルの再ダウンロードを避けるには、モデルディレクトリをマウントします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -v /path/to/models:/root/.u2net ...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;07-モデル選択&#34;&gt;07 モデル選択
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;rembg&lt;/code&gt; は初回使用時にモデルを &lt;code&gt;~/.u2net/&lt;/code&gt; へ自動ダウンロードします。よく使われるモデルは次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;u2net&lt;/code&gt;：一般用途向けの汎用モデル。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;u2netp&lt;/code&gt;：軽量版で、速度とサイズの面で扱いやすい。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;u2net_human_seg&lt;/code&gt;：人物分割寄り。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;u2net_cloth_seg&lt;/code&gt;：衣服解析寄り。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;silueta&lt;/code&gt;：&lt;code&gt;u2net&lt;/code&gt; に近いが、より小さい。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isnet-general-use&lt;/code&gt;：汎用用途向けの新しいモデル。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isnet-anime&lt;/code&gt;：アニメキャラクター分割寄り。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;birefnet-general&lt;/code&gt;：README の例で汎用画像に使われているモデル。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sam&lt;/code&gt;：プロンプト点などの追加パラメータと組み合わせて使える。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;実際の利用では、モデル名だけで決めないほうがよいです。商品画像、人物、二次元画像、複雑な背景、透明物体では求める挙動が違います。代表的な画像を何枚か選び、複数モデルで試し、輪郭、抜け、誤除去、速度を見てからデフォルトモデルを決めるのが安定します。&lt;/p&gt;
&lt;p&gt;カスタム &lt;code&gt;.onnx&lt;/code&gt; モデルを使う場合は、ファイルをデフォルトのモデルディレクトリ &lt;code&gt;~/.u2net/&lt;/code&gt; に置き、必要に応じて次を設定します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;MODEL_CHECKSUM_DISABLED&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これにより、チェックサム処理で &lt;code&gt;rembg&lt;/code&gt; が置いたモデルファイルを上書きするのを避けられます。&lt;/p&gt;
&lt;h2 id=&#34;08-向いている場面&#34;&gt;08 向いている場面
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;rembg&lt;/code&gt; は次のようなタスクに向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;透明背景の商品画像を一括生成する。&lt;/li&gt;
&lt;li&gt;プロフィール画像、証明写真、素材画像から前景を抽出する。&lt;/li&gt;
&lt;li&gt;背景除去を Python スクリプトやバックエンドサービスに組み込む。&lt;/li&gt;
&lt;li&gt;社内ネットワークに簡単な背景除去 API を置く。&lt;/li&gt;
&lt;li&gt;FFmpeg パイプで動画フレームや連番画像を処理する。&lt;/li&gt;
&lt;li&gt;プライバシーや素材の権利に敏感で、第三者のオンラインサービスへアップロードしたくない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;あまり向いていないのは次のような場合です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;人手レベルのエッジ修正や複雑な透明素材が必要。&lt;/li&gt;
&lt;li&gt;すべての画像に安定した商業写真レベルの品質が必要。&lt;/li&gt;
&lt;li&gt;背景除去だけでなく、完全なオンラインデザインツールが欲しい。&lt;/li&gt;
&lt;li&gt;Python / Docker 環境を保守したくない。&lt;/li&gt;
&lt;li&gt;GPU ドライバー、CUDA、ROCm 環境がすでに混乱していて、すぐ本番投入したい。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;09-使い方のおすすめ&#34;&gt;09 使い方のおすすめ
&lt;/h2&gt;&lt;p&gt;たまに画像を処理するだけなら、CPU 版で十分です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;rembg[cpu,cli]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;数千枚を一括処理するなら、次を優先して考えるとよいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python session を再利用する。&lt;/li&gt;
&lt;li&gt;モデルディレクトリを固定し、再ダウンロードを避ける。&lt;/li&gt;
&lt;li&gt;入力、出力、モデルファイルは SSD に置く。&lt;/li&gt;
&lt;li&gt;まず小さなバッチでモデル効果を試す。&lt;/li&gt;
&lt;li&gt;その後で GPU 加速を導入するか決める。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GPU の価値は主に一括処理のスループットです。たまに1枚処理する程度なら、環境構築コストのほうが節約できる時間より高くつくことがあります。特に Windows で CUDA、cuDNN、&lt;code&gt;onnxruntime-gpu&lt;/code&gt; のバージョンが合わない場合は、CPU 版のほうが現実的です。&lt;/p&gt;
&lt;h2 id=&#34;10-短い判断&#34;&gt;10 短い判断
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;rembg&lt;/code&gt; のよいところは、シンプルで、オープンソースで、使い方の形が柔軟なことです。CLI で動き、Python から呼べて、HTTP でも使え、Docker でまとめることもできます。ローカル自動背景除去の基礎コンポーネントとして扱いやすいツールです。&lt;/p&gt;
&lt;p&gt;ただし魔法の消しゴムではありません。複雑な背景、細かい被写体の輪郭、透明素材、影の保持、商業レベルのレタッチでは、人手や専用ワークフローが必要になることがあります。一括自動化に入れるなら、人による確認や失敗サンプルの回収手順を残しておくほうが安全です。&lt;/p&gt;
&lt;p&gt;目的が「画像群の背景をすばやく除去し、処理をローカルに保つこと」なら、&lt;code&gt;rembg&lt;/code&gt; はツール箱に入れておく価値があります。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHubプロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/danielgatis/rembg&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/danielgatis/rembg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;README：&lt;a class=&#34;link&#34; href=&#34;https://github.com/danielgatis/rembg/blob/main/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/danielgatis/rembg/blob/main/README.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Releases：&lt;a class=&#34;link&#34; href=&#34;https://github.com/danielgatis/rembg/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/danielgatis/rembg/releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ONNX Runtime インストールマトリックス：&lt;a class=&#34;link&#34; href=&#34;https://onnxruntime.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://onnxruntime.ai/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Ollama マルチ GPU メモ：VRAM の合算、GPU 選択、よくある誤解</title>
        <link>https://knightli.com/ja/2026/04/19/ollama-multiple-gpu-notes/</link>
        <pubDate>Sun, 19 Apr 2026 00:18:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/19/ollama-multiple-gpu-notes/</guid>
        <description>&lt;p&gt;Ollama でローカル推論を試していると、よく次のような疑問が出てきます。今 1 枚 GPU があり、マザーボードに空き PCIe スロットがある場合、GPU を追加すると Ollama に効果があるのか。複数 GPU は同じ型番でなければならないのか。VRAM は合算できるのか。学習フレームワークのようにマルチ GPU で推論速度が大きく上がるのか。&lt;/p&gt;
&lt;p&gt;この記事では、Ollama のマルチ GPU 動作を整理します。先に結論を書くと次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ollama は複数 GPU をサポートします。&lt;/li&gt;
&lt;li&gt;複数 GPU の主な価値は、より大きなモデルを合計 VRAM に載せやすくすることであり、token/s が線形に伸びることではありません。&lt;/li&gt;
&lt;li&gt;デフォルトでは、モデルが 1 枚の GPU に完全に収まる場合、Ollama は単一 GPU に載せる傾向があります。&lt;/li&gt;
&lt;li&gt;モデルが 1 枚の GPU に収まらない場合、Ollama は利用可能な GPU にモデルを分散できます。&lt;/li&gt;
&lt;li&gt;異なる型番の GPU も Ollama から見える場合がありますが、性能や配置が理想的とは限りません。&lt;/li&gt;
&lt;li&gt;SLI / NVLink は必須ではありません。&lt;/li&gt;
&lt;li&gt;Ollama が使う GPU を制限したい場合は、&lt;code&gt;CUDA_VISIBLE_DEVICES&lt;/code&gt;、&lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt;、&lt;code&gt;GGML_VK_VISIBLE_DEVICES&lt;/code&gt; を使います。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;公式の挙動まず単一-gpu入らなければ複数-gpu&#34;&gt;公式の挙動：まず単一 GPU、入らなければ複数 GPU
&lt;/h2&gt;&lt;p&gt;Ollama FAQ では、マルチ GPU のロードロジックが比較的明確に説明されています。新しいモデルをロードするとき、Ollama は必要な VRAM を見積もり、現在利用可能な VRAM と比較します。モデルがどれか 1 枚の GPU に完全に収まる場合、その GPU にロードします。1 枚に収まらない場合、利用可能なすべての GPU に分散されます。&lt;/p&gt;
&lt;p&gt;この戦略の理由は性能です。単一 GPU に載せることで、推論時の PCIe バス越しのデータ転送を減らせるため、通常はそのほうが速くなります。&lt;/p&gt;
&lt;p&gt;そのため、Ollama のマルチ GPU を「GPU が増えれば自動で数倍速くなる」と考えないほうがよいです。より正確には次のように理解できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;小さいモデルが単一 GPU に入る：通常は単一 GPU で動く。&lt;/li&gt;
&lt;li&gt;大きいモデルが単一 GPU に入らない：複数 GPU に分層ロードされる。&lt;/li&gt;
&lt;li&gt;それでも VRAM が足りない：一部がシステムメモリに落ち、速度が大きく低下する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;モデルがどこにロードされたかは、次のコマンドで確認できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;出力の &lt;code&gt;PROCESSOR&lt;/code&gt; には、たとえば次のように表示されます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;100% GPU
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;48%/52% CPU/GPU
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;100% CPU
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;48%/52% CPU/GPU&lt;/code&gt; と表示される場合、一部がすでにシステムメモリにあります。この場合、CPU/RAM に頼り続けるより、GPU を増やすか、より大容量 VRAM の GPU に替えるほうが有効なことが多いです。&lt;/p&gt;
&lt;h2 id=&#34;マルチ-gpu-は単純な計算力の合算ではない&#34;&gt;マルチ GPU は単純な計算力の合算ではない
&lt;/h2&gt;&lt;p&gt;ローカル LLM 推論は、ゲームにおける SLI とは別物です。Ollama のマルチ GPU では、モデルの異なる層やテンソルを別々のデバイスに置く形が一般的です。これにより複数 GPU の VRAM を使って大きなモデルを載せられますが、推論中にはデバイス間でデータを渡す必要が出る場合があります。&lt;/p&gt;
&lt;p&gt;したがって、マルチ GPU の利点は通常 2 種類です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VRAM 面の利点：大きなモデルを載せやすくなり、CPU/RAM への退避を避けやすくなる。&lt;/li&gt;
&lt;li&gt;性能面の利点：単一 GPU に入らない、または CPU との混在が深刻な場合に目立ちやすい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;8B や 14B のモデルが 1 枚の RTX 3090 に完全に入る場合、それを 2 枚の GPU に無理に分割しても速くなるとは限りません。むしろ GPU 間転送で遅くなる可能性があります。Ollama のデフォルトの「入るなら単一 GPU」戦略は、この不要な PCIe コストを避けるためのものです。&lt;/p&gt;
&lt;h2 id=&#34;sli-や-nvlink-は不要&#34;&gt;SLI や NVLink は不要
&lt;/h2&gt;&lt;p&gt;Ollama のマルチ GPU は SLI に依存しません。通常の PCIe GPU が複数あり、ドライバと Ollama が認識できれば、スケジューリング対象になります。&lt;/p&gt;
&lt;p&gt;NVLink やより高い PCIe 帯域は、一部の GPU 間分散シナリオで役立つ可能性がありますが、前提条件ではありません。中古 GPU サーバーやワークステーションでも、普通の PCIe マルチ GPU で動かせます。&lt;/p&gt;
&lt;p&gt;本当に注意すべきなのは PCIe 帯域です。&lt;code&gt;x1&lt;/code&gt;、&lt;code&gt;x4&lt;/code&gt;、&lt;code&gt;x8&lt;/code&gt;、&lt;code&gt;x16&lt;/code&gt; の差は、モデルを VRAM にロードする速度に影響します。大きなモデルを頻繁に切り替える場合、PCIe リンクはボトルネックになりやすくなります。モデルのロード後、生成時の影響は通常小さくなりますが、GPU 間分散には追加コストが残る可能性があります。&lt;/p&gt;
&lt;p&gt;無難な考え方は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;可能なら x16 / x8 を使い、マイニング用 x1 riser は避ける。&lt;/li&gt;
&lt;li&gt;大きなモデルを頻繁に切り替えるなら、PCIe 帯域はより重要。&lt;/li&gt;
&lt;li&gt;モデルを長時間 VRAM に常駐させる場合、PCIe 帯域の影響は相対的に小さくなる。&lt;/li&gt;
&lt;li&gt;マルチ GPU 機では、マザーボードの PCIe トポロジーと CPU 直結レーンを確認する。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;ollama-が使う-nvidia-gpu-を制限する&#34;&gt;Ollama が使う NVIDIA GPU を制限する
&lt;/h2&gt;&lt;p&gt;NVIDIA のマルチ GPU 環境では、&lt;code&gt;CUDA_VISIBLE_DEVICES&lt;/code&gt; で Ollama から見える GPU を制御します。&lt;/p&gt;
&lt;p&gt;一時的に実行する場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;2 枚目の GPU だけを使う場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;NVIDIA GPU を使わせない場合は、無効な ID を指定できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;-1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;公式ドキュメントでは、数値 ID の順序は変わる可能性があるため、GPU UUID のほうが信頼できるとされています。まず UUID を確認します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi -L
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;出力例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPU 0: NVIDIA GeForce RTX 3090 (UUID: GPU-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPU 1: NVIDIA GeForce RTX 3070 (UUID: GPU-yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;その後、UUID を指定します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;GPU-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Linux の systemd サービスとして Ollama をインストールしている場合は、サービス環境変数に書きます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl edit ollama.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;追加内容：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Environment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;CUDA_VISIBLE_DEVICES=0,1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;再読み込みして再起動します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl daemon-reload
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl restart ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;amd-と-vulkan-の選択変数&#34;&gt;AMD と Vulkan の選択変数
&lt;/h2&gt;&lt;p&gt;AMD ROCm 環境では、&lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt; で見える GPU を制御します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ROCR_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ROCm GPU を使わせない場合も、無効な ID を指定できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ROCR_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;-1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ollama の GPU ドキュメントでは、実験的な Vulkan サポートも触れられています。Vulkan GPU を選ぶには &lt;code&gt;GGML_VK_VISIBLE_DEVICES&lt;/code&gt; を使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OLLAMA_VULKAN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;GGML_VK_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Vulkan デバイスで問題が出る場合は無効化できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;GGML_VK_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;-1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;AMD のマルチ GPU は、NVIDIA よりもドライバ、ROCm バージョン、GFX バージョンの互換性問題に遭遇しやすいです。公式ドキュメントでも Linux の ROCm ドライバ要件や &lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt; などの互換性設定が説明されています。異なる世代の AMD GPU を混在させる場合は、まず各カードが単独で動くことを確認してからマルチ GPU を試すのが安全です。&lt;/p&gt;
&lt;h2 id=&#34;docker-で複数-gpu-を見せる&#34;&gt;Docker で複数 GPU を見せる
&lt;/h2&gt;&lt;p&gt;Docker で Ollama を動かす場合、NVIDIA 環境では通常 &lt;code&gt;nvidia-container-toolkit&lt;/code&gt; を入れ、&lt;code&gt;--gpus&lt;/code&gt; でデバイスを公開します。&lt;/p&gt;
&lt;p&gt;すべての GPU を公開：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --gpus&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;all &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v ollama:/root/.ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 11434:11434 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ollama/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;指定した GPU だけを公開：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --gpus &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#34;device=0,1&amp;#34;&amp;#39;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v ollama:/root/.ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 11434:11434 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ollama/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;環境変数と組み合わせることもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --gpus&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;all &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v ollama:/root/.ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 11434:11434 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ollama/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;コンテナ内で &lt;code&gt;nvidia-smi&lt;/code&gt; が GPU を見られない場合、Ollama も GPU を使えません。まず Docker の GPU passthrough を確認し、その後 Ollama を確認します。&lt;/p&gt;
&lt;h2 id=&#34;ollama_sched_spread-とは&#34;&gt;&lt;code&gt;OLLAMA_SCHED_SPREAD&lt;/code&gt; とは
&lt;/h2&gt;&lt;p&gt;マルチ GPU 設定では、&lt;code&gt;OLLAMA_SCHED_SPREAD=1&lt;/code&gt; や &lt;code&gt;OLLAMA_SCHED_SPREAD=true&lt;/code&gt; を見かけることがあります。これは Ollama のスケジューラに関係する設定で、モデルやリクエストを複数 GPU により分散させたい場面で使われることがあります。&lt;/p&gt;
&lt;p&gt;設定例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OLLAMA_SCHED_SPREAD&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;systemd の場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Environment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;OLLAMA_SCHED_SPREAD=true&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ただし万能ではありません。有効にしても token/s が線形に増えるわけではなく、複数モデルの同時ロード、VRAM 見積もり、コンテキスト長、KV cache の増加によって OOM になることもあります。公式 FAQ の基本方針は変わりません。1 枚の GPU にモデルが完全に入るなら単一 GPU のほうが効率的なことが多く、1 枚に入らないときに複数 GPU 分散が有効になります。&lt;/p&gt;
&lt;p&gt;そのため、&lt;code&gt;OLLAMA_SCHED_SPREAD&lt;/code&gt; はマルチ GPU 必須設定ではなく、高度なスケジューリング実験項目として扱うのがよいです。まずデフォルト挙動を理解し、&lt;code&gt;ollama ps&lt;/code&gt;、ログ、&lt;code&gt;nvidia-smi&lt;/code&gt; の結果を見ながら調整します。&lt;/p&gt;
&lt;h2 id=&#34;複数-gpu-が本当に使われているか確認する&#34;&gt;複数 GPU が本当に使われているか確認する
&lt;/h2&gt;&lt;p&gt;よく使う確認コマンド：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;watch -n 0.5 nvidia-smi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ollama サービスログ：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;journalctl -u ollama -f
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Docker の場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker logs -f ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;確認したい点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ollama が対応 GPU を検出しているか。&lt;/li&gt;
&lt;li&gt;モデルが &lt;code&gt;100% GPU&lt;/code&gt; または CPU/GPU 混在で表示されているか。&lt;/li&gt;
&lt;li&gt;各 GPU に VRAM 使用量があるか。&lt;/li&gt;
&lt;li&gt;モデルロード時に複数 GPU の VRAM が増えるか。&lt;/li&gt;
&lt;li&gt;生成時の token/s が CPU/RAM 退避より明らかに改善しているか。&lt;/li&gt;
&lt;li&gt;OOM やモデルのアンロードが頻発していないか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GPU 使用率だけを見ると誤解しやすいです。LLM 推論では、特にマルチ GPU、低 batch、小さいコンテキスト、遅い CPU、遅い PCIe 環境では、GPU 使用率が常に高いとは限りません。&lt;/p&gt;
&lt;h2 id=&#34;よくある誤解&#34;&gt;よくある誤解
&lt;/h2&gt;&lt;h3 id=&#34;誤解-112gb-gpu-2-枚は-24gb-gpu-1-枚と同じ&#34;&gt;誤解 1：12GB GPU 2 枚は 24GB GPU 1 枚と同じ
&lt;/h3&gt;&lt;p&gt;完全には同じではありません。複数 GPU にモデルを配置できますが、デバイス間アクセスには追加コストがあります。「入らない」問題は解決できますが、単一大容量 VRAM GPU と同じ速度や安定性になるとは限りません。&lt;/p&gt;
&lt;h3 id=&#34;誤解-2異なる型番の-gpu-は混在できない&#34;&gt;誤解 2：異なる型番の GPU は混在できない
&lt;/h3&gt;&lt;p&gt;必ずしもそうではありません。ドライバ、計算能力、ランタイムライブラリが対応していれば、Ollama は複数 GPU を認識できます。ただし混在構成では、遅いカード、小さい VRAM、PCIe トポロジーに制約されやすくなります。最も予測しやすいのは、同じ型番、同じ VRAM、同世代でサポートの良いドライバ構成です。&lt;/p&gt;
&lt;h3 id=&#34;誤解-3マルチ-gpu-は必ず単一-gpu-より速い&#34;&gt;誤解 3：マルチ GPU は必ず単一 GPU より速い
&lt;/h3&gt;&lt;p&gt;必ずしも速くありません。モデルが 1 枚の高速 GPU に完全に入る場合、単一 GPU のほうが速いことがあります。マルチ GPU は主に、大きなモデル、長いコンテキスト、単一 GPU の VRAM 不足に向いています。&lt;/p&gt;
&lt;h3 id=&#34;誤解-4nvlink--sli-が必須&#34;&gt;誤解 4：NVLink / SLI が必須
&lt;/h3&gt;&lt;p&gt;不要です。普通の PCIe マルチ GPU システムでも Ollama は利用できます。NVLink は前提条件ではありません。&lt;/p&gt;
&lt;h3 id=&#34;誤解-5gpu-を追加したらサービス再起動は不要&#34;&gt;誤解 5：GPU を追加したらサービス再起動は不要
&lt;/h3&gt;&lt;p&gt;必ずしもそうではありません。Linux systemd サービス、Windows のバックグラウンドアプリ、Docker コンテナは、デバイスや環境変数を再検出するために再起動が必要な場合があります。&lt;/p&gt;
&lt;h2 id=&#34;gpu-選びの目安&#34;&gt;GPU 選びの目安
&lt;/h2&gt;&lt;p&gt;Ollama のローカル推論では、おおよその優先順位は次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;単一 GPU の VRAM が大きいほど扱いやすい。&lt;/li&gt;
&lt;li&gt;同一 GPU 複数枚は、混在 GPU よりトラブルシュートしやすい。&lt;/li&gt;
&lt;li&gt;PCIe レーンが十分あるほど、大きなモデルのロードが快適。&lt;/li&gt;
&lt;li&gt;古い GPU は CUDA compute capability または ROCm 対応を先に確認する。&lt;/li&gt;
&lt;li&gt;マルチ GPU では電源、冷却、筐体エアフローを事前に計算する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;中古予算重視の場合：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RTX 3090 2 枚は、今でもよく使われる大容量 VRAM 構成です。&lt;/li&gt;
&lt;li&gt;P40 / M40 のような古い Tesla は VRAM が大きい一方、消費電力、冷却、ドライバ、性能のトレードオフがあります。&lt;/li&gt;
&lt;li&gt;RTX 4070 / 4070 Ti などは効率が良いですが、単一 GPU の VRAM 容量が制約になりやすいです。&lt;/li&gt;
&lt;li&gt;古い 8GB GPU を複数枚使う構成は実験としては面白いですが、大きなモデルを長期運用する用途にはあまり向きません。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Ollama のマルチ GPU は、「性能加速より先に VRAM 拡張」と理解すると分かりやすいです。モデルが 1 枚の GPU に完全に入るなら、デフォルトの単一 GPU 経路のほうが速いことが多いです。1 枚に入らない場合、複数 GPU に分散することで CPU/RAM への大きな退避を避け、大きなモデルを実用的にできます。&lt;/p&gt;
&lt;p&gt;実際の設定では、まず &lt;code&gt;ollama ps&lt;/code&gt; でモデルのロード先を確認し、&lt;code&gt;nvidia-smi&lt;/code&gt; や ROCm ツールで VRAM 使用量を観察します。GPU を制限する場合、NVIDIA は &lt;code&gt;CUDA_VISIBLE_DEVICES&lt;/code&gt;、AMD ROCm は &lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt;、Vulkan は &lt;code&gt;GGML_VK_VISIBLE_DEVICES&lt;/code&gt; を使います。Docker で動かす場合は、まずコンテナから GPU が見えているか確認します。&lt;/p&gt;
&lt;p&gt;マルチ GPU は魔法ではありません。より大きなモデルを載せる助けにはなりますが、線形加速は保証されません。安定して使うなら、大容量 VRAM の単一 GPU、または同一型番のマルチ GPU を優先し、ドライバ、PCIe、電源、冷却、モデル量子化をまとめて考えるのが現実的です。&lt;/p&gt;
&lt;h2 id=&#34;参考連結&#34;&gt;参考連結
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Ollama FAQ：How does Ollama load models on multiple GPUs?：&lt;a class=&#34;link&#34; href=&#34;https://github.com/ollama/ollama/blob/main/docs/faq.mdx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ollama/ollama/blob/main/docs/faq.mdx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ollama GPU ドキュメント：Hardware support / GPU Selection：&lt;a class=&#34;link&#34; href=&#34;https://github.com/ollama/ollama/blob/main/docs/gpu.mdx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ollama/ollama/blob/main/docs/gpu.mdx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ollama Docker Hub：&lt;a class=&#34;link&#34; href=&#34;https://hub.docker.com/r/ollama/ollama&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://hub.docker.com/r/ollama/ollama&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NVIDIA Container Toolkit：&lt;a class=&#34;link&#34; href=&#34;https://github.com/NVIDIA/nvidia-container-toolkit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NVIDIA/nvidia-container-toolkit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Google App デスクトップ版体験：AI 検索を Windows に入れる</title>
        <link>https://knightli.com/ja/2026/04/18/google-app-desktop-ai-search-windows/</link>
        <pubDate>Sat, 18 Apr 2026 11:08:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/18/google-app-desktop-ai-search-windows/</guid>
        <description>&lt;p&gt;Google は、Windows デスクトップ上により軽量な検索入口を用意しました。毎回ブラウザを開かなくても、ショートカットを押すだけで検索ボックスを呼び出し、質問の入力、画像アップロード、ファイル分析、画面上の範囲選択、さらに追加質問まで行えます。&lt;/p&gt;
&lt;p&gt;このツールの正式名称は &lt;strong&gt;Google app for desktop&lt;/strong&gt; です。従来のブラウザを置き換えるものではなく、Google Search、AI Mode、Google Lens、画面共有、PC 内ファイル検索、Google Drive 検索を 1 つのデスクトップ検索ボックスにまとめるためのアプリです。&lt;/p&gt;
&lt;p&gt;普段から調べ物、文書の要約、スクリーンショット内容の確認、PC 内ファイルの検索をよく行うなら、このデスクトップ版 Google App は試す価値があります。&lt;/p&gt;
&lt;h2 id=&#34;利用条件&#34;&gt;利用条件
&lt;/h2&gt;&lt;p&gt;Google の公式ページによると、現在の要件は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ユーザーは 13 歳以上。&lt;/li&gt;
&lt;li&gt;Windows 10 以降のデスクトップ端末。&lt;/li&gt;
&lt;li&gt;現在、このアプリは英語のみ対応。&lt;/li&gt;
&lt;li&gt;Google Search の AI Mode は、すべてのアカウント、国、言語で利用できるわけではありません。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、Windows 10 または Windows 11 を使っている場合は、まずインストールして試すことができます。公式ページには現在 &lt;strong&gt;Now available on Windows&lt;/strong&gt; と明記されているため、この記事では Windows 版を前提に紹介します。&lt;/p&gt;
&lt;h2 id=&#34;主な機能&#34;&gt;主な機能
&lt;/h2&gt;&lt;h3 id=&#34;1-ショートカットで検索ボックスを開く&#34;&gt;1. ショートカットで検索ボックスを開く
&lt;/h3&gt;&lt;p&gt;インストール後は、次のキーで起動できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Alt + Space
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Google のデスクトップ検索ボックスがすぐに表示されます。もう一度押すと非表示にできます。&lt;/p&gt;
&lt;p&gt;体験としてはシステムランチャーに近いものです。文書作成中、Web ページ閲覧中、ファイル整理中、別アプリの使用中でも、ブラウザに戻らず検索入口を呼び出せます。&lt;/p&gt;
&lt;h3 id=&#34;2-ai-mode-検索と追加質問&#34;&gt;2. AI Mode 検索と追加質問
&lt;/h3&gt;&lt;p&gt;通常の検索は Web ページのリンク一覧を返すことが多いですが、AI Mode は検索結果をもとにした回答を先に整理してくれます。質問を直接入力すると、まとまった説明と参考リンクを受け取れます。&lt;/p&gt;
&lt;p&gt;便利なのは、続けて質問できる点です。たとえば最初にこう聞きます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;このツールはどんな用途に向いていますか？
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;回答を受け取ったあと、さらに続けて聞けます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;文章コンテンツを作る場合、どのように使うと作業効率を上げられますか？
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;毎回キーワードを作り直したり、複数のページを行き来したりする手間を減らせます。&lt;/p&gt;
&lt;h3 id=&#34;3-画像をアップロードして認識検索する&#34;&gt;3. 画像をアップロードして認識・検索する
&lt;/h3&gt;&lt;p&gt;デスクトップ版 Google App では、画像をアップロードして質問できます。よくある使い方は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;画像内の人物、場所、商品、物体を識別する。&lt;/li&gt;
&lt;li&gt;類似画像や関連情報を探す。&lt;/li&gt;
&lt;li&gt;画像内容から説明文を抽出する。&lt;/li&gt;
&lt;li&gt;画像をもとに AI 用のクリエイティブなプロンプトを作る。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たとえば人物画像をアップロードしたあと、次のように質問できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;この画像の人物は誰ですか？関連する紹介と参考資料も教えてください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;日常的な画像検索、出典探し、物体認識なら、Web ページを開いて画像をアップロードするより手軽です。&lt;/p&gt;
&lt;h3 id=&#34;4-google-lens-で画面上の内容を選択する&#34;&gt;4. Google Lens で画面上の内容を選択する
&lt;/h3&gt;&lt;p&gt;Google Lens は、このデスクトップアプリの中でも特に実用的な機能です。画面上の一部を直接選択し、その内容を認識して検索できます。&lt;/p&gt;
&lt;p&gt;次のような場面で使えます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web ページ上の商品を選択し、同じ商品や関連情報を探す。&lt;/li&gt;
&lt;li&gt;スクリーンショット内の文字を選択し、意味を説明してもらう。&lt;/li&gt;
&lt;li&gt;ソフトウェア画面を選択し、何のツールか判断してもらう。&lt;/li&gt;
&lt;li&gt;エラーメッセージを選択し、原因調査の手がかりをもらう。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;基本の価値は「見たものをそのまま検索できる」ことです。以前ならスクリーンショットを撮って保存し、アップロードする必要がありましたが、今は画面上で直接対象を選べます。&lt;/p&gt;
&lt;h3 id=&#34;5-画面共有検索&#34;&gt;5. 画面共有検索
&lt;/h3&gt;&lt;p&gt;一部を選択するだけでなく、画面共有にも対応しています。有効にすると、AI が現在のウィンドウまたは画面全体を見ながら、その内容について質問に答えられます。&lt;/p&gt;
&lt;p&gt;たとえば記事を開いているときは、次のように聞けます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;現在のページの重要ポイントを要約してください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;または：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;このページで改善できそうな点はありますか？
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Web ページの読解、デザイン案の確認、コード断片の分析、長いページの要約に向いています。画面共有中は、通常わかりやすい枠線が表示されるため、共有状態を確認しやすくなっています。&lt;/p&gt;
&lt;h3 id=&#34;6-pc-内ファイルと-google-drive-を検索する&#34;&gt;6. PC 内ファイルと Google Drive を検索する
&lt;/h3&gt;&lt;p&gt;公式説明では、同じ検索ボックスから PC 内のアプリやファイル、Google Drive の内容も検索できるとされています。&lt;/p&gt;
&lt;p&gt;これはデスクトップ検索とクラウド検索をまとめた機能です。ファイル名の一部、内容のキーワード、Google Drive 内の資料を探したいとき、ファイルエクスプローラーと Drive を別々に開く必要が少なくなります。&lt;/p&gt;
&lt;p&gt;初回利用時に Google Drive 検索やローカルファイル検索の有効化を求められた場合は、必要な範囲だけ許可するのがおすすめです。ローカルファイルやクラウドデータに関わるため、アクセス範囲は確認しておきましょう。&lt;/p&gt;
&lt;h2 id=&#34;インストールと使い方&#34;&gt;インストールと使い方
&lt;/h2&gt;&lt;h3 id=&#34;1-公式ダウンロードページを開く&#34;&gt;1. 公式ダウンロードページを開く
&lt;/h3&gt;&lt;p&gt;公式ページにアクセスします。&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://search.google/google-app/desktop/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://search.google/google-app/desktop/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ページ内の &lt;strong&gt;Download app&lt;/strong&gt; をクリックしてアプリをダウンロードします。&lt;/p&gt;
&lt;h3 id=&#34;2-デスクトップアプリをインストールする&#34;&gt;2. デスクトップアプリをインストールする
&lt;/h3&gt;&lt;p&gt;ダウンロード完了後、インストーラーを実行し、案内に従ってインストールします。&lt;/p&gt;
&lt;p&gt;インストール後は Google アカウントでログインできます。ログインすると Google Drive 検索、パーソナライズ検索、一部の AI 機能を使いやすくなります。基本的な検索だけを試す場合は、画面の案内に従って先に体験してもかまいません。&lt;/p&gt;
&lt;h3 id=&#34;3-検索ボックスを呼び出す&#34;&gt;3. 検索ボックスを呼び出す
&lt;/h3&gt;&lt;p&gt;ショートカットを押します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Alt + Space
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;デスクトップ上に Google 検索ボックスが表示されます。質問を入力したり、ファイルをアップロードしたり、Lens や画面共有を使ったりできます。&lt;/p&gt;
&lt;h3 id=&#34;4-必要な検索範囲を有効にする&#34;&gt;4. 必要な検索範囲を有効にする
&lt;/h3&gt;&lt;p&gt;Google Drive やローカルファイルを検索したい場合は、案内に従って権限を有効にします。&lt;/p&gt;
&lt;p&gt;おすすめの流れは次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;まず Google Drive 検索を有効にし、クラウド資料の検索を試す。&lt;/li&gt;
&lt;li&gt;必要になったらローカルファイル検索を有効にする。&lt;/li&gt;
&lt;li&gt;不要な検索範囲は許可しない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうすると機能を試しながら、どのデータへアクセスしているかも把握しやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;よくある利用シーン&#34;&gt;よくある利用シーン
&lt;/h2&gt;&lt;h3 id=&#34;pdf-や文書を分析する&#34;&gt;PDF や文書を分析する
&lt;/h3&gt;&lt;p&gt;PDF、表、文書をドラッグして、要点をまとめてもらえます。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;この PDF の重要ポイントを要約し、注意すべき点を列挙してください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;申請書、明細、表、マニュアルのように情報量が多いファイルなら、続けてこう聞けます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;重要な情報をカテゴリ別に整理してください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;長い文書を 1 ページずつ読むより効率的です。&lt;/p&gt;
&lt;h3 id=&#34;web-ページを要約する&#34;&gt;Web ページを要約する
&lt;/h3&gt;&lt;p&gt;画面共有を有効にすると、現在のページを直接要約できます。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;このページの主な論点を抽出し、5 つの箇条書きでまとめてください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;長文記事、製品ページ、ドキュメント、ニュースページの確認に向いています。&lt;/p&gt;
&lt;h3 id=&#34;スクリーンショットや画面を識別する&#34;&gt;スクリーンショットや画面を識別する
&lt;/h3&gt;&lt;p&gt;Google Lens で画面上のソフトウェア画面、コード断片、エラー表示、画像内容を選択し、見えている情報を説明してもらえます。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;このエラーの意味を説明し、調査の進め方を提案してください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;または：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;このスクリーンショットに表示されているツールは何ですか？どんな場面で使われそうですか？
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;コンテンツ作成を補助する&#34;&gt;コンテンツ作成を補助する
&lt;/h3&gt;&lt;p&gt;タイトル作成、アウトライン生成、訴求ポイントの整理にも使えます。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;AI ツール紹介の記事タイトルを 10 個作ってください。実用ノウハウ、効率化ツール、オフィス業務向けの方向でお願いします。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;初稿を受け取ったあと、さらに調整できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;これらのタイトルをテックブログ向けに調整してください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このように続けて聞けるため、検索エンジンに一度で結果を求めるより自然に使えます。&lt;/p&gt;
&lt;h2 id=&#34;使うときの注意&#34;&gt;使うときの注意
&lt;/h2&gt;&lt;p&gt;日常的な調べ物だけなら、より速い Google Search 入口として使えます。画像、PDF、Web ページ、スクリーンショットをよく扱うなら、Lens、ファイルアップロード、画面共有を重点的に試すとよいでしょう。&lt;/p&gt;
&lt;p&gt;注意点は 3 つあります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;公式ページでは現在英語のみ対応とされています。中国語や日本語での質問結果は、アカウントや地域によって変わる可能性があります。&lt;/li&gt;
&lt;li&gt;AI Mode はすべてのアカウントで使えるとは限りません。表示されない場合は、アカウント、地域、言語設定を確認してください。&lt;/li&gt;
&lt;li&gt;ローカルファイル、Google Drive、画面共有はプライバシー権限に関わります。有効にする前に、アクセスさせる内容を確認しましょう。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Google App デスクトップ版の一番の価値は、検索入口をブラウザの外に出し、いつでも呼び出せるデスクトップ AI 検索ボックスにすることです。&lt;/p&gt;
&lt;p&gt;できることをまとめると：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Alt + Space&lt;/code&gt; で素早く検索を呼び出す。&lt;/li&gt;
&lt;li&gt;AI Mode で整理された回答を得る。&lt;/li&gt;
&lt;li&gt;画像やファイルをアップロードして分析する。&lt;/li&gt;
&lt;li&gt;Google Lens で画面上の内容を選択して検索する。&lt;/li&gt;
&lt;li&gt;画面共有で現在のウィンドウや画面全体を理解させる。&lt;/li&gt;
&lt;li&gt;PC 内ファイル、アプリ、Google Drive の内容を検索する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;すでに Google 検索をよく使っていて、検索を「アシスタントに聞く」感覚に近づけたいなら、Google app for desktop は試してみる価値があります。&lt;/p&gt;
&lt;h2 id=&#34;参考リンク&#34;&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Google App デスクトップ版公式ページ：&lt;a class=&#34;link&#34; href=&#34;https://search.google/google-app/desktop/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://search.google/google-app/desktop/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Gemma 4 E4B の脱獄版と公式通常版の違い</title>
        <link>https://knightli.com/ja/2026/04/18/gemma-4-e4b-uncensored-vs-official/</link>
        <pubDate>Sat, 18 Apr 2026 10:20:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/18/gemma-4-e4b-uncensored-vs-official/</guid>
        <description>&lt;p&gt;&lt;code&gt;HauhauCS/Gemma-4-E4B-Uncensored-HauhauCS-Aggressive&lt;/code&gt; のようなモデルを見るときに一番重要なのは、これは &lt;strong&gt;Google が新しく出した別の Gemma 4 ではない&lt;/strong&gt; という点です。公式の &lt;code&gt;google/gemma-4-E4B-it&lt;/code&gt; をベースにした非公式派生版であり、主眼は「拒否応答を減らすこと」にあります。&lt;/p&gt;
&lt;p&gt;つまり、通常版との本質的な差はモデル構造よりも &lt;strong&gt;アラインメント方針と応答スタイル&lt;/strong&gt; にあります。&lt;/p&gt;
&lt;h2 id=&#34;この派生版モデルカードが明示していること&#34;&gt;この派生版モデルカードが明示していること
&lt;/h2&gt;&lt;p&gt;Hugging Face のモデルカードでは、この HauhauCS 版について次のように書かれています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;google/gemma-4-E4B-it&lt;/code&gt; ベースである&lt;/li&gt;
&lt;li&gt;「データセットや能力には変更がない」と主張している&lt;/li&gt;
&lt;li&gt;違いは「拒否応答を外しただけ」と主張している&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Aggressive&lt;/code&gt; 版は「完全に解放され、プロンプトを拒否しない」と説明している&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらは作者側の主張であり、独立した第三者評価ではありません。ただし、意図している方向性は明確です。これは「安全上の拒否を減らす」ことを狙った非公式派生版です。&lt;/p&gt;
&lt;h2 id=&#34;公式版-vs-いわゆる脱獄版&#34;&gt;公式版 vs いわゆる「脱獄版」
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;観点&lt;/th&gt;
          &lt;th&gt;公式 &lt;code&gt;google/gemma-4-E4B-it&lt;/code&gt;&lt;/th&gt;
          &lt;th&gt;&lt;code&gt;Gemma-4-E4B-Uncensored-HauhauCS-Aggressive&lt;/code&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;出所&lt;/td&gt;
          &lt;td&gt;Google 公式&lt;/td&gt;
          &lt;td&gt;Hugging Face 上の第三者派生版&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ベースモデル&lt;/td&gt;
          &lt;td&gt;Gemma 4 E4B の instruction-tuned 版&lt;/td&gt;
          &lt;td&gt;同じモデル系統で、モデルカードにも &lt;code&gt;google/gemma-4-E4B-it&lt;/code&gt; ベースと明記&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;主目的&lt;/td&gt;
          &lt;td&gt;汎用アシスタント能力 + Responsible AI 前提&lt;/td&gt;
          &lt;td&gt;拒否応答を減らし、とにかく出力を続ける&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;安全方針&lt;/td&gt;
          &lt;td&gt;Gemma 系列の安全文書・禁止用途ポリシーに沿う&lt;/td&gt;
          &lt;td&gt;拒否やガードレールを意図的に弱めている&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;応答傾向&lt;/td&gt;
          &lt;td&gt;敏感な要求では拒否・回避・慎重回答が増える&lt;/td&gt;
          &lt;td&gt;公式版なら止まる要求にもそのまま答えやすい&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;リスク&lt;/td&gt;
          &lt;td&gt;既定では比較的低いが、完全に安全という意味ではない&lt;/td&gt;
          &lt;td&gt;既定でより高リスク。不適切または非準拠の出力が出やすい&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;プロダクト適性&lt;/td&gt;
          &lt;td&gt;企業や公開サービスで説明しやすい&lt;/td&gt;
          &lt;td&gt;公開サービスやポリシー重視環境では扱いにくい&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;追加対策&lt;/td&gt;
          &lt;td&gt;アプリ側の安全対策は依然必要&lt;/td&gt;
          &lt;td&gt;モデル側の抑制が弱いため、下流側の安全対策がより重要&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;本質は能力向上より挙動変更&#34;&gt;本質は「能力向上」より「挙動変更」
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;uncensored&lt;/code&gt; を「より高性能」と受け取るのは、たいてい正確ではありません。&lt;/p&gt;
&lt;p&gt;こうした派生版で先に変わるのは次の点です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;どれだけ拒否するか&lt;/li&gt;
&lt;li&gt;敏感な要求にどれだけ従うか&lt;/li&gt;
&lt;li&gt;最終回答にどれだけ安全フィルタが残るか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一方で、名前に &lt;code&gt;Uncensored&lt;/code&gt; と付いているからといって、次のものまで自動的に大きく向上するわけではありません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;モデルアーキテクチャ&lt;/li&gt;
&lt;li&gt;コンテキスト長&lt;/li&gt;
&lt;li&gt;マルチモーダル能力&lt;/li&gt;
&lt;li&gt;推論能力の上限&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;より正確には、これは &lt;strong&gt;同じモデル系列の中で挙動の調整が違う版&lt;/strong&gt; と見るべきであり、上位モデルとみなすべきではありません。&lt;/p&gt;
&lt;h2 id=&#34;なぜ公式版のほうが保守的なのか&#34;&gt;なぜ公式版のほうが保守的なのか
&lt;/h2&gt;&lt;p&gt;Google の Gemma 公式文書は、この系列を Responsible AI 開発の文脈で位置づけています。Gemma のモデルカードでは誤用、有害コンテンツ、プライバシー、バイアスといったリスクが明示されており、Gemma Prohibited Use Policy では Gemma または派生モデルを次の用途に使うことを禁じています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;危険・違法・悪意ある活動&lt;/li&gt;
&lt;li&gt;有害、誤解を招く、欺瞞的なコンテンツ生成&lt;/li&gt;
&lt;li&gt;安全フィルタの上書きや回避&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、公式版が保守的なのは偶然ではなく、文書・ライセンス・運用前提が最初からそう設計されているためです。&lt;/p&gt;
&lt;h2 id=&#34;公式通常版が向いているケース&#34;&gt;公式通常版が向いているケース
&lt;/h2&gt;&lt;p&gt;次の点を重視するなら、まずは公式 &lt;code&gt;google/gemma-4-E4B-it&lt;/code&gt; のほうが適しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロダクトへの組み込み&lt;/li&gt;
&lt;li&gt;チーム利用&lt;/li&gt;
&lt;li&gt;企業・公開向け運用&lt;/li&gt;
&lt;li&gt;ポリシーや法務リスクの低減&lt;/li&gt;
&lt;li&gt;出力挙動の説明可能性&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;多くの通常用途では、こちらが基本選択です。&lt;/p&gt;
&lt;h2 id=&#34;あえて脱獄版を試す人がいる理由&#34;&gt;あえて脱獄版を試す人がいる理由
&lt;/h2&gt;&lt;p&gt;こうした uncensored 派生版が選ばれるのは、たいてい次のような理由です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ローカルでの私的実験&lt;/li&gt;
&lt;li&gt;公式版が早すぎる拒否をしていないかの確認&lt;/li&gt;
&lt;li&gt;ロールプレイや自由度の高い創作&lt;/li&gt;
&lt;li&gt;アラインメント違いの比較&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし、その分だけ安全責任はモデル提供者ではなく利用者側に移ります。&lt;/p&gt;
&lt;h2 id=&#34;結論&#34;&gt;結論
&lt;/h2&gt;&lt;p&gt;Gemma 4 E4B のいわゆる「脱獄版」と公式通常版の最も大きな違いは次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;公式版は「ガードレール付きの実用性」を重視&lt;/li&gt;
&lt;li&gt;脱獄版は「拒否を減らした出力継続性」を重視&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは &lt;strong&gt;自動的に高性能になることを意味しません&lt;/strong&gt;。主に &lt;strong&gt;より許容的になる&lt;/strong&gt; だけです。&lt;/p&gt;
&lt;p&gt;安定性、説明可能性、配備のしやすさを重視するなら、まず公式版を使うのが妥当です。ローカル実験目的で、安全性・コンプライアンス・出力リスクを自分で引き受けられる場合に限って、uncensored 派生版を「挙動違いの別バリアント」として比較するのが現実的です。&lt;/p&gt;
&lt;h2 id=&#34;参考リンク&#34;&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Hugging Face: &lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/HauhauCS/Gemma-4-E4B-Uncensored-HauhauCS-Aggressive&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;HauhauCS/Gemma-4-E4B-Uncensored-HauhauCS-Aggressive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hugging Face: &lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/google/gemma-4-E4B-it&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/gemma-4-E4B-it&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Google AI for Developers: &lt;a class=&#34;link&#34; href=&#34;https://ai.google.dev/gemma/prohibited_use_policy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Gemma Prohibited Use Policy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Google AI for Developers: &lt;a class=&#34;link&#34; href=&#34;https://ai.google.dev/gemma/docs/core/model_card&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Gemma model card&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Windows で WSL &#43; Ollama を使って Hermes Agent をローカル導入し、Telegram に接続する</title>
        <link>https://knightli.com/ja/2026/04/18/windows-wsl-ollama-hermes-agent-telegram/</link>
        <pubDate>Sat, 18 Apr 2026 00:48:22 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/18/windows-wsl-ollama-hermes-agent-telegram/</guid>
        <description>&lt;p&gt;&lt;code&gt;Windows&lt;/code&gt; 上でできるだけ手軽に &lt;code&gt;Hermes Agent&lt;/code&gt; を動かしたいなら、比較的やりやすい流れは次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ホスト OS はそのまま Windows を使う&lt;/li&gt;
&lt;li&gt;&lt;code&gt;WSL&lt;/code&gt; 内で &lt;code&gt;Ubuntu&lt;/code&gt; を動かす&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ollama&lt;/code&gt; でローカルモデルを提供する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hermes Agent&lt;/code&gt; からローカル Ollama のエンドポイントへ直接つなぐ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この方法の利点は、環境を比較的きれいに保ちやすく、コマンドも Linux 方式でそろえやすいことです。別に Linux マシンを用意しなくても始められます。&lt;/p&gt;
&lt;h2 id=&#34;全体の流れ&#34;&gt;全体の流れ
&lt;/h2&gt;&lt;p&gt;この構成は 4 ステップに分けられます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;WSL&lt;/code&gt; を有効化して &lt;code&gt;Ubuntu&lt;/code&gt; を入れる&lt;/li&gt;
&lt;li&gt;Ubuntu 内で Python、Node.js、Git などの基本環境を入れる&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ollama&lt;/code&gt; を入れてローカルモデルを取得する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hermes Agent&lt;/code&gt; を入れ、&lt;code&gt;Telegram&lt;/code&gt; を接続する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;まず Hermes Agent を動かすことだけが目的なら、実質的には 3 ステップ目まででかなり近いところまで行けます。&lt;/p&gt;
&lt;h2 id=&#34;1-wsl-と-ubuntu-をインストールする&#34;&gt;1. WSL と Ubuntu をインストールする
&lt;/h2&gt;&lt;p&gt;管理者権限の PowerShell で次を実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wsl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-install&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;インストールが終わったら PC を再起動し、そのあと Ubuntu を入れます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wsl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-install&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-d&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Ubuntu&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;以降のコマンドは、WSL の Ubuntu 側で実行していきます。&lt;/p&gt;
&lt;h2 id=&#34;2-ubuntu-を更新し基本環境を入れる&#34;&gt;2. Ubuntu を更新し、基本環境を入れる
&lt;/h2&gt;&lt;p&gt;まずシステムを更新します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt upgrade -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;そのあと Python、展開ツール、Node.js、Git を入れます。&lt;/p&gt;
&lt;h3 id=&#34;python-をインストール&#34;&gt;Python をインストール
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install python3-pip python3-venv -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;zstd-をインストール&#34;&gt;zstd をインストール
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install -y zstd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;nodejs-をインストール&#34;&gt;Node.js をインストール
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://deb.nodesource.com/setup_22.x &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo -E bash -
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install -y nodejs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;git-をインストール&#34;&gt;Git をインストール
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install -y git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;入れ終わったら、軽く確認しておくと安心です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git --version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;3-ollama-を入れて-gemma-4-を取得する&#34;&gt;3. Ollama を入れて Gemma 4 を取得する
&lt;/h2&gt;&lt;p&gt;Ollama のインストール:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://ollama.com/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Hermes Agent 用にローカルモデルを用意するなら、まずは &lt;code&gt;Gemma 4&lt;/code&gt; から始めるのが無難です。&lt;/p&gt;
&lt;p&gt;たとえば:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run gemma4:e4b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;もしマシンのリソースが弱ければ:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run gemma4:e2b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;より大きい版としては:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run gemma4:26b
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run gemma4:31b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;一般的な &lt;code&gt;Windows + WSL&lt;/code&gt; 環境では、&lt;code&gt;gemma4:e4b&lt;/code&gt; が現実的な出発点になりやすいです。&lt;/p&gt;
&lt;h2 id=&#34;4-hermes-agent-をインストールして設定する&#34;&gt;4. Hermes Agent をインストールして設定する
&lt;/h2&gt;&lt;p&gt;インストールコマンド:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;インストール後、Ollama のローカルエンドポイントを指定します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://127.0.0.1:11434
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;モデル名には実際に使うものを入れます。たとえば:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gemma4:e4b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;インストーラから shell の再読み込みを求められたら:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;source&lt;/span&gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;hermes-agent-のよく使うコマンド&#34;&gt;Hermes Agent のよく使うコマンド
&lt;/h2&gt;&lt;p&gt;普段よく使うのは次のあたりです。&lt;/p&gt;
&lt;h3 id=&#34;起動&#34;&gt;起動
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;再設定&#34;&gt;再設定
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes setup
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;チャットゲートウェイ設定&#34;&gt;チャットゲートウェイ設定
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes setup gateway
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;更新&#34;&gt;更新
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;telegram-接続の基本手順&#34;&gt;Telegram 接続の基本手順
&lt;/h2&gt;&lt;p&gt;Hermes Agent で Telegram の送受信をしたいなら、まずは次を実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes setup gateway
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;そのうえで Telegram 側で次の 2 つを用意します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;BotFather&lt;/code&gt; で bot を作成する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@userinfobot&lt;/code&gt; で自分の &lt;code&gt;User ID&lt;/code&gt; を確認する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらを揃えたら、Hermes Agent のゲートウェイ設定に入力していきます。&lt;/p&gt;
&lt;h2 id=&#34;この構成が向いている人&#34;&gt;この構成が向いている人
&lt;/h2&gt;&lt;p&gt;この方法は、次のような人に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;メイン環境が Windows&lt;/li&gt;
&lt;li&gt;別に Linux マシンを用意したくない&lt;/li&gt;
&lt;li&gt;まずはローカル Agent を動かし、その後チャット連携を広げたい&lt;/li&gt;
&lt;li&gt;できるだけクラウド API ではなくローカルモデルを使いたい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最初から本格的な本番環境を組むのではなく、まずローカルで Agent を試したい人には十分実用的です。&lt;/p&gt;
&lt;h2 id=&#34;注意点&#34;&gt;注意点
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;WSL&lt;/code&gt; はあくまで互換レイヤーなので、極端なケースではネイティブ Linux と完全に同じとは限りません&lt;/li&gt;
&lt;li&gt;大きなモデルが快適に動くかどうかは、RAM、VRAM、CPU / GPU に依存します&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gemma4:e4b&lt;/code&gt; は現実的な出発点ですが、最終的な体感はマシン性能次第です&lt;/li&gt;
&lt;li&gt;Hermes Agent のチャット連携は拡張機能なので、まずローカルモデル経路を通してから Telegram を足すほうが安定しやすいです&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Windows 上でなるべく素直に Hermes Agent をローカル導入するなら、流れは次の順番がやりやすいです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;WSL -&amp;gt; Ubuntu -&amp;gt; Ollama -&amp;gt; Gemma 4 -&amp;gt; Hermes Agent -&amp;gt; Telegram&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;最初にローカルモデルを確実に動かし、そのあとでゲートウェイ接続を追加すると成功率が上がります。多くのユーザーにとって、最初から部品を積みすぎるよりもこのほうが切り分けしやすく、後から拡張もしやすいです。&lt;/p&gt;
&lt;h2 id=&#34;元記事&#34;&gt;元記事
&lt;/h2&gt;&lt;p&gt;この投稿は次のページをもとに整理・リライトしています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;X超哥博客：&lt;a class=&#34;link&#34; href=&#34;https://www.xchaoge.com/21.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;太简单了！Hermes Agent 本地部署（无需API）接入 Telegram + 微信&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>llama-cli -hf でダウンロードした Hugging Face モデルのデフォルト保存先</title>
        <link>https://knightli.com/ja/2026/04/17/llama-cli-hf-download-default-cache-path/</link>
        <pubDate>Fri, 17 Apr 2026 14:48:04 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/17/llama-cli-hf-download-default-cache-path/</guid>
        <description>&lt;p&gt;&lt;code&gt;llama-cli&lt;/code&gt; を使って Hugging Face から直接モデルをダウンロードして実行する場合、たとえば次のように実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-cli -hf unsloth/gemma-4-E4B-it-GGUF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは &lt;code&gt;llama.cpp&lt;/code&gt; に組み込まれている Hugging Face ダウンロード機能です。新しい &lt;code&gt;llama.cpp&lt;/code&gt; では、&lt;code&gt;-hf&lt;/code&gt; でダウンロードしたモデルは標準の Hugging Face Hub キャッシュディレクトリに保存されます。&lt;/p&gt;
&lt;h2 id=&#34;デフォルトのキャッシュ場所&#34;&gt;デフォルトのキャッシュ場所
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;llama-cli -hf&lt;/code&gt; でダウンロードしたモデルのキャッシュ場所は、まず &lt;code&gt;LLAMA_CACHE&lt;/code&gt; 環境変数で制御されます。&lt;code&gt;LLAMA_CACHE&lt;/code&gt; が設定されていない場合は、&lt;code&gt;HF_HUB_CACHE&lt;/code&gt;、&lt;code&gt;HUGGINGFACE_HUB_CACHE&lt;/code&gt;、&lt;code&gt;HF_HOME&lt;/code&gt; などの Hugging Face 関連のキャッシュ変数が確認されます。&lt;/p&gt;
&lt;p&gt;これらの変数がどれも設定されていない場合、主なデフォルトパスは次のとおりです。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;システム&lt;/th&gt;
          &lt;th&gt;デフォルトキャッシュディレクトリ&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Linux&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;~/.cache/huggingface/hub&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;macOS&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;~/.cache/huggingface/hub&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Windows&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;%USERPROFILE%\.cache\huggingface\hub&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Windows では、&lt;code&gt;%USERPROFILE%&lt;/code&gt; は通常次の場所を指します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;C:\Users\用户名
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;そのため、デフォルトのキャッシュディレクトリはおおよそ次のようになります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;C:\Users\用户名\.cache\huggingface\hub
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;llama-cli-のキャッシュディレクトリを変更する方法&#34;&gt;llama-cli のキャッシュディレクトリを変更する方法
&lt;/h2&gt;&lt;p&gt;モデルキャッシュを指定したディスクやディレクトリに置きたい場合は、&lt;code&gt;LLAMA_CACHE&lt;/code&gt; を設定します。Hugging Face の慣例に合わせて &lt;code&gt;HF_HOME&lt;/code&gt; を設定することもできます。その場合、実際の Hub キャッシュディレクトリは &lt;code&gt;$HF_HOME/hub&lt;/code&gt; になります。&lt;/p&gt;
&lt;p&gt;Windows CMD の一時設定例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;set LLAMA_CACHE=D:\models\llama-cache
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-cli -hf unsloth/gemma-4-E4B-it-GGUF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;PowerShell の一時設定例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$env:LLAMA_CACHE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;D:\models\llama-cache&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;llama-cli&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-hf&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;unsloth&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;gemma&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-E4B-it-GGUF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Linux / macOS の一時設定例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;LLAMA_CACHE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/data/models/llama-cache
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-cli -hf unsloth/gemma-4-E4B-it-GGUF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;llama-cli -hf ...&lt;/code&gt; は &lt;code&gt;llama.cpp&lt;/code&gt; のダウンロード機構を使いますが、新しいバージョンでは標準の Hugging Face Hub キャッシュがデフォルトです。&lt;/li&gt;
&lt;li&gt;Linux / macOS デフォルト：&lt;code&gt;~/.cache/huggingface/hub&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Windows デフォルト：&lt;code&gt;%USERPROFILE%\.cache\huggingface\hub&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;場所を変更したい場合：&lt;code&gt;LLAMA_CACHE&lt;/code&gt;、または &lt;code&gt;HF_HOME&lt;/code&gt; / &lt;code&gt;HF_HUB_CACHE&lt;/code&gt; を設定する&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Windows で llama-cli から Hugging Face に直接アクセスすると SSL 証明書検証に失敗する場合の対処</title>
        <link>https://knightli.com/ja/2026/04/17/llama-cli-hugging-face-ssl-certificate-failed-on-windows/</link>
        <pubDate>Fri, 17 Apr 2026 14:20:29 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/17/llama-cli-hugging-face-ssl-certificate-failed-on-windows/</guid>
        <description>&lt;p&gt;Windows で次のコマンドを実行したとします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-cli -hf unsloth/gemma-4-E4B-it-GGUF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;そして、次のようなエラーが表示される場合があります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;get_repo_commit: error: HTTPLIB failed: SSL server verification failed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;error: failed to download model from Hugging Face
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;この場合、問題は CUDA や &lt;code&gt;llama.cpp&lt;/code&gt; 本体ではないことが多いです。多くの場合、現在の環境でプログラムがシステムの証明書チェーンを正しく参照できず、HTTPS の検証に失敗しています。&lt;/p&gt;
&lt;p&gt;ログを見ると、&lt;code&gt;ggml-rpc.dll&lt;/code&gt; と &lt;code&gt;ggml-cpu-alderlake.dll&lt;/code&gt; は正常に読み込まれています。つまり、実行環境自体はおおむね利用可能で、問題は主にモデルのダウンロード段階にあります。&lt;/p&gt;
&lt;h2 id=&#34;一番手軽な方法先にモデルを手動ダウンロードする&#34;&gt;一番手軽な方法：先にモデルを手動ダウンロードする
&lt;/h2&gt;&lt;p&gt;とにかく早く動かしたい場合は、ローカルに手動でダウンロードする方法がもっとも安定しています。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;対象の Hugging Face リポジトリページを開きます。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Files and versions&lt;/code&gt; から必要な &lt;code&gt;.gguf&lt;/code&gt; ファイルをダウンロードします。&lt;/li&gt;
&lt;li&gt;ダウンロード後、ローカルファイルのパスを指定して実行します。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;llama&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cli&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;C&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;\&lt;span class=&#34;n&#34;&gt;Users&lt;/span&gt;\&lt;span class=&#34;n&#34;&gt;knightli&lt;/span&gt;\&lt;span class=&#34;n&#34;&gt;Downloads&lt;/span&gt;\&lt;span class=&#34;n&#34;&gt;gemma&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;e4b&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;it&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;gguf&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;この方法なら、&lt;code&gt;-hf&lt;/code&gt; のダウンロード段階で発生する SSL 検証問題を回避できます。まずモデルが正常に推論できるか確認したい場合に向いています。&lt;/p&gt;
&lt;h2 id=&#34;それでも--hf-の自動ダウンロードを使いたい場合&#34;&gt;それでも &lt;code&gt;-hf&lt;/code&gt; の自動ダウンロードを使いたい場合
&lt;/h2&gt;&lt;p&gt;証明書ファイルのパスを手動で指定し、現在のセッションで利用できる CA 証明書をプログラムに見つけさせます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cacert.pem&lt;/code&gt; は curl 公式が管理している CA Extract ページから取得できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ページ：&lt;a class=&#34;link&#34; href=&#34;https://curl.se/docs/caextract.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://curl.se/docs/caextract.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;直接ダウンロード：&lt;a class=&#34;link&#34; href=&#34;https://curl.se/ca/cacert.pem&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://curl.se/ca/cacert.pem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ブラウザでダウンロードする場合は、上の直接ダウンロード URL を開いて &lt;code&gt;cacert.pem&lt;/code&gt; として保存します。PowerShell で固定ディレクトリにダウンロードすることもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;New-Item&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ItemType&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Directory&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Force&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;C:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;certs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Invoke-WebRequest&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Uri&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;https&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;//&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;curl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;se&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ca&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cacert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;pem&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-OutFile&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;C:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;certs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cacert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;pem&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ダウンロード後、コマンドラインで次のように設定します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;set SSL_CERT_FILE=C:\certs\cacert.pem
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;set CURL_CA_BUNDLE=C:\certs\cacert.pem
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;その後、元のコマンドをもう一度実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-cli -hf unsloth/gemma-4-E4B-it-GGUF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;問題の原因が証明書チェーンにある場合、この方法で解決できることが多いです。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>codex-quota 実践ガイド：コマンドをそのまま使う Local・Web・Docker 運用</title>
        <link>https://knightli.com/ja/2026/04/16/codex-quota-cli-web-docker-guide/</link>
        <pubDate>Thu, 16 Apr 2026 18:13:04 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/16/codex-quota-cli-web-docker-guide/</guid>
        <description>&lt;h2 id=&#34;このプロジェクトは何をするか&#34;&gt;このプロジェクトは何をするか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;codex-quota&lt;/code&gt; は ChatGPT Codex のクォータ使用状況を確認できる軽量ツールで、データ取得元は &lt;code&gt;https://chatgpt.com/backend-api/wham/usage&lt;/code&gt; です。&lt;/p&gt;
&lt;p&gt;主な機能：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;単一アカウント・複数アカウント（&lt;code&gt;account/*.auth.json&lt;/code&gt;）の両方に対応。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;five_hour%&lt;/code&gt;、&lt;code&gt;weekly%&lt;/code&gt;、&lt;code&gt;weekly_reset&lt;/code&gt; を出力し、取得元（&lt;code&gt;network&lt;/code&gt; / &lt;code&gt;cache&lt;/code&gt;）も表示。&lt;/li&gt;
&lt;li&gt;一時的な失敗（&lt;code&gt;408&lt;/code&gt;、&lt;code&gt;429&lt;/code&gt;、&lt;code&gt;5xx&lt;/code&gt;）に対して指数バックオフで再試行。&lt;/li&gt;
&lt;li&gt;ローカルキャッシュを内蔵し、クォータ枯渇時の重複リクエストを削減。&lt;/li&gt;
&lt;li&gt;Web Dashboard、JSON API、auth ファイル管理画面を提供。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;メリット：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;軽量：単体スクリプトで実行でき、依存が少ない。&lt;/li&gt;
&lt;li&gt;実用的：CLI と Web の両方の入口を使える。&lt;/li&gt;
&lt;li&gt;配備しやすい：Docker / Docker Compose をサポート。&lt;/li&gt;
&lt;li&gt;運用しやすい：再試行、キャッシュ、定期更新に対応。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;先にアカウント認証情報を準備する&#34;&gt;先にアカウント認証情報を準備する
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;account/&amp;lt;name&amp;gt;.auth.json&lt;/code&gt; に認証情報ファイルを作成します。例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;tokens&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;access_token&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;eyJ...&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;account_id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;user-xxxxxxxx&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;説明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;access_token&lt;/code&gt; と &lt;code&gt;account_id&lt;/code&gt; は API クエリに必要な項目です。&lt;/li&gt;
&lt;li&gt;ファイル名の &lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt; は出力時のアカウント名として使われます。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;local-cli-の使い方元コマンドを維持&#34;&gt;Local CLI の使い方（元コマンドを維持）
&lt;/h2&gt;&lt;p&gt;依存をインストール：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -r requirements.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;説明：プロジェクトの実行依存をインストールします。&lt;/p&gt;
&lt;p&gt;全アカウントを照会：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python codex_quota.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;説明：&lt;code&gt;account/*.auth.json&lt;/code&gt; を読み込み、全アカウントのクォータを集計表示します。&lt;/p&gt;
&lt;p&gt;単一アカウントを照会：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python codex_quota.py your_account_name
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;説明：&lt;code&gt;account/your_account_name.auth.json&lt;/code&gt; のみを照会します。&lt;/p&gt;
&lt;p&gt;強制更新（キャッシュ無視）：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python codex_quota.py --refresh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;説明：ローカルキャッシュを無視して最新データを直接取得します。&lt;/p&gt;
&lt;h2 id=&#34;cli-オプション説明readme-準拠&#34;&gt;CLI オプション説明（README 準拠）
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;account_name&lt;/code&gt;：任意のアカウント名（&lt;code&gt;.auth.json&lt;/code&gt; なし）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--account-dir&lt;/code&gt;：認証ファイルディレクトリ。デフォルトは &lt;code&gt;account&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--chatgpt-url&lt;/code&gt;：クォータ API エンドポイント。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--raw-json&lt;/code&gt;：JSON レスポンス本文をそのまま表示。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--raw-headers&lt;/code&gt;：レスポンスヘッダーを表示。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--refresh&lt;/code&gt;：キャッシュを無視。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--retries&lt;/code&gt;：再試行回数。デフォルト &lt;code&gt;3&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--retry-delay&lt;/code&gt;：再試行の基本待機秒数。デフォルト &lt;code&gt;2.0&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;web-dashboard-の使い方元コマンドを維持&#34;&gt;Web Dashboard の使い方（元コマンドを維持）
&lt;/h2&gt;&lt;p&gt;サービス起動：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python codex_quota_service.py --host 0.0.0.0 --port &lt;span class=&#34;m&#34;&gt;8081&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;説明：&lt;code&gt;8081&lt;/code&gt; ポートで HTTP サービスを起動します。&lt;/p&gt;
&lt;p&gt;アクセス URL：&lt;code&gt;http://localhost:8081&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Service オプション：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--host&lt;/code&gt;：バインドアドレス。デフォルト &lt;code&gt;0.0.0.0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--port&lt;/code&gt;：ポート。デフォルト &lt;code&gt;8081&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--interval-seconds&lt;/code&gt;：定期更新間隔。デフォルト &lt;code&gt;3600&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--account-dir&lt;/code&gt;：認証ファイルディレクトリ。デフォルト &lt;code&gt;account&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--state-file&lt;/code&gt;：状態ファイルパス。デフォルト &lt;code&gt;&amp;lt;account-dir&amp;gt;/codex_quota_web_results.json&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--account-name&lt;/code&gt;：任意。単一アカウントモード。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--chatgpt-url&lt;/code&gt;：クォータ API エンドポイント。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--retries&lt;/code&gt;：再試行回数。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--retry-delay&lt;/code&gt;：再試行の基本待機。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--refresh&lt;/code&gt;：定期実行時に CLI キャッシュを無視。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;http-エンドポイント自動化向け&#34;&gt;HTTP エンドポイント（自動化向け）
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GET /&lt;/code&gt;：Dashboard 画面。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/results&lt;/code&gt;：最新結果の JSON。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /refresh&lt;/code&gt;：即時更新して &lt;code&gt;/&lt;/code&gt; にリダイレクト。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /auth&lt;/code&gt;：auth ファイル一覧。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /auth/new&lt;/code&gt;：auth ファイル新規作成フォーム。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /auth/edit?name=&amp;lt;account&amp;gt;&lt;/code&gt;：auth ファイル編集フォーム。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /auth/save&lt;/code&gt;：auth ファイル作成/更新。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /auth/delete&lt;/code&gt;：auth ファイル削除。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;docker-の使い方元コマンドを維持&#34;&gt;Docker の使い方（元コマンドを維持）
&lt;/h2&gt;&lt;p&gt;イメージをビルド：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker build -t codex-quota .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;説明：現在のプロジェクトを &lt;code&gt;codex-quota&lt;/code&gt; イメージとしてビルドします。&lt;/p&gt;
&lt;p&gt;コンテナ起動（8081 をマッピング）：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run --rm -p 8081:8081 -v ./account:/app/account codex-quota
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;説明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--rm&lt;/code&gt;：終了後にコンテナを自動削除。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-p 8081:8081&lt;/code&gt;：ホストポートをコンテナポートへマッピング。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-v ./account:/app/account&lt;/code&gt;：ローカル認証ディレクトリをコンテナにマウント。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;アクセス URL：&lt;code&gt;http://localhost:8081&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;docker-compose-の使い方元コマンドを維持&#34;&gt;Docker Compose の使い方（元コマンドを維持）
&lt;/h2&gt;&lt;p&gt;起動：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up --build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;説明：&lt;code&gt;docker-compose.yml&lt;/code&gt; に従ってビルド・起動します。&lt;/p&gt;
&lt;p&gt;アクセス URL：&lt;code&gt;http://localhost:8081&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;運用のヒント&#34;&gt;運用のヒント
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;複数アカウント運用では、まず Dashboard で一元管理するのがおすすめです。&lt;/li&gt;
&lt;li&gt;通知や自動連携には &lt;code&gt;GET /api/results&lt;/code&gt; を優先すると扱いやすいです。&lt;/li&gt;
&lt;li&gt;公開リポジトリに実際の &lt;code&gt;access_token&lt;/code&gt; をコミットしないでください。&lt;/li&gt;
&lt;li&gt;一時エラーが多い場合は &lt;code&gt;--retries&lt;/code&gt; と &lt;code&gt;--retry-delay&lt;/code&gt; を増やしてください。&lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        <item>
        <title>VS Code に Claude を接続する: API 設定からページ生成まで</title>
        <link>https://knightli.com/ja/2026/04/16/vscode-claude-api-coding-workflow/</link>
        <pubDate>Thu, 16 Apr 2026 17:47:17 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/16/vscode-claude-api-coding-workflow/</guid>
        <description>&lt;p&gt;大規模言語モデルを日常の開発に取り入れ始めると、最初に変わるのは「コードが書けるかどうか」よりも、「細かく散らばった作業をまとめて前に進められるかどうか」です。&lt;/p&gt;
&lt;p&gt;こうしたツールの価値は、数行補完してくれることだけではありません。エディタの中で対話しながら、ファイルを編集し、結果を確認し、そのまま次の修正に進めることにあります。簡単なページ作成、プロトタイプ検証、見た目の調整、小さな機能追加では、この流れのほうが手作業で行き来するより自然に感じられることが多いです。&lt;/p&gt;
&lt;p&gt;この記事では、&lt;code&gt;VS Code&lt;/code&gt; に &lt;code&gt;Claude&lt;/code&gt; 系モデルを接続したあと、実際にページ生成や小さな機能改善へどう活かすかを整理します。&lt;/p&gt;
&lt;h2 id=&#34;1-まずはツールチェーンをつなぐ&#34;&gt;1. まずはツールチェーンをつなぐ
&lt;/h2&gt;&lt;p&gt;この種の AI コーディングプラグインの基本的な流れはだいたい同じです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;VS Code&lt;/code&gt; に対話型コード編集に対応したプラグインを入れる&lt;/li&gt;
&lt;li&gt;モデルサービスの &lt;code&gt;Base URL&lt;/code&gt; を設定する&lt;/li&gt;
&lt;li&gt;自分の &lt;code&gt;API Key&lt;/code&gt; を登録する&lt;/li&gt;
&lt;li&gt;使用するモデル名を選ぶ&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ここまで終わってはじめて、エディタ内の AI 機能が実用段階に入ります。その後の使い勝手の差は、「使えるかどうか」よりも、「モデルの品質はどうか」「対話の体験が自然か」「生成結果が安定しているか」に出やすいです。&lt;/p&gt;
&lt;p&gt;初めて設定する場合は、次のように考えると分かりやすいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プラグインは自然言語の依頼をエディタ上の操作に変換する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;API&lt;/code&gt; はその依頼をモデルサービスへ送る&lt;/li&gt;
&lt;li&gt;モデルは意図を解釈してコードや修正案を返す&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、実際に合わせるべき要素は、プラグイン、接続先 URL、モデル名の 3 つです。&lt;/p&gt;
&lt;h2 id=&#34;2-最初は小さなタスクから始める&#34;&gt;2. 最初は小さなタスクから始める
&lt;/h2&gt;&lt;p&gt;最初から「丸ごと 1 つのプロジェクトを作ってほしい」と考える人は多いですが、期待値をうまく作るには、むしろ小さなタスクから始めるほうが現実的です。&lt;/p&gt;
&lt;p&gt;たとえば:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;シンプルなフロントエンドページを作る&lt;/li&gt;
&lt;li&gt;既存ページにお知らせ欄を追加する&lt;/li&gt;
&lt;li&gt;登録フォームを足す&lt;/li&gt;
&lt;li&gt;UI を少し整えて、より正式な見た目にする&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうしたタスクが向いている理由は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;指示が明確で、モデルが理解しやすい&lt;/li&gt;
&lt;li&gt;結果をすぐにプレビューできる&lt;/li&gt;
&lt;li&gt;対話とコード修正の連動が見えやすい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;要求が具体的であれば、プラグインはサイドバーで会話しながら、同時にファイルも編集してくれます。その後で結果を見て、ページを確認し、次の要望を足す。このリズムは、単なるチャットより実際の作業に近いものです。&lt;/p&gt;
&lt;h2 id=&#34;3-本当の効率化は一発生成ではなく継続的な反復にある&#34;&gt;3. 本当の効率化は一発生成ではなく継続的な反復にある
&lt;/h2&gt;&lt;p&gt;AI コーディングで誤解されやすいのは、「最初の生成結果がどれだけすごいか」に意識が寄りすぎることです。&lt;/p&gt;
&lt;p&gt;実際に重要なのは、2 回目、3 回目の修正でもちゃんと前に進めるかどうかです。&lt;/p&gt;
&lt;p&gt;よくある流れはこうです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まず動くページの土台を作らせる&lt;/li&gt;
&lt;li&gt;そのあとで 1 つか 2 つ機能を追加する&lt;/li&gt;
&lt;li&gt;コードと UI が一緒に整っていくかを見る&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ツールの体験が良ければ、とても仕事の速いジュニア開発者と組んでいる感覚に近くなります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;こちらが要件を伝える&lt;/li&gt;
&lt;li&gt;まず 1 版目が出る&lt;/li&gt;
&lt;li&gt;足りない点を指摘する&lt;/li&gt;
&lt;li&gt;そのまま修正が続く&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうした対話ベースの反復こそが、実際の開発に近く、効率差が出やすい部分です。&lt;/p&gt;
&lt;h2 id=&#34;4-ai-に任せる部分と自分で直したほうが早い部分を分ける&#34;&gt;4. AI に任せる部分と自分で直したほうが早い部分を分ける
&lt;/h2&gt;&lt;p&gt;ここもかなり大事です。&lt;/p&gt;
&lt;p&gt;ページレイアウト、コンポーネントの初稿、フォームの骨組み、スタイルの整え、仮の文言、繰り返しが多いコードは、AI に任せやすい領域です。&lt;/p&gt;
&lt;p&gt;一方で、次のような小さな変更だけなら:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ボタン文言を 1 行変える&lt;/li&gt;
&lt;li&gt;フッターの説明を少し直す&lt;/li&gt;
&lt;li&gt;ほんの小さなスタイルを調整する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;自分でその場で直したほうが速いことが多いです。そこまで小さい変更なら、改めてモデルに依頼するコストのほうが大きくなりやすいからです。&lt;/p&gt;
&lt;p&gt;効率のよい使い方は、「全部 AI に任せること」ではなく、「大きな塊は任せる、小さな仕上げは自分でやる」と切り分けることです。&lt;/p&gt;
&lt;h2 id=&#34;5-api-設定は最初の壁だが本質的には難しくない&#34;&gt;5. API 設定は最初の壁だが、本質的には難しくない
&lt;/h2&gt;&lt;p&gt;つまずく人の多くは、コーディングそのものではなく設定で止まります。&lt;/p&gt;
&lt;p&gt;確認すべき点はだいたい次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;接続先 URL が正しいか&lt;/li&gt;
&lt;li&gt;キーが有効か&lt;/li&gt;
&lt;li&gt;モデル名がサービス側と一致しているか&lt;/li&gt;
&lt;li&gt;プラグインが特定の &lt;code&gt;Base URL&lt;/code&gt; 形式を要求していないか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このどれかがずれると、プラグイン自体は開いていても、実際のリクエストだけ失敗することがあります。&lt;/p&gt;
&lt;p&gt;そのため、うまく動かないときの確認順としては:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;URL を確認する&lt;/li&gt;
&lt;li&gt;キーを確認する&lt;/li&gt;
&lt;li&gt;モデル名と URL 形式を確認する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;この順番で見れば、多くの接続トラブルは素早く切り分けられます。&lt;/p&gt;
&lt;h2 id=&#34;6-生成結果を使い続ける価値があるかどうか&#34;&gt;6. 生成結果を使い続ける価値があるかどうか
&lt;/h2&gt;&lt;p&gt;見るべきなのは「派手かどうか」ではなく、次の点です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;生成されたページがすぐ動くか&lt;/li&gt;
&lt;li&gt;構造がある程度わかりやすいか&lt;/li&gt;
&lt;li&gt;追加の指示を出しても大きく逸れないか&lt;/li&gt;
&lt;li&gt;修正範囲が広がっても一貫性を保てるか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;1 回か 2 回の往復で、真っ白な状態から「ここから育てられるページ」まで進むなら、そのツールには十分な実用性があります。&lt;/p&gt;
&lt;p&gt;逆に毎回大きく手直しが必要なら、効率化ではなく、単に「コードを書く」作業が「コードをレビューする」作業に置き換わっているだけです。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;VS Code&lt;/code&gt; で &lt;code&gt;Claude&lt;/code&gt; 系モデルを使う魅力は、「もうコードを書かなくてよくなること」ではありません。散らばっていて反復的で、思考を止めやすい作業をまとめて前に進められることです。&lt;/p&gt;
&lt;p&gt;より現実的な使い方は次のような形です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;まず AI にページや機能の土台を作らせる&lt;/li&gt;
&lt;li&gt;2 回か 3 回の対話で磨き込む&lt;/li&gt;
&lt;li&gt;最後の細かな確定修正は自分で行う&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この形なら、AI は開発をすべて置き換える存在ではなく、作業を加速する相棒として機能します。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude の本人確認：なぜ必要か、何を準備するか、データはどう扱われるか</title>
        <link>https://knightli.com/ja/2026/04/16/claude-identity-verification-guide/</link>
        <pubDate>Thu, 16 Apr 2026 09:20:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/16/claude-identity-verification-guide/</guid>
        <description>&lt;p&gt;Anthropic は Claude 上で本人確認を段階的に導入しています。公式説明によると、これは単に利用のハードルを上げるためではなく、プラットフォームの完全性、安全性、コンプライアンス、不正利用防止の一部です。&lt;/p&gt;
&lt;p&gt;簡単に言うと、Claude の本人確認は主に 3 つの問題に対応します。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;強力な AI ツールを使っている人が誰かを確認する。&lt;/li&gt;
&lt;li&gt;利用ポリシーの執行を助け、不正利用リスクを下げる。&lt;/li&gt;
&lt;li&gt;必要な法的・コンプライアンス上の義務を満たす。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Claude の一部機能にアクセスするときに本人確認の案内が表示された場合、通常はプラットフォームの安全性とコンプライアンス確認の一環と考えられます。Anthropic は、確認データは本人確認のためだけに使い、他の目的には使わないとも説明しています。&lt;/p&gt;
&lt;h2 id=&#34;01-いつ本人確認が求められるか&#34;&gt;01 いつ本人確認が求められるか
&lt;/h2&gt;&lt;p&gt;公式ドキュメントは、すべての発動条件を完全な一覧として示しているわけではありません。本人確認は一部のユースケースに向けて展開中であり、特定機能へのアクセス時に表示される可能性がある、と説明しています。&lt;/p&gt;
&lt;p&gt;つまり、確認画面が出たからといって必ずアカウントに問題があるわけではありません。よくあるのは次のようなケースです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;より高い信頼レベルが必要な機能を使っている。&lt;/li&gt;
&lt;li&gt;プラットフォームが整合性チェックを行っている。&lt;/li&gt;
&lt;li&gt;アカウントや利用状況が安全性・コンプライアンスのフローに入った。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ユーザー側で重要なのは、確認に何が必要かを事前に把握し、途中で止まらないようにすることです。&lt;/p&gt;
&lt;h2 id=&#34;02-誰が確認を処理するか&#34;&gt;02 誰が確認を処理するか
&lt;/h2&gt;&lt;p&gt;Claude の本人確認は、Anthropic と第三者確認サービス &lt;code&gt;Persona Identities&lt;/code&gt; が連携して行います。&lt;/p&gt;
&lt;p&gt;Anthropic が Persona を選んだ理由として、公式文書では次が挙げられています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;技術力&lt;/li&gt;
&lt;li&gt;プライバシー管理&lt;/li&gt;
&lt;li&gt;セキュリティ保護&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、Anthropic は確認データの利用と保存ルールを定め、Persona は Anthropic の指示に従って具体的な確認フローを処理します。&lt;/p&gt;
&lt;h2 id=&#34;03-何を準備するか&#34;&gt;03 何を準備するか
&lt;/h2&gt;&lt;p&gt;確認を始める前に、次の 3 つを準備しておくとよいです。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;必要なもの&lt;/th&gt;
          &lt;th&gt;説明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;有効な政府発行の顔写真付き身分証&lt;/td&gt;
          &lt;td&gt;物理的な原本が手元に必要&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;カメラ付きのスマートフォンまたは PC&lt;/td&gt;
          &lt;td&gt;ライブ自撮り、または Web カメラが必要になる場合がある&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;数分の時間&lt;/td&gt;
          &lt;td&gt;公式説明では通常 5 分未満&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;身分証が手元になかったり、カメラが使えなかったりすると、確認フローが中断される可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;04-受け付けられる身分証&#34;&gt;04 受け付けられる身分証
&lt;/h2&gt;&lt;p&gt;Anthropic は、多くの国の原本・物理的・政府発行の顔写真付き身分証を受け付けます。一般的な例は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;パスポート&lt;/li&gt;
&lt;li&gt;運転免許証&lt;/li&gt;
&lt;li&gt;州、省、地域の ID&lt;/li&gt;
&lt;li&gt;国民 ID カード&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;身分証は次の条件を満たす必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;政府発行である&lt;/li&gt;
&lt;li&gt;本人写真が含まれている&lt;/li&gt;
&lt;li&gt;はっきり読める&lt;/li&gt;
&lt;li&gt;破損していない&lt;/li&gt;
&lt;li&gt;コピーやスクリーンショットではない&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;05-受け付けられないもの&#34;&gt;05 受け付けられないもの
&lt;/h2&gt;&lt;p&gt;次のものは、Claude の本人確認には通常使えません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コピー&lt;/li&gt;
&lt;li&gt;スクリーンショット&lt;/li&gt;
&lt;li&gt;スキャン画像&lt;/li&gt;
&lt;li&gt;身分証写真をさらに撮影した画像&lt;/li&gt;
&lt;li&gt;モバイル運転免許証などのデジタル身分証&lt;/li&gt;
&lt;li&gt;学生証、社員証、図書館カード、銀行カードなどの非政府 ID&lt;/li&gt;
&lt;li&gt;一時的な紙の身分証&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ここは間違えやすいポイントです。「読めればよい」のではなく、原本・物理的・政府発行の身分証が必要です。&lt;/p&gt;
&lt;h2 id=&#34;06-データはどう保護されるか&#34;&gt;06 データはどう保護されるか
&lt;/h2&gt;&lt;p&gt;この部分は、公式文書の中でも特に重要です。&lt;/p&gt;
&lt;p&gt;Anthropic の説明は次のように要約できます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Anthropic は確認データのデータ管理者であり、利用と保存のルールを定めます。&lt;/li&gt;
&lt;li&gt;Persona は処理者として、Anthropic の代理で確認を行います。&lt;/li&gt;
&lt;li&gt;身分証と自撮り写真は Persona が収集・保存し、Anthropic のシステムには直接保存されません。&lt;/li&gt;
&lt;li&gt;Anthropic は必要な場合、たとえば異議申し立ての審査時に、Persona のプラットフォームを通じて確認記録にアクセスできます。&lt;/li&gt;
&lt;li&gt;Persona がデータを使える範囲は契約で制限されており、主に確認の提供・支援と不正防止能力の改善に限られます。&lt;/li&gt;
&lt;li&gt;Persona に送信されるデータは、転送中も保存中も暗号化されます。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;つまり、提出した身分証や自撮り写真は、通常のアカウント情報として自由に使われるのではなく、本人確認とコンプライアンスのフローに限定されます。&lt;/p&gt;
&lt;h2 id=&#34;07-anthropic-がしないこと&#34;&gt;07 Anthropic がしないこと
&lt;/h2&gt;&lt;p&gt;公式文書では、Anthropic がしないことも明示されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本人確認データをモデル訓練に使わない。&lt;/li&gt;
&lt;li&gt;本人確認に必要な範囲を超えて情報を収集しない。&lt;/li&gt;
&lt;li&gt;身分データをマーケティング、広告、確認と無関係な目的に使わない。&lt;/li&gt;
&lt;li&gt;有効な法的手続きへの対応が必要な場合を除き、無関係な第三者と確認データを共有しない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これはユーザーにとって重要です。本人確認で敏感なのは、身分証の写真を撮ること自体だけでなく、その後データがどう使われるかです。この文書での Anthropic の立場は、確認データは本人確認、法的義務、安全性・コンプライアンスのために限定して使う、というものです。&lt;/p&gt;
&lt;h2 id=&#34;08-確認に失敗した場合&#34;&gt;08 確認に失敗した場合
&lt;/h2&gt;&lt;p&gt;確認失敗は必ずしもアカウント異常を意味しません。よくある原因は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;写真がぼやけている&lt;/li&gt;
&lt;li&gt;光量が足りない&lt;/li&gt;
&lt;li&gt;身分証の情報が読み取れない&lt;/li&gt;
&lt;li&gt;身分証が期限切れ&lt;/li&gt;
&lt;li&gt;技術的な問題&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;公式は次の順序を勧めています。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;再試行する。確認フローでは通常、複数回の試行が可能です。&lt;/li&gt;
&lt;li&gt;より明るい環境で撮り直す。&lt;/li&gt;
&lt;li&gt;身分証が鮮明で、完全で、期限切れでないことを確認する。&lt;/li&gt;
&lt;li&gt;他の政府発行の顔写真付き身分証があれば、それを試す。&lt;/li&gt;
&lt;li&gt;試行回数を使い切っても確認できない場合は、公式フォームからサポートに連絡する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;実際には、光の良い場所に移動し、カメラのピントを合わせ直すだけで解決することがよくあります。&lt;/p&gt;
&lt;h2 id=&#34;09-確認後もアカウントが停止される理由&#34;&gt;09 確認後もアカウントが停止される理由
&lt;/h2&gt;&lt;p&gt;本人確認に通ったからといって、アカウントが絶対に制限されないわけではありません。Anthropic は、安全プロセス上の他の理由でアカウントが停止される可能性があると説明しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;利用ポリシーへの反復違反&lt;/li&gt;
&lt;li&gt;サポート対象外の場所からアカウントを作成した&lt;/li&gt;
&lt;li&gt;利用規約違反&lt;/li&gt;
&lt;li&gt;18 歳未満の利用&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;誤って停止されたと思う場合は、公式の異議申し立てフォームにアカウント情報を記入し、安全チームによる調査を依頼できます。&lt;/p&gt;
&lt;h2 id=&#34;10-ユーザーが準備すべきこと&#34;&gt;10 ユーザーが準備すべきこと
&lt;/h2&gt;&lt;p&gt;Claude を継続して使う予定があるなら、特に高い信頼レベルが必要な機能を使う場合、次を準備しておくとよいです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;有効で期限切れではない、物理的な政府発行の顔写真付き身分証を用意する。&lt;/li&gt;
&lt;li&gt;カメラが使えることを確認する。スマートフォンと PC の両方で確認ページを開けると安心。&lt;/li&gt;
&lt;li&gt;明るい環境で確認する。&lt;/li&gt;
&lt;li&gt;スクリーンショット、スキャン画像、身分証写真の再撮影画像をアップロードしない。&lt;/li&gt;
&lt;li&gt;確認に失敗したら、まず身分証の鮮明さと光量を確認し、それでもだめならサポートに連絡する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;多くのユーザーにとって、Claude の本人確認は複雑な手続きではありません。ただし、提出物の真正性には厳格です。正しい種類の身分証を使い、写真が鮮明であれば、通常は数分で完了します。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://support.claude.com/zh-CN/articles/14328960-claude-%E4%B8%8A%E7%9A%84%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude 上的身份验证 - Anthropic Help Center&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/legal/privacy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic プライバシーポリシー&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Codex の利用枠の考え方：5時間制限、週次制限、Credit 消費</title>
        <link>https://knightli.com/ja/2026/04/15/codex-usage-limits-five-hour-weekly-credits/</link>
        <pubDate>Wed, 15 Apr 2026 22:50:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/15/codex-usage-limits-five-hour-weekly-credits/</guid>
        <description>&lt;p&gt;Codex の利用枠を見ると、最初は &lt;code&gt;5時間制限&lt;/code&gt; が短期の残高で、それを使い切ってから &lt;code&gt;週次制限&lt;/code&gt; が減り始めるように見えます。&lt;/p&gt;
&lt;p&gt;しかし実際は違います。Codex は複数の制限ウィンドウを同時に確認している、と考える方が自然です。短いウィンドウは短時間の大量利用を防ぎ、週次ウィンドウは一週間の総量を制御します。1 回の Codex 利用は通常、その両方に反映されます。&lt;/p&gt;
&lt;p&gt;そのため、次のような状態は一般的には正常です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;5時間枠はまだ多く残っている
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;しかし weekly 枠はすでに減っている
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;01-まず結論&#34;&gt;01 まず結論
&lt;/h2&gt;&lt;p&gt;Codex の利用枠は、まず次の 3 点で理解できます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;5時間制限&lt;/code&gt; と &lt;code&gt;週次制限&lt;/code&gt; は同時に有効であり、順番に消費されるものではありません。&lt;/li&gt;
&lt;li&gt;週次制限を使い切ると、5時間枠が残っていても同じサブスクリプション枠では通常続けて使えません。&lt;/li&gt;
&lt;li&gt;Codex は単純なメッセージ数ではなく、モデル、tokens、タスクの複雑さ、コンテキスト、実行場所に影響されます。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;疑似コードで書くとこうです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;can_use_codex =
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    five_hour_remaining &amp;gt; 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;amp;&amp;amp; weekly_remaining &amp;gt; 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;amp;&amp;amp; 他の製品ポリシー制限に触れていない
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;5時間ウィンドウがリセットされても、戻るのは 5時間枠だけです。weekly 枠は戻りません。weekly は自分の reset を待つか、対応プランで追加 credits を購入する必要があります。&lt;/p&gt;
&lt;h2 id=&#34;02-なぜ両方のウィンドウが減るのか&#34;&gt;02 なぜ両方のウィンドウが減るのか
&lt;/h2&gt;&lt;p&gt;Codex の利用枠は 2 つのゲートとして考えるとわかりやすいです。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;ウィンドウ&lt;/th&gt;
          &lt;th&gt;役割&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;5時間ウィンドウ&lt;/td&gt;
          &lt;td&gt;短時間の高頻度利用を防ぐ&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;週次ウィンドウ&lt;/td&gt;
          &lt;td&gt;一週間の総使用量を制御する&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Codex タスクごとに実際の消費が発生し、その消費が関連する rate limit ウィンドウに反映されます。&lt;/p&gt;
&lt;p&gt;つまり、こうではありません。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;先に 5時間枠を使う
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;5時間枠を使い切ったら
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;週次枠を使う
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;より近いのはこうです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1 回の Codex リクエスト
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;=&amp;gt; 5時間ウィンドウに計上
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;=&amp;gt; 同時に週次ウィンドウにも計上
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これが「5時間枠が残っているのに weekly も減る」理由です。&lt;/p&gt;
&lt;h2 id=&#34;03-今は-token-based-credits-を見る&#34;&gt;03 今は token-based credits を見る
&lt;/h2&gt;&lt;p&gt;OpenAI は、ユーザーが完全に再計算できる Codex の課金式を公開していません。公開されているのは rate card、影響要因、モデル別の credit 単価です。&lt;/p&gt;
&lt;p&gt;2026-04-15 時点では、Codex rate card の主な考え方は &lt;code&gt;token-based credits&lt;/code&gt; です。入力 tokens、キャッシュ入力 tokens、出力 tokens から credits に換算されます。&lt;/p&gt;
&lt;p&gt;公式の価格例は次の通りです。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;モデル&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;入力 / 1M tokens&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;キャッシュ入力 / 1M tokens&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;出力 / 1M tokens&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;62.50 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6.250 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;375 credits&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4-Mini&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18.75 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1.875 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;113 credits&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.3-Codex&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.75 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4.375 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;350 credits&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.2-Codex&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.75 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4.375 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;350 credits&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.1-Codex-Max&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;31.25 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3.125 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;250 credits&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.1-Codex-mini&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6.25 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;0.625 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50 credits&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;ざっくりした見積もりは次のようになります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;今回の消費
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;≈ 入力 tokens / 1,000,000 × モデルの入力単価
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ キャッシュ入力 tokens / 1,000,000 × モデルのキャッシュ入力単価
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ 出力 tokens / 1,000,000 × モデルの出力単価
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは正確な請求式ではありませんが、傾向の説明には十分です。出力は高く、長いコンテキストも高く、高性能モデルほど高くなります。公式 rate card では、&lt;code&gt;Fast mode&lt;/code&gt; は 2 倍の credits を消費し、&lt;code&gt;Code review&lt;/code&gt; は GPT-5.3-Codex の価格を使うとも説明されています。&lt;/p&gt;
&lt;h2 id=&#34;04-メッセージ数だけで見ない&#34;&gt;04 メッセージ数だけで見ない
&lt;/h2&gt;&lt;p&gt;同じ 10 回の Codex メッセージでも、消費量は大きく変わります。&lt;/p&gt;
&lt;p&gt;軽いタスクは通常少なめです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;小さな関数を修正する&lt;/li&gt;
&lt;li&gt;短いコードを説明する&lt;/li&gt;
&lt;li&gt;短い文章を書く&lt;/li&gt;
&lt;li&gt;明確なファイル内で局所的に変更する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;重いタスクは高くなります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;大きなコードベースをスキャンする&lt;/li&gt;
&lt;li&gt;長時間 agent を動かす&lt;/li&gt;
&lt;li&gt;読み取り、編集、テスト、修正を何度も繰り返す&lt;/li&gt;
&lt;li&gt;大量のコードや長いレポートを生成する&lt;/li&gt;
&lt;li&gt;cloud task を使う&lt;/li&gt;
&lt;li&gt;fast mode を有効にする&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、&lt;code&gt;メッセージ数&lt;/code&gt; はかなり粗い目安にすぎません。実際の消費量を判断するには不十分です。&lt;/p&gt;
&lt;h2 id=&#34;05-local-task-と-cloud-task-の違い&#34;&gt;05 local task と cloud task の違い
&lt;/h2&gt;&lt;p&gt;消費量の差が出やすいのは実行場所です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;local task&lt;/code&gt; は、ローカルのワークスペースでファイルを読み、コードを編集し、コマンドを実行するものです。&lt;code&gt;cloud task&lt;/code&gt; は、タスクをクラウド環境に任せて実行するもので、長く自動化された処理に向いています。&lt;/p&gt;
&lt;p&gt;cloud task は多くの場合、より高くなります。理由は単純です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;クラウド実行環境が必要&lt;/li&gt;
&lt;li&gt;タスクが長くなりやすい&lt;/li&gt;
&lt;li&gt;ツール呼び出しが多い&lt;/li&gt;
&lt;li&gt;コンテキストが大きい&lt;/li&gt;
&lt;li&gt;自動化の流れがより完全&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;通常のコード編集、記事整理、小さな修正なら local task の方が節約しやすいです。cloud task は本当にクラウド実行が必要なときに使うのがよいです。&lt;/p&gt;
&lt;h2 id=&#34;06-weekly-が早く減る理由&#34;&gt;06 weekly が早く減る理由
&lt;/h2&gt;&lt;p&gt;5時間枠はあまり減っていないのに weekly が大きく減る場合、よくある理由は次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;cloud task を使った。&lt;/li&gt;
&lt;li&gt;高いモデルを使った。&lt;/li&gt;
&lt;li&gt;fast mode を有効にした。&lt;/li&gt;
&lt;li&gt;コンテキストが大きく、多くのファイルや長い会話を扱った。&lt;/li&gt;
&lt;li&gt;出力が長かった。大量のコード、長いレポート、ログ分析など。&lt;/li&gt;
&lt;li&gt;タスクチェーンが長かった。検索、編集、テスト、修正、再テストなど。&lt;/li&gt;
&lt;li&gt;自作の利用枠スクリプトがウィンドウ名を誤って解釈した。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;/backend-api/wham/usage&lt;/code&gt; のようなフィールドをスクリプトで読んでいる場合、加工後の &lt;code&gt;five_hour%&lt;/code&gt; や &lt;code&gt;weekly%&lt;/code&gt; だけを信用しない方が安全です。raw JSON で次の値を確認します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;limit_window_seconds&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;percent_left&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;reset_at&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;bucket / feature 名&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;典型的なウィンドウは次のように判断できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;limit_window_seconds = 18000
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;=&amp;gt; 約 5 時間
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;limit_window_seconds = 604800
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;=&amp;gt; 約 7 日
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;スクリプトが 2 つのウィンドウを逆にラベル付けしていると、利用枠表示は誤解を招きます。&lt;/p&gt;
&lt;h2 id=&#34;07-利用枠を節約する使い方&#34;&gt;07 利用枠を節約する使い方
&lt;/h2&gt;&lt;p&gt;weekly を長持ちさせるには、次のように使います。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;大きなタスクを小さく分ける。&lt;/li&gt;
&lt;li&gt;可能なら local task を優先する。&lt;/li&gt;
&lt;li&gt;関連パスを明確に伝え、不要なスキャンを減らす。&lt;/li&gt;
&lt;li&gt;巨大なログ、長いファイル、無関係なコンテキストを一度に入れない。&lt;/li&gt;
&lt;li&gt;軽い作業には安い mini モデルを使う。&lt;/li&gt;
&lt;li&gt;長い作業の前に、まず計画を出してもらう。&lt;/li&gt;
&lt;li&gt;長いレポートが不要なら、簡潔に答えるよう指定する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;覚えやすいモデルはこれです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;続けて使えるか
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;= 短いウィンドウに残量がある
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;amp;&amp;amp; 週次ウィンドウに残量がある
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;消費の速さ
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;= モデル価格
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;× tokens
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;× 出力の長さ
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;× タスクの複雑さ
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;× 実行場所
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは正確な請求計算ではありませんが、ほとんどの Codex 利用枠の挙動を説明できます。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/11369540-using-codex-with-your-chatgpt-plan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Using Codex with your ChatGPT plan - OpenAI Help Center&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/11481834&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ChatGPT Rate Card - OpenAI Help Center&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/zh-hans-cn/articles/20001106-codex-rate-card&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Codex rate card - OpenAI Help Center&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/12642688-using-credits-for-flexible-usage-in-chatgpt-pluspro&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Using Credits for Flexible Usage in ChatGPT - OpenAI Help Center&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>RAGFlowプロジェクト整理：オープンソースRAGエンジンの機能と使い方</title>
        <link>https://knightli.com/ja/2026/04/15/ragflow-rag-engine-guide/</link>
        <pubDate>Wed, 15 Apr 2026 22:09:25 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/15/ragflow-rag-engine-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;RAGFlow&lt;/code&gt; は &lt;code&gt;infiniflow&lt;/code&gt; によるオープンソースの RAG（Retrieval-Augmented Generation）エンジンです。単なる「ドキュメントをアップロードして質問する」ための薄いナレッジベース外殻ではなく、ドキュメント解析、チャンク分割、検索、リランキング、引用の追跡、モデル設定、Agent 機能、API 統合までを一つのワークフローにまとめることを目指しています。&lt;/p&gt;
&lt;p&gt;企業向けナレッジベース、ドキュメント Q&amp;amp;A、サポートアシスタント、社内情報検索、あるいは LLM により信頼できるコンテキスト層を持たせたい場合、RAGFlow は重点的に見る価値のあるオープンソース案の一つです。&lt;/p&gt;
&lt;h2 id=&#34;01-ragflow-は何を解決するのか&#34;&gt;01 RAGFlow は何を解決するのか
&lt;/h2&gt;&lt;p&gt;一般的な RAG システムがぶつかりやすい問題は主に三つあります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ドキュメント解析の品質が安定しない。特に PDF、スキャン文書、表、画像、複雑なレイアウトで起きやすい。&lt;/li&gt;
&lt;li&gt;チャンク分割戦略が見えにくく、検索ヒットはしていても実際の文脈が不完全になりやすい。&lt;/li&gt;
&lt;li&gt;回答に信頼できる引用がなく、利用者が出典を確認しにくい。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;RAGFlow はまさにこの部分に力を入れています。README では &lt;code&gt;Deep document understanding&lt;/code&gt;、テンプレート化されたチャンク分割、チャンクの可視化、引用のグラウンディング、多経路検索とリランキングが強調されています。つまり、単にベクトルデータベースとチャット UI をつなぐのではなく、「高品質な入力が高品質な回答につながる」ことを重視しているということです。&lt;/p&gt;
&lt;h2 id=&#34;02-主な機能&#34;&gt;02 主な機能
&lt;/h2&gt;&lt;h3 id=&#34;1-高度なドキュメント理解&#34;&gt;1. 高度なドキュメント理解
&lt;/h3&gt;&lt;p&gt;RAGFlow は複雑な非構造化データから知識を抽出できます。README に挙げられている形式には Word、PPT、Excel、TXT、画像、スキャン文書、構造化データ、Web ページなどがあります。&lt;/p&gt;
&lt;p&gt;これは企業ナレッジベースにとって非常に重要です。現実の資料はきれいな Markdown ではなく、契約書、レポート、表、スキャン PDF、製品マニュアル、スクリーンショット、Web ページが混在していることが多いからです。解析品質が低いと、その後のベクトル検索も LLM の回答も弱くなります。&lt;/p&gt;
&lt;h3 id=&#34;2-テンプレート化されたチャンク分割&#34;&gt;2. テンプレート化されたチャンク分割
&lt;/h3&gt;&lt;p&gt;RAGFlow はテンプレートベースの chunking を提供します。ここでの価値は、チャンク分割がブラックボックスではなく、文書タイプに応じてより適切な戦略を選べることです。&lt;/p&gt;
&lt;p&gt;たとえば通常の記事、論文、表、Q&amp;amp;A 文書、画像説明、契約条項では、チャンクの粒度や境界の考え方が異なります。テンプレート化された分割により、「文が途中で切れる」「表の文脈が失われる」「見出しと本文が分かれてしまう」といった問題を減らせます。&lt;/p&gt;
&lt;h3 id=&#34;3-追跡可能な引用&#34;&gt;3. 追跡可能な引用
&lt;/h3&gt;&lt;p&gt;RAGFlow は grounded citations を重視しています。つまり、回答がどのソース断片に基づくのかを追えるということです。さらにチャンクの可視化もあり、解析結果やチャンク分割結果を人が確認して調整しやすくなっています。&lt;/p&gt;
&lt;p&gt;これは本番環境では特に重要です。企業内 Q&amp;amp;A は、ただ「それっぽい答え」を返せばよいわけではなく、検証可能である必要があります。ポリシー、コンプライアンス、財務、技術文書、サポート情報のような分野では、引用と追跡性はほぼ必須です。&lt;/p&gt;
&lt;h3 id=&#34;4-自動化された-rag-ワークフロー&#34;&gt;4. 自動化された RAG ワークフロー
&lt;/h3&gt;&lt;p&gt;RAGFlow は RAG の一連の流れを、より完成度の高いワークフローとしてまとめています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ナレッジベースの作成&lt;/li&gt;
&lt;li&gt;データのアップロードまたは同期&lt;/li&gt;
&lt;li&gt;ドキュメント解析&lt;/li&gt;
&lt;li&gt;チャンクの確認と調整&lt;/li&gt;
&lt;li&gt;LLM と embedding モデルの設定&lt;/li&gt;
&lt;li&gt;多経路検索とリランキングの実行&lt;/li&gt;
&lt;li&gt;チャットアシスタントの構築&lt;/li&gt;
&lt;li&gt;API 経由で業務システムへ統合&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このため、単なるライブラリというより RAG プラットフォームに近い存在です。チームにとっては UI と API の両方が有用で、非エンジニアはナレッジベースを保守しやすく、エンジニアは既存システムへ組み込みやすくなります。&lt;/p&gt;
&lt;h3 id=&#34;5-agentmcpワークフロー拡張&#34;&gt;5. Agent、MCP、ワークフロー拡張
&lt;/h3&gt;&lt;p&gt;最近の RAGFlow には Agentic workflow、MCP、Agent Memory、コード実行コンポーネントなども含まれています。これは、従来型のナレッジベース Q&amp;amp;A にとどまらず、Agent シナリオにも広がっていることを示しています。&lt;/p&gt;
&lt;p&gt;典型的には、Agent が信頼できる企業知識レイヤーとして RAGFlow を使い、必要なときにナレッジベースから検索し、引用付きで回答を生成し、必要に応じてツール呼び出しやワークフローと組み合わせる、という形です。&lt;/p&gt;
&lt;h2 id=&#34;03-基本的な利用フロー&#34;&gt;03 基本的な利用フロー
&lt;/h2&gt;&lt;p&gt;公式のクイックスタートに沿うと、RAGFlow の一般的な使い方は次のようにまとめられます。&lt;/p&gt;
&lt;h3 id=&#34;1-実行環境を準備する&#34;&gt;1. 実行環境を準備する
&lt;/h3&gt;&lt;p&gt;README にある基本要件は以下の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU &amp;gt;= 4 cores&lt;/li&gt;
&lt;li&gt;RAM &amp;gt;= 16 GB&lt;/li&gt;
&lt;li&gt;Disk &amp;gt;= 50 GB&lt;/li&gt;
&lt;li&gt;Docker &amp;gt;= 24.0.0&lt;/li&gt;
&lt;li&gt;Docker Compose &amp;gt;= v2.26.1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;コード実行用のサンドボックスを使う場合は &lt;code&gt;gVisor&lt;/code&gt; も必要です。また、公式 Docker イメージは主に x86 向けです。ARM64 を使う場合は、公式ドキュメントに従って自分でイメージをビルドする必要があります。&lt;/p&gt;
&lt;h3 id=&#34;2-プロジェクトを取得する&#34;&gt;2. プロジェクトを取得する
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/infiniflow/ragflow.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ragflow/docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;3-vmmax_map_count-を確認する&#34;&gt;3. &lt;code&gt;vm.max_map_count&lt;/code&gt; を確認する
&lt;/h3&gt;&lt;p&gt;RAGFlow のデプロイは Elasticsearch / OpenSearch のようなコンポーネントに依存するため、Linux では通常次を確認します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sysctl vm.max_map_count
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;値が &lt;code&gt;262144&lt;/code&gt; 未満なら、一時的に次で設定できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo sysctl -w vm.max_map_count&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;262144&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;再起動後も維持したい場合は &lt;code&gt;/etc/sysctl.conf&lt;/code&gt; に追加します。&lt;/p&gt;
&lt;h3 id=&#34;4-docker-compose-で起動する&#34;&gt;4. Docker Compose で起動する
&lt;/h3&gt;&lt;p&gt;CPU モードはそのまま起動できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose -f docker-compose.yml up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;DeepDoc を GPU で高速化したい場合、README では &lt;code&gt;.env&lt;/code&gt; に &lt;code&gt;DEVICE=gpu&lt;/code&gt; を追加してから起動する方法が示されています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sed -i &lt;span class=&#34;s1&#34;&gt;&amp;#39;1i DEVICE=gpu&amp;#39;&lt;/span&gt; .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose -f docker-compose.yml up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;起動後はログを確認します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker logs -f docker-ragflow-cpu-1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;サービスが立ち上がったら、ブラウザでサーバーのアドレスを開きます。デフォルト構成では通常次のようになります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://IP_OF_YOUR_MACHINE
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;5-モデル-api-key-を設定する&#34;&gt;5. モデル API Key を設定する
&lt;/h3&gt;&lt;p&gt;RAGFlow では LLM と embedding モデルの設定が必要です。README では &lt;code&gt;service_conf.yaml.template&lt;/code&gt; 内でデフォルトの LLM factory を選び、対応する &lt;code&gt;API_KEY&lt;/code&gt; を更新する流れが説明されています。&lt;/p&gt;
&lt;p&gt;実際には、使うプロバイダーに合わせて次を設定します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;チャットモデル&lt;/li&gt;
&lt;li&gt;embedding モデル&lt;/li&gt;
&lt;li&gt;rerank モデル&lt;/li&gt;
&lt;li&gt;PDF / DOCX 内の画像も理解したい場合はマルチモーダルモデル&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;6-ナレッジベースを作成して文書を取り込む&#34;&gt;6. ナレッジベースを作成して文書を取り込む
&lt;/h3&gt;&lt;p&gt;サービス起動後の典型的な流れは次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Web UI にログインする。&lt;/li&gt;
&lt;li&gt;dataset / knowledge base を作成する。&lt;/li&gt;
&lt;li&gt;文書をアップロードするか、データソース同期を設定する。&lt;/li&gt;
&lt;li&gt;解析完了を待つ。&lt;/li&gt;
&lt;li&gt;チャンク結果を確認し、必要なら調整する。&lt;/li&gt;
&lt;li&gt;チャットアシスタントを作成し、知識ベースを関連付ける。&lt;/li&gt;
&lt;li&gt;回答品質と引用元を確認する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;業務システムに組み込みたい場合は、RAGFlow の API や SDK を使って、検索とチャット機能を自分のアプリに接続できます。&lt;/p&gt;
&lt;h2 id=&#34;04-向いている場面&#34;&gt;04 向いている場面
&lt;/h2&gt;&lt;p&gt;RAGFlow は次のような用途に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;企業内ナレッジベース Q&amp;amp;A&lt;/li&gt;
&lt;li&gt;製品マニュアル、技術文書、FAQ の検索&lt;/li&gt;
&lt;li&gt;カスタマーサポートや営業支援アシスタント&lt;/li&gt;
&lt;li&gt;契約書、レポート、規程文書に対する追跡可能な Q&amp;amp;A&lt;/li&gt;
&lt;li&gt;複数形式の資料を一元的に扱いたい場合&lt;/li&gt;
&lt;li&gt;UI による運用と API 統合の両方が必要なチーム&lt;/li&gt;
&lt;li&gt;Agent のコンテキスト層として RAG を使いたいシステム&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;特に、文書形式が複雑で、引用が重要で、人が解析結果を確認・調整したい場合に向いています。&lt;/p&gt;
&lt;h2 id=&#34;05-使うときの注意点&#34;&gt;05 使うときの注意点
&lt;/h2&gt;&lt;p&gt;第一に、RAGFlow は軽量スクリプトではありません。ある程度のインフラ要件があります。公式の推奨は最低 4 コア CPU、16GB RAM、50GB ディスクです。少量の Markdown に対して Q&amp;amp;A をしたいだけなら、ここまで大きなプラットフォームは不要かもしれません。&lt;/p&gt;
&lt;p&gt;第二に、文書品質は依然として重要です。RAGFlow は解析やチャンク分割を改善できますが、質の低い資料、古い資料、矛盾する資料を自動で信頼できるものに変えることはできません。本番導入前にはナレッジベースの運用設計が必要です。&lt;/p&gt;
&lt;p&gt;第三に、モデル設定は結果に直結します。embedding、rerank、チャットモデル、マルチモーダルモデルの選択は、検索品質と回答品質の両方に影響します。RAGFlow はワークフローを提供しますが、最終的な品質はデータ、モデル、パラメータ調整の組み合わせで決まります。&lt;/p&gt;
&lt;p&gt;第四に、本番環境では権限とデータセキュリティに注意が必要です。企業ナレッジベースには社内文書が含まれることが多いため、デプロイ方式、アクセス制御、ログ、API Key、モデル提供者側のデータポリシーまで事前に設計するべきです。&lt;/p&gt;
&lt;h2 id=&#34;06-短い判断&#34;&gt;06 短い判断
&lt;/h2&gt;&lt;p&gt;RAGFlow の強みは、RAG で最も面倒な部分をプラットフォーム機能としてまとめていることです。複雑な文書解析、説明可能なチャンク分割、引用のグラウンディング、多経路検索、リランキング、モデル設定、Web UI、API、Agent 拡張までを一式で備えています。&lt;/p&gt;
&lt;p&gt;検証可能で保守しやすく、業務システムにも接続できる企業ナレッジベースを作りたいなら、RAGFlow は「ベクトルデータベース + 簡単なチャット UI」より完成度の高い選択肢です。逆に、個人用途の小規模な Q&amp;amp;A や、扱うデータ形式が非常に単純な場合は、より軽量な RAG フレームワークのほうが扱いやすいかもしれません。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/infiniflow/ragflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/infiniflow/ragflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;公式ドキュメント：&lt;a class=&#34;link&#34; href=&#34;https://ragflow.io/docs/dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://ragflow.io/docs/dev/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;オンライン Demo：&lt;a class=&#34;link&#34; href=&#34;https://cloud.ragflow.io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://cloud.ragflow.io&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Firecrawlプロジェクト整理：AI Agent向けのWeb検索・スクレイピング・操作API</title>
        <link>https://knightli.com/ja/2026/04/15/firecrawl-ai-web-data-api/</link>
        <pubDate>Wed, 15 Apr 2026 13:45:03 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/15/firecrawl-ai-web-data-api/</guid>
        <description>&lt;p&gt;&lt;code&gt;Firecrawl&lt;/code&gt; の位置づけは明確です。Webページを、AI Agentが扱いやすいデータに変換するためのツールです。単なるクローラースクリプトではなく、検索、単一ページのスクレイピング、サイト全体の巡回、ページ操作、構造化抽出、AgentワークフローをAPIとしてまとめ、モデルや自動化システムがWebページ内のノイズに悩まされにくくします。&lt;/p&gt;
&lt;h2 id=&#34;01-何を解決するのか&#34;&gt;01 何を解決するのか
&lt;/h2&gt;&lt;p&gt;多くのAIアプリケーションはWebページを読む必要があります。しかし実際のWebは扱いやすくありません。JavaScriptで描画されるページ、ポップアップ、ページネーション、ログイン状態、Bot対策、PDFやDOCXなどHTML以外のコンテンツ、本文とは関係のないナビゲーション、広告、スクリプト、スタイルが混在しています。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Firecrawl&lt;/code&gt; が解決しようとしているのは、この中間層の問題です。アプリケーションは「このページ/このサイト/このテーマのデータが欲しい」と指定するだけで、Firecrawlがページを開き、取得し、クリーニングし、LLMで使いやすいMarkdown、HTML、スクリーンショット、JSONとして返します。&lt;/p&gt;
&lt;p&gt;この種のツールの価値は、「URLにリクエストできるか」ではありません。複雑なWebページを安定して使えるデータに変換できるかが重要です。RAG、AI検索、競合調査、自動資料収集、Webコンテンツ監視では、この層がシステム内の面倒な配管になりがちです。&lt;/p&gt;
&lt;h2 id=&#34;02-主な機能&#34;&gt;02 主な機能
&lt;/h2&gt;&lt;p&gt;FirecrawlのREADMEでは、機能がいくつかの領域に分けられています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Search&lt;/code&gt;：Webを検索し、検索結果ページの本文まで取得する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Scrape&lt;/code&gt;：単一URLをMarkdown、HTML、スクリーンショット、構造化JSONに変換する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Interact&lt;/code&gt;：ページを取得した後、プロンプトやコードでクリック、スクロール、入力、待機などを実行する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Agent&lt;/code&gt;：欲しい情報を直接説明すると、Agentが自動で検索、遷移、結果の取得を行う。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Crawl&lt;/code&gt;：Webサイト配下の複数ページを取得する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Map&lt;/code&gt;：Webサイト内のURLを素早く発見する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Batch Scrape&lt;/code&gt;：大量のURLを非同期で一括取得する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;名前だけを見ると「スクレイピングサービス」に見えます。しかし機能全体を見ると、AIアプリケーションのデータ入口に近い存在です。検索は情報源を見つけ、スクレイピングは内容を整え、操作機能は動的ページを扱い、Agentは「情報を探す」という作業をさらに自動化します。&lt;/p&gt;
&lt;h2 id=&#34;03-ai-agentに向いている理由&#34;&gt;03 AI Agentに向いている理由
&lt;/h2&gt;&lt;p&gt;従来のクローラーは、URLが既知であり、ページ構造も理解していることを前提にする場合が多いです。しかしAgentの場面ではそうとは限りません。ユーザーは「ある会社の最新料金ページにあるプラン差分を調べて」と頼むだけかもしれません。システム側は自分で検索し、ページを開き、内容を比較し、出典を返す必要があります。&lt;/p&gt;
&lt;p&gt;Firecrawlの &lt;code&gt;Agent&lt;/code&gt; エンドポイントは、このようなタスクを想定しています。自然言語のプロンプトだけで動かすことも、指定したURL範囲に限定して動かすこともできます。構造化された結果が必要な場合は、schemaと組み合わせて固定フィールドで出力できます。&lt;/p&gt;
&lt;p&gt;アプリケーション層にとっては、次の2つの利点があります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Webサイトごとに個別のパーサーを書く必要がない。&lt;/li&gt;
&lt;li&gt;返ってきた結果をLLM、データベース、後続の自動化フローに渡しやすい。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;もちろん、すべてのカスタムクローラーを置き換えるわけではありません。制約が強く、高頻度で、大規模で、フィールドが非常に安定している取得タスクでは、専用の解析ロジックを書いたほうが安く、制御もしやすい場合があります。Firecrawlは、情報源が分散し、ページ構造が変わりやすく、AIワークフローに素早く接続したい場面に向いています。&lt;/p&gt;
&lt;h2 id=&#34;04-mcpcliインテグレーション&#34;&gt;04 MCP、CLI、インテグレーション
&lt;/h2&gt;&lt;p&gt;FirecrawlはAgent向けツールチェーンにも明確に寄せています。READMEにはMCP Serverの接続方法があり、AI coding agent向けのSkill/CLI初期化コマンドも用意されています。&lt;/p&gt;
&lt;p&gt;つまり、バックエンドサービスからAPIとして呼ぶだけでなく、Claude Code、OpenCode、Antigravity、MCPクライアントなどのワークフローに直接入ることも想定しています。Agentに調査、Web取得、内容整理をよく任せる人にとっては、API呼び出しを手書きするより軽い導入方法です。&lt;/p&gt;
&lt;p&gt;Zapier、n8n、Lovableなどのプラットフォーム連携も挙げられています。この方向性は実用的です。Webデータは必ずしもコードにだけ入るわけではなく、自動化テーブル、ローコードフロー、コンテンツ制作システム、社内ナレッジベースにも流れます。&lt;/p&gt;
&lt;h2 id=&#34;05-オープンソースセルフホストライセンス境界&#34;&gt;05 オープンソース、セルフホスト、ライセンス境界
&lt;/h2&gt;&lt;p&gt;Firecrawlはオープンソースプロジェクトです。メインリポジトリは主に &lt;code&gt;AGPL-3.0&lt;/code&gt; でライセンスされています。READMEでは、SDKと一部のUIコンポーネントは &lt;code&gt;MIT&lt;/code&gt; ライセンスであり、詳細は各ディレクトリのLICENSEファイルを見る必要があるとも説明されています。&lt;/p&gt;
&lt;p&gt;ここは注意が必要です。クラウドサービスとして使うだけなら、主な関心はAPIコスト、安定性、コンプライアンス上の境界です。一方で、セルフホストして外部にサービス提供するなら、&lt;code&gt;AGPL-3.0&lt;/code&gt; の義務をきちんと確認する必要があります。&lt;/p&gt;
&lt;p&gt;READMEでは、Webサイトのポリシー、プライバシーポリシー、利用規約を尊重するようにも注意しています。また、デフォルトで &lt;code&gt;robots.txt&lt;/code&gt; に従うと説明されています。この種のツールは強力になるほど、コンプライアンスと取得範囲の設計を後回しにせず、最初からシステムに組み込む必要があります。&lt;/p&gt;
&lt;h2 id=&#34;06-向いている場面&#34;&gt;06 向いている場面
&lt;/h2&gt;&lt;p&gt;Firecrawlを優先的に検討したいのは、次のような場面です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RAGシステム向けにWeb資料を取得し、きれいなMarkdownを直接得たい。&lt;/li&gt;
&lt;li&gt;AI検索や調査アシスタントで、検索後にページ全体を読む必要がある。&lt;/li&gt;
&lt;li&gt;JavaScriptが重いサイトを取得したいが、自前でブラウザクラスターを保守したくない。&lt;/li&gt;
&lt;li&gt;競合、価格、ドキュメント、ニュース、採用ページなどの公開情報を監視したい。&lt;/li&gt;
&lt;li&gt;MCPクライアントやAI coding agentにリアルタイムのWeb読み取り能力を追加したい。&lt;/li&gt;
&lt;li&gt;クローラー基盤を先に作るのではなく、Webデータ製品を素早く検証したい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;あまり向いていない場面もはっきりしています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;対象サイトのフィールドが少なく、構造も安定していて、簡単なスクリプトで十分な場合。&lt;/li&gt;
&lt;li&gt;取得量が非常に大きく、開発保守コストより実行コストのほうが重要な場合。&lt;/li&gt;
&lt;li&gt;データソース、リトライ戦略、Bot対策への振る舞い、監査要件を細かく制御する必要がある場合。&lt;/li&gt;
&lt;li&gt;ライセンスやコンプライアンス要件として、AGPLコンポーネントや外部クラウドサービスを導入できない場合。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;07-短い判断&#34;&gt;07 短い判断
&lt;/h2&gt;&lt;p&gt;Firecrawlの価値は、「WebページからAIで使えるデータへ」という面倒な流れをプロダクト化している点にあります。検索、取得、クリーニング、操作、バッチ処理、Agent型の資料収集を1つのインターフェースにまとめているため、AIアプリケーション開発者には使いやすい選択肢です。&lt;/p&gt;
&lt;p&gt;モデルに実際のWebページを読ませる必要がよくあり、特に情報源が分散し、構造が不安定で、MCPやAgentワークフローにも接続したいなら、Firecrawlはツール箱に入れておく価値があります。逆に、固定サイトから低コストで大量収集するだけなら、従来のクローラーや専用パーサーのほうが適している場合があります。&lt;/p&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHubプロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/firecrawl/firecrawl&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/firecrawl/firecrawl&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Playwright CLI ビデオ録画: 画面録画、チャプター マーカー、オーバーレイおよびデバッグの比較</title>
        <link>https://knightli.com/ja/2026/04/15/playwright-cli-video-recording/</link>
        <pubDate>Wed, 15 Apr 2026 08:22:45 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/15/playwright-cli-video-recording/</guid>
        <description>&lt;p&gt;ブラウザ自動化プロセスをデバッグ用、ドキュメント デモンストレーション用、または実行結果のファイルとしてビデオに記録したい場合、&lt;code&gt;Playwright CLI&lt;/code&gt; は比較的簡単なソリューションを提供します。 VP8/VP9 としてエンコードされた WebM ビデオを出力します。&lt;/p&gt;
&lt;p&gt;この記事は、公式 &lt;code&gt;video-recording&lt;/code&gt; リファレンス ドキュメントに従って構成されており、基本的な録画プロセス、チャプター マーカー、ヒーロー スクリプト全体の録画、オーバーレイ API、およびビデオとトレースの違いに焦点を当てています。この記事のコマンド ライン、コード スニペット、およびパラメーターの説明は、参照コンテンツとして保持されています。&lt;/p&gt;
&lt;h2 id=&#34;01-基本的な録音の流れ&#34;&gt;01 基本的な録音の流れ
&lt;/h2&gt;&lt;p&gt;最も基本的なプロセスは、まずブラウザを開き、次に録画を開始し、操作を実行し、最後に停止して保存します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Open browser first&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Start recording&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli video-start demo.webm
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Add a chapter marker for section transitions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli video-chapter &lt;span class=&#34;s2&#34;&gt;&amp;#34;Getting Started&amp;#34;&lt;/span&gt; --description&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Opening the homepage&amp;#34;&lt;/span&gt; --duration&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Navigate and perform actions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli goto https://example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli snapshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli click e1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Add another chapter&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli video-chapter &lt;span class=&#34;s2&#34;&gt;&amp;#34;Filling Form&amp;#34;&lt;/span&gt; --description&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Entering test data&amp;#34;&lt;/span&gt; --duration&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli fill e2 &lt;span class=&#34;s2&#34;&gt;&amp;#34;test input&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Stop and save&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli video-stop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このコマンド セットは、最も一般的な記録パスをカバーしています。 &lt;code&gt;video-chapter&lt;/code&gt; は、録画したビデオを理解しやすくするために、さまざまなステージの間にチャプター カードを挿入するのに適しています。&lt;/p&gt;
&lt;h2 id=&#34;02-ベストプラクティス&#34;&gt;02 ベストプラクティス
&lt;/h2&gt;&lt;h3 id=&#34;1-わかりやすいファイル名を使用する&#34;&gt;1. わかりやすいファイル名を使用する
&lt;/h3&gt;&lt;p&gt;ビデオが他の人に見てもらうためのものである場合、または後でレビューする場合は、ファイル名にシーンとコンテキストを直接含めるのが最善です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Include context in filename&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli video-start recordings/login-flow-2024-01-15.webm
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli video-start recordings/checkout-test-run-42.webm
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;2-完全なヒーロー-スクリプトを記録する&#34;&gt;2. 完全なヒーロー スクリプトを記録する
&lt;/h3&gt;&lt;p&gt;公式アドバイス: ビデオをユーザーに配信する場合、または作業証明として使用する場合は、シーンをコードにまとめて &lt;code&gt;run-code&lt;/code&gt; で実行するのが最善です。これにより、ビデオ内のアクションのリズム、一時停止のタイミング、注釈効果を制御しやすくなります。リファレンス ドキュメントには、Playwright がシーンの記録に適した新しい API をいくつか追加したことも具体的に記載されています。&lt;/p&gt;
&lt;p&gt;推奨されるプロセスは次のとおりです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まず、CLI を使用してシーンをウォークスルーし、すべてのロケーターとアクションを書き留めます。後でハイライトしたい場合は、これらのロケーターを使用して境界ボックスをリクエストする必要があります。&lt;/li&gt;
&lt;li&gt;ビデオ用に別のスクリプト ファイルを作成し、次のように記述します。コンテンツを入力する際に​​は、&lt;code&gt;pressSequentially&lt;/code&gt; および &lt;code&gt;delay&lt;/code&gt; を使用し、一時停止時間をできるだけ自然に配置するようにしてください。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;playwright-cli run-code --filename your-script.js&lt;/code&gt;を使用して実行します。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Important: Overlays are &lt;code&gt;pointer-events: none&lt;/code&gt; — they do not interfere with page interactions. You can safely keep sticky overlays visible while clicking, filling, or performing any actions on the page.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;async&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;screencast&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;start&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;video.webm&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1280&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;800&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;kr&#34;&gt;goto&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;https://demo.playwright.dev/todomvc&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Show a chapter card — blurs the page and shows a dialog.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Blocks until duration expires, then auto-removes.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Use this for simple use cases, but always feel free to hand-craft your own beautiful
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// overlay via await page.screencast.showOverlay().
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;screencast&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;showChapter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Adding Todo Items&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;We will add several items to the todo list.&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;duration&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Perform action
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;getByRole&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;textbox&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;What needs to be done?&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;pressSequentially&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Walk the dog&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;delay&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;60&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;getByRole&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;textbox&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;What needs to be done?&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;press&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Enter&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;waitForTimeout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Show next chapter
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;screencast&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;showChapter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Verifying Results&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;Checking the item appeared in the list.&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;duration&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Add a sticky annotation that stays while you perform actions.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Overlays are pointer-events: none, so they won&amp;#39;t block clicks.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;annotation&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;screencast&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;showOverlay&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;    &amp;lt;div style=&amp;#34;position: absolute; top: 8px; right: 8px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      padding: 6px 12px; background: rgba(0,0,0,0.7);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      border-radius: 8px; font-size: 13px; color: white;&amp;#34;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      ✓ Item added successfully
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;    &amp;lt;/div&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;  `&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Perform more actions while the annotation is visible
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;getByRole&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;textbox&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;What needs to be done?&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;pressSequentially&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Buy groceries&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;delay&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;60&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;getByRole&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;textbox&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;What needs to be done?&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;press&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Enter&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;waitForTimeout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1500&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Remove the annotation when done
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;annotation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;dispose&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// You can also highlight relevant locators and provide contextual annotations.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;getByText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Walk the dog&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;boundingBox&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;screencast&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;showOverlay&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;    &amp;lt;div style=&amp;#34;position: absolute;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      top: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      left: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      width: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      height: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      border: 1px solid red;&amp;#34;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;    &amp;lt;/div&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;    &amp;lt;div style=&amp;#34;position: absolute;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      top: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      left: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      transform: translateX(-50%);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      padding: 6px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      background: #808080;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      border-radius: 10px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      font-size: 14px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      color: white;&amp;#34;&amp;gt;Check it out, it is right above this text
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;    &amp;lt;/div&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;  `&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;duration&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2000&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;screencast&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;stop&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このコード部分の焦点は、単に「記録する」ことではなく、ビデオをより鮮明にすることです。チャプター カードはセグメンテーションを担当し、&lt;code&gt;pressSequentially&lt;/code&gt; は入力アクションをより自然にし、&lt;code&gt;showOverlay&lt;/code&gt; はプロンプト、ハイライト、説明を実行できます。&lt;/p&gt;
&lt;p&gt;この文書の最後には、「創造性を受け入れ、オーバーレイは強力です」という一文も追加されています。&lt;/p&gt;
&lt;h2 id=&#34;03-オーバーレイ-api-の概要&#34;&gt;03 オーバーレイ API の概要
&lt;/h2&gt;&lt;p&gt;ビデオを録画する場合、オーバーレイ API はチャプターの切り替え、ローカル プロンプト、および継続的な注釈に非常に適しています。公式の概要は次のとおりです。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Method&lt;/th&gt;
          &lt;th&gt;Use Case&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;page.screencast.showChapter(title, { description?, duration?, styleSheet? })&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Full-screen chapter card with blurred backdrop — ideal for section transitions&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;page.screencast.showOverlay(html, { duration? })&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Custom HTML overlay — use for callouts, labels, highlights&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;disposable.dispose()&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Remove a sticky overlay added without duration&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;page.screencast.hideOverlays()&lt;/code&gt; / &lt;code&gt;page.screencast.showOverlays()&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Temporarily hide/show all overlays&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;自動化されたプロセスを「視聴可能なビデオ」に変えることが目標の場合、基本的にはこの API セットを最初に習得するのが最も価値があります。&lt;/p&gt;
&lt;h2 id=&#34;04-トレースとビデオの違い&#34;&gt;04 トレースとビデオの違い
&lt;/h2&gt;&lt;p&gt;公式ドキュメントでは、この 2 つの位置付けが明確に区別されています。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Feature&lt;/th&gt;
          &lt;th&gt;Video&lt;/th&gt;
          &lt;th&gt;Tracing&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Output&lt;/td&gt;
          &lt;td&gt;WebM file&lt;/td&gt;
          &lt;td&gt;Trace file (viewable in Trace Viewer)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Shows&lt;/td&gt;
          &lt;td&gt;Visual recording&lt;/td&gt;
          &lt;td&gt;DOM snapshots, network, console, actions&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Use case&lt;/td&gt;
          &lt;td&gt;Demos, documentation&lt;/td&gt;
          &lt;td&gt;Debugging, analysis&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Size&lt;/td&gt;
          &lt;td&gt;Larger&lt;/td&gt;
          &lt;td&gt;Smaller&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;簡単な理解:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;video&lt;/code&gt; は、「ユーザーから見たプロセス」のデモンストレーション、配信、レビューに適しています。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tracing&lt;/code&gt; は、問題のトラブルシューティング、アクションの詳細の分析、実行コンテキストの表示に適しています。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2 人はお互いの代わりではありませんが、それぞれが異なる目的を果たします。&lt;/p&gt;
&lt;h2 id=&#34;05-利用制限&#34;&gt;05 利用制限
&lt;/h2&gt;&lt;p&gt;この文書では、次の 2 つの非常に実際的な制限も指摘しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Recording adds slight overhead to automation&lt;/li&gt;
&lt;li&gt;Large recordings can consume significant disk space&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;言い換えれば、記録機能は非常に実用的ですが、自動化されたプロセスにある程度のオーバーヘッドが追加されます。ビデオが非常に長い場合、ディスク使用量も大幅に増加します。&lt;/p&gt;
&lt;h2 id=&#34;06-簡単なまとめ&#34;&gt;06 簡単なまとめ
&lt;/h2&gt;&lt;p&gt;重要なポイントだけに焦点を当てると、次のことを思い出すことができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;video-start&lt;/code&gt; / &lt;code&gt;video-stop&lt;/code&gt; は最も基本的なビデオ録画プロセスに対応します&lt;/li&gt;
&lt;li&gt;&lt;code&gt;video-chapter&lt;/code&gt; はビデオにチャプタートランジションを追加でき、プレゼンテーションをより明確にするのに適しています&lt;/li&gt;
&lt;li&gt;より複雑なビデオ シーンの場合は、スクリプトを作成して &lt;code&gt;run-code&lt;/code&gt; で実行するのが適しています。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;showOverlay&lt;/code&gt; と &lt;code&gt;showChapter&lt;/code&gt; を使用すると、ビデオの読みやすさが大幅に向上します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;video&lt;/code&gt; はデモンストレーションに適しており、&lt;code&gt;tracing&lt;/code&gt; はデバッグに適しています。ターゲットに合わせて選ぶと良いでしょう。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;すでに &lt;code&gt;Playwright CLI&lt;/code&gt; を自動デモンストレーション、承認ファイル、またはプルーフオブワークに使用している場合、&lt;code&gt;video recording&lt;/code&gt; は非常に価値のある追加となります。&lt;/p&gt;
&lt;h2 id=&#34;参考リンク&#34;&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Playwright CLI ビデオ録画リファレンス ドキュメント: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/video-recording.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/video-recording.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Playwright CLI プロジェクトのホームページ: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Playwright CLI セッション管理: マルチブラウザ セッション、分離、永続化、クリーンアップ</title>
        <link>https://knightli.com/ja/2026/04/15/playwright-cli-session-management/</link>
        <pubDate>Wed, 15 Apr 2026 08:15:12 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/15/playwright-cli-session-management/</guid>
        <description>&lt;p&gt;自動化に &lt;code&gt;Playwright CLI&lt;/code&gt; を使用している場合は、すぐに実際的な問題に遭遇することになります。それは、相互に干渉せずに同時に複数のブラウザー セッションを開くことができるかということです。答えは「はい」です。&lt;code&gt;Playwright CLI&lt;/code&gt; により、このメカニズムが非常に簡単になりました。&lt;/p&gt;
&lt;p&gt;この記事は、公式 &lt;code&gt;session-management&lt;/code&gt; リファレンス ドキュメントに従い、名前付きセッション、セッション分離、永続性プロファイル、同時実行モード、一般的なクリーンアップ コマンドなどの最も実用的な部分を整理します。この記事のコマンド ラインとコマンド ブロックの説明は、参考コンテンツとして保持されています。&lt;/p&gt;
&lt;h2 id=&#34;01-ブラウザセッションに名前を付けます&#34;&gt;01 ブラウザセッションに名前を付けます
&lt;/h2&gt;&lt;p&gt;公式の推奨事項は、&lt;code&gt;-s&lt;/code&gt; パラメーターを使用して、異なるブラウザー コンテキストを分離することです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Browser 1: Authentication flow&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;auth open https://app.example.com/login
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Browser 2: Public browsing (separate cookies, storage)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;public open https://example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Commands are isolated by browser session&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;auth fill e1 &lt;span class=&#34;s2&#34;&gt;&amp;#34;user@example.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;public snapshot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ここで重要な点は、異なる &lt;code&gt;session&lt;/code&gt; 名が異なるブラウザー コンテキストに対応するということです。ログインプロセスには &lt;code&gt;auth&lt;/code&gt; を使用し、匿名アクセスには &lt;code&gt;public&lt;/code&gt; を使用できます。 Cookie やローカル状態を共有しません。&lt;/p&gt;
&lt;h2 id=&#34;02-ブラウザセッションは何を分離しますか&#34;&gt;02 ブラウザセッションは何を分離しますか?
&lt;/h2&gt;&lt;p&gt;各ブラウザ セッションは、次のコンテンツを独立して保持します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cookies&lt;/li&gt;
&lt;li&gt;LocalStorage / SessionStorage&lt;/li&gt;
&lt;li&gt;IndexedDB&lt;/li&gt;
&lt;li&gt;Cache&lt;/li&gt;
&lt;li&gt;Browsing history&lt;/li&gt;
&lt;li&gt;Open tabs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは、&lt;code&gt;auth&lt;/code&gt; セッションで Web サイトにログインしても、自動的には &lt;code&gt;public&lt;/code&gt; セッションに影響を与えないことを意味します。これは、複数アカウントのテスト、ログイン検証、匿名比較を行う場合に特に重要です。&lt;/p&gt;
&lt;h2 id=&#34;03-ブラウザセッション関連コマンド&#34;&gt;03 ブラウザセッション関連コマンド
&lt;/h2&gt;&lt;p&gt;公式ドキュメントには、セッション管理で最も一般的に使用される一連のコマンドがまとめられています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# List all browser sessions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli list
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Stop a browser session (close the browser)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli close                 &lt;span class=&#34;c1&#34;&gt;# stop the default browser&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;mysession close   &lt;span class=&#34;c1&#34;&gt;# stop a named browser&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Stop all browser sessions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli close-all
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Forcefully kill all daemon processes (for stale/zombie processes)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli kill-all
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Delete browser session user data (profile directory)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli delete-data              &lt;span class=&#34;c1&#34;&gt;# delete default browser data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;mysession delete-data &lt;span class=&#34;c1&#34;&gt;# delete named browser data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これらは、次の 3 種類の操作として理解できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;list&lt;/code&gt;: 現在利用可能な会話を確認します&lt;/li&gt;
&lt;li&gt;&lt;code&gt;close&lt;/code&gt;/&lt;code&gt;close-all&lt;/code&gt;/&lt;code&gt;kill-all&lt;/code&gt;: セッションを終了するか、スタックしたブラウザー プロセスをクリーンアップします&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delete-data&lt;/code&gt;: セッションに対応するユーザー データ ディレクトリを削除します&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ブラウザを終了するだけの場合は、通常、最初に &lt;code&gt;close&lt;/code&gt; を使用します。残留プロセスまたはゾンビ プロセスがある場合は、&lt;code&gt;kill-all&lt;/code&gt; を使用する方が適切です。&lt;/p&gt;
&lt;h2 id=&#34;04-環境変数を使用してデフォルトのセッションを設定します&#34;&gt;04 環境変数を使用してデフォルトのセッションを設定します
&lt;/h2&gt;&lt;p&gt;コマンドごとに &lt;code&gt;-s=mysession&lt;/code&gt; を繰り返し書きたくない場合は、公式が環境変数メソッドも提供しています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;PLAYWRIGHT_CLI_SESSION&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;mysession&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open example.com  &lt;span class=&#34;c1&#34;&gt;# Uses &amp;#34;mysession&amp;#34; automatically&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このように、&lt;code&gt;-s&lt;/code&gt; が明示的に指定されていない場合、コマンドはデフォルトで &lt;code&gt;mysession&lt;/code&gt; ブラウザー セッションを使用します。&lt;/p&gt;
&lt;h2 id=&#34;05-一般的なパターン-同時クロール&#34;&gt;05 一般的なパターン: 同時クロール
&lt;/h2&gt;&lt;p&gt;参考資料には、同時クロールの非常に典型的な例が示されています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Scrape multiple sites concurrently&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Start all browsers&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;site1 open https://site1.com &lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;site2 open https://site2.com &lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;site3 open https://site3.com &lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;wait&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Take snapshots from each&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;site1 snapshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;site2 snapshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;site3 snapshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Cleanup&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli close-all
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このモードは、複数のサイトを同時に開き、ページのステータスを個別に取得して、それらをまとめてクリーンアップするのに適しています。各サイトは個別のセッションで実行されるため、互いのローカル状態を汚染することはありません。&lt;/p&gt;
&lt;h2 id=&#34;06-一般的なパターン-ab-テスト-セッション&#34;&gt;06 一般的なパターン: A/B テスト セッション
&lt;/h2&gt;&lt;p&gt;もう 1 つの一般的なシナリオは、異なる実験版を同時に比較することです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Test different user experiences&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;variant-a open &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://app.com?variant=a&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;variant-b open &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://app.com?variant=b&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Compare&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;variant-a screenshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;variant-b screenshot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;この書き方は、2 つのバージョンが独立したセッションで実行され、スクリーンショットとステータス チェックを個別に管理しやすいため、A/B ページの差分比較に非常に適しています。&lt;/p&gt;
&lt;h2 id=&#34;07-永続的なブラウザプロファイル&#34;&gt;07 永続的なブラウザプロファイル
&lt;/h2&gt;&lt;p&gt;公式ドキュメントには具体的に次のように記載されています: デフォルトでは、ブラウザーのプロファイルはメモリにのみ保存されます。&lt;/p&gt;
&lt;p&gt;ブラウザー プロファイルをディスクに保存したい場合は、&lt;code&gt;--persistent&lt;/code&gt; を &lt;code&gt;open&lt;/code&gt; に追加する必要があります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Use persistent profile (auto-generated location)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://example.com --persistent
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Use persistent profile with custom directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://example.com --profile&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/path/to/profile
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;この機能は、ログイン ステータス、ローカル キャッシュ、または拡張デバッグ環境の長期的な再利用が必要なシナリオに適しています。特に、同じサイトを何度もデバッグする場合は、毎回最初から開始するよりもプロファイルを永続化する方が効率的であることがよくあります。&lt;/p&gt;
&lt;h2 id=&#34;08-デフォルトのブラウザセッション&#34;&gt;08 デフォルトのブラウザセッション
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;-s&lt;/code&gt; が明示的に渡されない場合、コマンドはデフォルトのブラウザー セッションを使用します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# These use the same default browser session&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli snapshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli close  &lt;span class=&#34;c1&#34;&gt;# Stops default browser&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;つまり、&lt;code&gt;-s&lt;/code&gt; のない複数のコマンドは、デフォルトで同じデフォルト セッション内で継続的に実行されます。&lt;/p&gt;
&lt;h2 id=&#34;09-セッション構成で開く&#34;&gt;09 セッション構成で開く
&lt;/h2&gt;&lt;p&gt;セッション名に加えて、公式ではいくつかの一般的な起動設定方法も提供しています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Open with config file&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://example.com --config&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;.playwright/my-cli.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Open with specific browser&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://example.com --browser&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;firefox
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Open in headed mode&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://example.com --headed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Open with persistent profile&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://example.com --persistent
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これらのパラメータはセッション管理と組み合わせて使用​​できます。たとえば、名前付きセッションを常に &lt;code&gt;firefox&lt;/code&gt; で実行したり、セッションを常に &lt;code&gt;headed&lt;/code&gt; モードで開始して手動で観察しやすくしたりできます。&lt;/p&gt;
&lt;h2 id=&#34;10-の公式ベスト-プラクティス&#34;&gt;10 の公式ベスト プラクティス
&lt;/h2&gt;&lt;p&gt;参考資料には、3 つの非常に実践的なベスト プラクティスがリストされています。&lt;/p&gt;
&lt;h3 id=&#34;1-セマンティックなセッション名を使用する&#34;&gt;1. セマンティックなセッション名を使用する
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# GOOD: Clear purpose&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;github-auth open https://github.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;docs-scrape open https://docs.example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# AVOID: Generic names&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;s1 open https://github.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;目的を直接表現するセッション名を付けるのが最善です。 &lt;code&gt;github-auth&lt;/code&gt; や &lt;code&gt;docs-scrape&lt;/code&gt; のような名前は、後でスクリプトを保守するときにはるかに明確になります。&lt;/p&gt;
&lt;h3 id=&#34;2-使用後は適時に掃除してください&#34;&gt;2. 使用後は適時に掃除してください
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Stop browsers when done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;auth close
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;scrape close
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Or stop all at once&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli close-all
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# If browsers become unresponsive or zombie processes remain&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli kill-all
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;タスクの完了後にブラウザを閉じないと、セッションとバックグラウンド プロセスが残ります。短期的には大きな問題ではありませんが、タスクが多すぎると環境が混乱しやすくなります。&lt;/p&gt;
&lt;h3 id=&#34;3-古いブラウザデータを削除する&#34;&gt;3. 古いブラウザデータを削除する
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Remove old browser data to free disk space&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;oldsession delete-data
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;一部の古いセッションが使用されなくなった場合、対応するデータ ディレクトリを削除すると、ディスク領域を節約し、後で期限切れステータスの悪用を避けることができます。&lt;/p&gt;
&lt;h2 id=&#34;11-簡単なまとめ&#34;&gt;11 簡単なまとめ
&lt;/h2&gt;&lt;p&gt;重要なポイントだけに焦点を当てると、次のことを思い出すことができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-s=&amp;lt;name&amp;gt;&lt;/code&gt; は、独立したブラウザ セッションを作成および使用するために使用されます。&lt;/li&gt;
&lt;li&gt;Cookie、ストレージ、キャッシュ、履歴、タブはセッション間で分離されます&lt;/li&gt;
&lt;li&gt;&lt;code&gt;close-all&lt;/code&gt; は統合シャットダウンに適しており、&lt;code&gt;kill-all&lt;/code&gt; は異常な残留プロセスの処理に適しています。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--persistent&lt;/code&gt; は、長期間の再利用に適したプロファイルをディスクにダウンロードするために使用されます。&lt;/li&gt;
&lt;li&gt;セッション名はできる限りセマンティックである必要があり、古いデータは定期的にクリーンアップする必要があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ワークフローにすでにログイン状態の再利用、複数アカウントの並列処理、A/B 比較、またはバッチ クロールのニーズがある場合、基本的に &lt;code&gt;session management&lt;/code&gt; は、&lt;code&gt;Playwright CLI&lt;/code&gt; の機能を習得するのに最も価値があります。&lt;/p&gt;
&lt;h2 id=&#34;参考リンク&#34;&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Playwright CLI セッション管理リファレンス ドキュメント: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/session-management.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/session-management.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Playwright CLI プロジェクトのホームページ: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Playwright CLI ストレージ状態の使用法: ログイン状態の保存、Cookie とローカル ストレージの読み取り</title>
        <link>https://knightli.com/ja/2026/04/14/playwright-cli-storage-state-commands/</link>
        <pubDate>Tue, 14 Apr 2026 22:19:55 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/14/playwright-cli-storage-state-commands/</guid>
        <description>&lt;p&gt;ブラウザの自動化に &lt;code&gt;Playwright CLI&lt;/code&gt; を使用する場合、&lt;code&gt;storage state&lt;/code&gt; は基本的に最もよく使用される機能の 1 つです。その機能は非常に直接的です。現在のログイン状態とローカル状態をブラウザに保存し、後でそれを再利用して、毎回再度ログインする必要がなくなります。&lt;/p&gt;
&lt;h2 id=&#34;01-現在の保存状態を保存します&#34;&gt;01 現在の保存状態を保存します
&lt;/h2&gt;&lt;p&gt;最も一般的なシナリオは、一度ログインしてから現在のステータスをファイルにエクスポートすることです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli storage-state save auth.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このコマンドは、現在のブラウザー コンテキストの状態を &lt;code&gt;auth.json&lt;/code&gt; に保存します。後でログイン状態を再利用する場合は、通常はこのステップから開始します。&lt;/p&gt;
&lt;h2 id=&#34;02-既存のストレージ状態をロードします&#34;&gt;02 既存のストレージ状態をロードします
&lt;/h2&gt;&lt;p&gt;状態ファイルをすでに作成している場合は、起動時にそれを直接ロードできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli --storage-state auth.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;auth.json&lt;/code&gt; の状態でブラウザー コンテキストを開始します。一般的な使用法は、繰り返しのログインをスキップして、ログインした環境に直接入ることです。&lt;/p&gt;
&lt;h2 id=&#34;03-現在の-cookie-を表示する&#34;&gt;03 現在の Cookie を表示する
&lt;/h2&gt;&lt;p&gt;現在のセッションにどのような Cookie があるかを確認したいだけの場合は、それらを直接表示できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli cookies
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このコマンドは、現在のコンテキスト内の Cookie をリストします。ログイン状態が存在するかどうか、Cookie が正常に書き込まれたかどうかを確認するのに適しています。&lt;/p&gt;
&lt;h2 id=&#34;04-クッキーを設定する&#34;&gt;04 クッキーを設定する
&lt;/h2&gt;&lt;p&gt;すでに Cookie データがある場合は、直接書き込むこともできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli cookies &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;[{&amp;#34;name&amp;#34;:&amp;#34;session&amp;#34;,&amp;#34;value&amp;#34;:&amp;#34;abc&amp;#34;,&amp;#34;domain&amp;#34;:&amp;#34;example.com&amp;#34;,&amp;#34;path&amp;#34;:&amp;#34;/&amp;#34;}]&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;この使用法は、認証のデバッグ、特定のセッションの再現、またはスクリプトの前に Cookie 条件を手動で挿入する場合に適しています。&lt;/p&gt;
&lt;h2 id=&#34;05-ローカルストレージの読み取り&#34;&gt;05 ローカルストレージの読み取り
&lt;/h2&gt;&lt;p&gt;一部のサイトのログイン ステータスまたはフロントエンド ステータスは、Cookie だけでなく &lt;code&gt;localStorage&lt;/code&gt; にも保存されます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli local-storage
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このコマンドは、現在のページの &lt;code&gt;localStorage&lt;/code&gt; コンテンツを表示するために使用されます。この手順は、「ログインしているように見えますが、ページの動作が間違っている」というトラブルシューティングを行う場合に役立ちます。&lt;/p&gt;
&lt;h2 id=&#34;06-ローカルストレージへの書き込み&#34;&gt;06 ローカルストレージへの書き込み
&lt;/h2&gt;&lt;p&gt;フロントエンドのステータスをシミュレートする必要がある場合は、それを直接設定することもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli local-storage &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; token abc123
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;指定されたキー値を &lt;code&gt;localStorage&lt;/code&gt; に書き込みます。一般的な用途は、トークン、基本設定、または一部のフロントエンド スイッチを挿入することです。&lt;/p&gt;
&lt;h2 id=&#34;07-セッションストレージの読み取り&#34;&gt;07 セッションストレージの読み取り
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;sessionStorage&lt;/code&gt; は、現在のセッションの一時的なステータスを表示するのに適しています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli session-storage
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このコマンドは、現在のページの &lt;code&gt;sessionStorage&lt;/code&gt; を出力します。特定のページ ロジックがワンタイム セッション データに依存している場合は、ここから確認できます。&lt;/p&gt;
&lt;h2 id=&#34;08-セッションストレージへの書き込み&#34;&gt;08 セッションストレージへの書き込み
&lt;/h2&gt;&lt;p&gt;必要に応じて、&lt;code&gt;sessionStorage&lt;/code&gt; を手動で設定することもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli session-storage &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; key value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは、一時的な状態に依存する特定のページ動作を再現したり、初期化ステップに必要なフィールドを入力したりするのに適しています。&lt;/p&gt;
&lt;h2 id=&#34;09-indexeddb-の表示&#34;&gt;09 IndexedDB の表示
&lt;/h2&gt;&lt;p&gt;より重い Web アプリケーションの場合、本当に重要なデータは &lt;code&gt;IndexedDB&lt;/code&gt; にある可能性があります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli indexed-db
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このコマンドは、現在のページの &lt;code&gt;IndexedDB&lt;/code&gt; データを表示するために使用されます。複雑な単一ページ アプリケーション、オフライン キャッシュ、またはローカル データベース スタイルの状態に遭遇した場合は、最初にここを確認できます。&lt;/p&gt;
&lt;h2 id=&#34;10-最も実用的なワークフローの-1-つ&#34;&gt;10 最も実用的なワークフローの 1 つ
&lt;/h2&gt;&lt;p&gt;ログイン状態を安定して再利用したいだけの場合、最も単純なプロセスは通常次のようになります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まずサイトを開いて手動でログインを完了します。&lt;/li&gt;
&lt;li&gt;次のコマンドを実行してステータスを保存します。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli storage-state save auth.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;後続の実行中に直接ロードします。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli --storage-state auth.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ロード後もページに異常がある場合は、引き続き次の確認を行ってください。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;playwright-cli cookies&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;playwright-cli local-storage&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;playwright-cli session-storage&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;playwright-cli indexed-db&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このシーケンスで「状態が完全に復元されていない」という問題のほとんどはすでにカバーできます。&lt;/p&gt;
&lt;h2 id=&#34;11-使用上の注意点&#34;&gt;11 使用上の注意点
&lt;/h2&gt;&lt;p&gt;注目すべき点は次の 3 つです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;storage state&lt;/code&gt; ファイルは本質的に機密データであり、ログイン Cookie またはトークンが含まれる場合があります。安易に倉庫に提出しないでください。&lt;/li&gt;
&lt;li&gt;単に Cookie を復元するだけでは必ずしも十分ではなく、多くの最新のサイトは &lt;code&gt;localStorage&lt;/code&gt;、&lt;code&gt;sessionStorage&lt;/code&gt;、または &lt;code&gt;IndexedDB&lt;/code&gt; にも依存しています。&lt;/li&gt;
&lt;li&gt;ステータス ファイルは永続的に有効ではないため、通常、Cookie の有効期限が切れた後、アカウントが変更された後、または環境が切り替わった後に再生成する必要があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;12-簡単なまとめ&#34;&gt;12 簡単なまとめ
&lt;/h2&gt;&lt;p&gt;一文しか覚えていない場合:&lt;/p&gt;
&lt;p&gt;**&lt;code&gt;Playwright CLI&lt;/code&gt; の &lt;code&gt;storage state&lt;/code&gt; は、ブラウザの現在の状態を保存し、後続のタスクで引き続き使用します。 **&lt;/p&gt;
&lt;p&gt;実際のトラブルシューティングでは、最も一般的に使用されるコマンドのセットは次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli storage-state save auth.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli --storage-state auth.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli cookies
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli local-storage
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli session-storage
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli indexed-db
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;最初に保存してからロードします。そうでない場合は、Cookie とさまざまなローカル ストレージ層を確認してください。これは基本的に、このリファレンス ドキュメントの最も実践的な部分です。&lt;/p&gt;
&lt;h2 id=&#34;参考リンク&#34;&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Playwright CLI ストレージ状態リファレンス ドキュメント: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/storage-state.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/storage-state.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Playwright CLI プロジェクトのホームページ: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenHarness とは: このオープンソースの Agent Harness では何ができるのですか?</title>
        <link>https://knightli.com/ja/2026/04/12/openharness-basic-functions/</link>
        <pubDate>Sun, 12 Apr 2026 23:45:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/12/openharness-basic-functions/</guid>
        <description>&lt;p&gt;最近オープンソースの AI エージェント ツールに注目している場合、&lt;code&gt;HKUDS/OpenHarness&lt;/code&gt; は注目に値する新しいプロジェクトです。これは単なる「チャット シェル」ではなく、実行可能、スケーラブル、管理可能なエージェント インフラストラクチャをオープン ソースの &lt;strong&gt;エージェント ハーネス&lt;/strong&gt;に分離します。&lt;/p&gt;
&lt;p&gt;公式 README によると、OpenHarness は主に、ツールの呼び出し、スキルの読み込み、メモリ メカニズム、権限管理、マルチ エージェントの調整など、軽量のエージェントの基本機能のセットを提供します。およびそれに付随する &lt;code&gt;ohmo&lt;/code&gt; は、このインフラストラクチャ上に構築されたパーソナル AI アシスタント アプリケーションです。&lt;/p&gt;
&lt;h2 id=&#34;01-オープンハーネスとは何ですか&#34;&gt;01 オープンハーネスとは何ですか？
&lt;/h2&gt;&lt;p&gt;OpenHarness は、「大きなモデルに手、足、メモリ、境界をインストールする」ランタイム層として理解できます。&lt;/p&gt;
&lt;p&gt;大規模なモデル自体は推論と生成に優れていますが、それを本当に長期間動作できるエージェントにしたい場合は、通常、次の周辺機能が必要です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;テキストを出力するだけでなくツールを調整する&lt;/li&gt;
&lt;li&gt;ファイルの読み取りと書き込み、コマンドの実行、検索機能と Web 機能へのアクセス&lt;/li&gt;
&lt;li&gt;長時間のセッションでもコンテキストとメモリを保持&lt;/li&gt;
&lt;li&gt;危険な操作に対する権限の制御&lt;/li&gt;
&lt;li&gt;大きなタスクを複数のサブエージェントに分割して並列処理する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenHarness の目標は、この「モデル周辺のエンジニアリング層」を、明確でオープンソースでチェック可能な Python 実装に変えることです。これは、特定のモデルや特定のチャット インターフェイスのみを強調するのではなく、エージェントの操作ベースに似ています。&lt;/p&gt;
&lt;h2 id=&#34;02-本プロジェクトの基本機能&#34;&gt;02 本プロジェクトの基本機能
&lt;/h2&gt;&lt;p&gt;現在の GitHub ホームページと README から判断すると、OpenHarness のコア機能は主に次の領域に集中しています。&lt;/p&gt;
&lt;h3 id=&#34;1-agent-loop&#34;&gt;1. Agent Loop
&lt;/h3&gt;&lt;p&gt;これは、エージェントが継続的に動作できるコア実行ループです。公式ハイライトは次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ストリーミングツール呼び出しループ&lt;/li&gt;
&lt;li&gt;API の再試行と指数バックオフ&lt;/li&gt;
&lt;li&gt;ツールの並列実行&lt;/li&gt;
&lt;li&gt;トークンの統計とコストの追跡&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この部分の重要性は、エージェントが単なる「1 つの質問と 1 つの回答」ではなく、継続的に観察し、考え、ツールを呼び出し、結果を読み取り、タスクの次のステップに進むことができることです。&lt;/p&gt;
&lt;h3 id=&#34;2-ツールスキルプラグインシステム&#34;&gt;2. ツール、スキル、プラグインシステム
&lt;/h3&gt;&lt;p&gt;OpenHarness により、ツール層が比較的完全になりました。プロジェクトのホームページには、ファイル、シェル、検索、Web ページ、MCP などのツールが組み込まれており、オンデマンドでの Markdown スキル ファイルの読み込みをサポートしていると記載されています。&lt;/p&gt;
&lt;p&gt;その価値は「より多くのツール」だけではありませんが、さらに重要なのは、その組み合わせ方法が比較的オープンであることです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;組み込みツールを直接使用可能&lt;/li&gt;
&lt;li&gt;スキルはタスクごとにロード可能&lt;/li&gt;
&lt;li&gt;フック、スキル、エージェントはプラグインを通じて拡張可能&lt;/li&gt;
&lt;li&gt;&lt;code&gt;anthropics/skills&lt;/code&gt; および関連プラグイン エコロジーと互換性があります&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このレイヤーは、毎回プロンプトによる一時的な説明に依存するのではなく、特定の固定プロセスを再利用可能な機能にまとめたい場合に役立ちます。&lt;/p&gt;
&lt;h3 id=&#34;3-コンテキストと記憶&#34;&gt;3. コンテキストと記憶
&lt;/h3&gt;&lt;p&gt;この部分は OpenHarness の重要な差別化ポイントです。公式キーワードには次のようなものがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; の検出と挿入&lt;/li&gt;
&lt;li&gt;自動コンテキスト圧縮&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MEMORY.md&lt;/code&gt; 永続メモリ&lt;/li&gt;
&lt;li&gt;セッションの回復と履歴の継続&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは、現在のラウンドの入力を処理するだけでなく、「プロジェクトのコミットメント」、「過去のタスク」、および「長期的な設定」を保持しようとすることを意味し、エージェントを毎回最初から開始するのではなく、継続的な作業により適したものにします。&lt;/p&gt;
&lt;h3 id=&#34;4-当局のガバナンスとセキュリティ境界&#34;&gt;4. 当局のガバナンスとセキュリティ境界
&lt;/h3&gt;&lt;p&gt;エージェントが実際にファイル システム、端末、ネットワークに入った後は、ガバナンスが非常に重要になります。 OpenHarness はこのセクションで次のことを提供します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;マルチレベル権限モード&lt;/li&gt;
&lt;li&gt;パスとコマンドベースのルール制御&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PreToolUse&lt;/code&gt; / &lt;code&gt;PostToolUse&lt;/code&gt; hooks&lt;/li&gt;
&lt;li&gt;インタラクティブな承認ポップアップウィンドウ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;簡単に言うと、エージェントが「できること」だけでなく、「直接実行できることと、最初に確認しなければならないこと」を考慮します。&lt;/p&gt;
&lt;h3 id=&#34;5-マルチエージェントの調整&#34;&gt;5. マルチエージェントの調整
&lt;/h3&gt;&lt;p&gt;OpenHarness は、処理のためにタスクをサブエージェントにオフロードすることもサポートしています。現在の公開情報で言及されている機能には次のものが含まれます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;サブエージェントの作成と委任&lt;/li&gt;
&lt;li&gt;チーム登録とタスク管理&lt;/li&gt;
&lt;li&gt;バックグラウンドタスクのライフサイクル管理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;複雑なタスクの場合、これは、1 つのエージェントに依存して逐次的に進めるだけでなく、並行して共同作業を試みることもできることを意味します。&lt;/p&gt;
&lt;h3 id=&#34;6-マルチプロバイダーのワークフロー&#34;&gt;6. マルチプロバイダーのワークフロー
&lt;/h3&gt;&lt;p&gt;OpenHarness は現在、プロバイダーを単なる基盤となる API 名とは見なさず、それをワークフロー + プロファイルに抽象化します。 README によると、現在サポートされている指示は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude / Anthropic-compatible&lt;/li&gt;
&lt;li&gt;OpenAI-compatible&lt;/li&gt;
&lt;li&gt;Codex Subscription&lt;/li&gt;
&lt;li&gt;GitHub Copilot&lt;/li&gt;
&lt;li&gt;Moonshot (Kimi)、GLM、MiniMax、およびその他の互換性のあるバックエンド&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これにより、特定のサービス プロバイダーに束縛されるのではなく、「マルチモデル、マルチエントリー」エージェント実行フレームワークに似たものになります。&lt;/p&gt;
&lt;h3 id=&#34;7-react-tui-と非対話型モード&#34;&gt;7. React TUI と非対話型モード
&lt;/h3&gt;&lt;p&gt;OpenHarness にはターミナルの対話型インターフェイスが付属しており、&lt;code&gt;oh&lt;/code&gt; を実行した後に React/Ink TUI に入ることができます。公式の README には、以下をサポートしていると記載されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コマンドセレクター&lt;/li&gt;
&lt;li&gt;許可の確認&lt;/li&gt;
&lt;li&gt;機種切り替え&lt;/li&gt;
&lt;li&gt;プロバイダースイッチ&lt;/li&gt;
&lt;li&gt;セッションの再開&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;対話型インターフェイスに入りたくない場合は、結果を標準出力、JSON、またはストリーミング JSON に出力するなど、非対話モードで単一のタスクを直接実行することもできます。これは、スクリプト作成や自動化のシナリオに適しています。&lt;/p&gt;
&lt;h2 id=&#34;03-ohmoとは&#34;&gt;03 &lt;code&gt;ohmo&lt;/code&gt;とは
&lt;/h2&gt;&lt;p&gt;OpenHarness が基盤となるインフラストラクチャである場合、&lt;code&gt;ohmo&lt;/code&gt; は、このインフラストラクチャ上に構築された「パーソナル エージェント アプリケーション」です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ohmo&lt;/code&gt; の位置付けはプロジェクトのホームページで非常に明確です。これは通常のチャットボットではなく、長時間の会話でも機能し続けるパーソナル アシスタントです。公式説明には、Feishu、Slack、Telegram、Discord、その他のチャネルでユーザーと対話し、次のようなタスクを実行できると記載されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;フォークブランチ&lt;/li&gt;
&lt;li&gt;コードを書く&lt;/li&gt;
&lt;li&gt;テストの実行&lt;/li&gt;
&lt;li&gt;PRを始める&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;さらに、README では、&lt;code&gt;ohmo&lt;/code&gt; は既存の Claude Code または Codex サブスクリプション上で実行でき、必ずしも新しい API キーの追加アプリケーションを必要としないことも強調しています。これらのサブスクリプション ツールをすでに使用しているユーザーにとって、これは比較的参入障壁が低いです。&lt;/p&gt;
&lt;h2 id=&#34;04-どんなシーンに適していますか&#34;&gt;04 どんなシーンに適していますか？
&lt;/h2&gt;&lt;p&gt;このプロジェクトで現在公開されている機能から判断すると、OpenHarness は次のタイプの人々に適しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本番レベルのエージェントがどのような基本モジュールで構成されているかを調べたいと思っています。&lt;/li&gt;
&lt;li&gt;スケーラブルなオープンソースのエージェント オペレーティング レイヤーを自分で構築したい&lt;/li&gt;
&lt;li&gt;ツール、スキル、メモリ、権限、マルチエージェントの調整を同じフレームワークに組み込みたい&lt;/li&gt;
&lt;li&gt;単一のモデルメーカーや単一の顧客フォームに束縛されたくない&lt;/li&gt;
&lt;li&gt;既製のアーキテクチャに基づいた垂直分野のエージェントまたはパーソナルアシスタントであり続けたいですか?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;あなたの目標が単に「直接チャットできる完成したアシスタントを見つける」ことである場合、OpenHarness オントロジーは最も軽い選択肢ではないかもしれません。ただし、エージェントのインフラストラクチャ、エンジニアリングの制御性、およびその後の拡張にもっと関心がある場合は、このプロジェクトを検討する価値があります。&lt;/p&gt;
&lt;h2 id=&#34;05-位置付けをすぐに理解する&#34;&gt;05 位置付けをすぐに理解する
&lt;/h2&gt;&lt;p&gt;一文の要約:&lt;/p&gt;
&lt;p&gt;**OpenHarness は、大規模なモデルを実際にタスクを実行できるエージェントに変換する責任を負い、&lt;code&gt;ohmo&lt;/code&gt; は、この一連の機能を、長期間使用できるパーソナル アシスタントにパッケージ化する責任があります。 **&lt;/p&gt;
&lt;p&gt;2 つのレイヤーに分割して確認することもできます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenHarness: オープンソースの Agent Harness、本質はインフラストラクチャです&lt;/li&gt;
&lt;li&gt;ohmo: このインフラストラクチャ上に構築されたパーソナル エージェント アプリ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2026 年 4 月 12 日&lt;/strong&gt;の時点で、プロジェクトの GitHub ホームページには、更新が &lt;strong&gt;v0.1.6 (2026 年 4 月 10 日)&lt;/strong&gt; に進み、引き続き自動コンテキスト圧縮、MCP 転送機能、React TUI、およびマルチエージェント実行の安定性に重点が置かれていることが示されています。これは、まだ急速な進化段階にあることを示していますが、方向性はすでに非常に明確です。&lt;/p&gt;
&lt;h2 id=&#34;参考リンク&#34;&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub プロジェクトのホームページ: &lt;a class=&#34;link&#34; href=&#34;https://github.com/HKUDS/OpenHarness&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/HKUDS/OpenHarness&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;英語の README: &lt;a class=&#34;link&#34; href=&#34;https://github.com/HKUDS/OpenHarness/blob/main/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/HKUDS/OpenHarness/blob/main/README.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;中国語の README: &lt;a class=&#34;link&#34; href=&#34;https://github.com/HKUDS/OpenHarness/blob/main/README.zh-CN.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/HKUDS/OpenHarness/blob/main/README.zh-CN.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Playwright CLI の入門: インストール、スキル、セッション管理、および一般的なコマンド</title>
        <link>https://knightli.com/ja/2026/04/12/playwright-cli-getting-started/</link>
        <pubDate>Sun, 12 Apr 2026 14:36:58 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/12/playwright-cli-getting-started/</guid>
        <description>&lt;p&gt;現在、ブラウザ自動化に Claude Code、GitHub Copilot、またはその他のコーディング エージェントを使用している場合、&lt;code&gt;microsoft/playwright-cli&lt;/code&gt; は注目に値する新しいツールです。これは、「コマンドを手動で入力するために使用される」従来の意味でのブラウザ ガジェットではなく、エージェントをコーディングするための Playwright CLI であり、トークン オーバーヘッドの低減、軽量のコマンド インターフェイス、およびスキル ワークフローとの統合を重視しています。&lt;/p&gt;
&lt;p&gt;公式 README から判断すると、Playwright CLI の核となる考え方は非常に明確です。モデル コンテキストに多数のツール スキーマとページ構造を詰め込む MCP と比較して、CLI コマンド方式はよりコンパクトで、大規模なコード ベース、テスト タスク、ブラウザ自動化の間を行き来するエージェント ワークフローにより適しています。&lt;/p&gt;
&lt;h2 id=&#34;01-playwright-cliとは何ですか&#34;&gt;01 Playwright CLIとは何ですか?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;playwright-cli&lt;/code&gt; は、Microsoft がオープンソース化した Playwright コマンド ライン ツールです。公式説明は「一般的な Playwright アクション用の CLI」です。主に次のことを実現するために使用されます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ページを開いてブラウザを起動します&lt;/li&gt;
&lt;li&gt;Playwright コードを記録して生成する&lt;/li&gt;
&lt;li&gt;ページのスナップショットを取得し、要素の参照を取得します&lt;/li&gt;
&lt;li&gt;スクリーンショット、PDF のエクスポート&lt;/li&gt;
&lt;li&gt;コーディングエージェントと連携して自動テストとWebページ運用を行います。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;現在の GitHub README では、これを非常に明確に位置づけています。コーディング エージェントを使用している場合は、Playwright MCP よりも CLI の方が適していることがよくあります。永続的な状態、豊富なイントロスペクション、長いエージェント ループが必要な場合でも、MCP には価値があります。&lt;/p&gt;
&lt;p&gt;言い換えれば、Playwright CLI は、人間のエンジニアが Web ページを手動でクリックするための単なるツールではなく、「AI コーディング アシスタントのためのブラウザ自動化インターフェイス」に近いものです。&lt;/p&gt;
&lt;h2 id=&#34;02-そのメリットは何ですか&#34;&gt;02 そのメリットは何ですか?
&lt;/h2&gt;&lt;h3 id=&#34;1-エージェントのワークフローにさらに適した&#34;&gt;1. エージェントのワークフローにさらに適した
&lt;/h3&gt;&lt;p&gt;公式READMEには、最初の利点が&lt;code&gt;Token-efficient&lt;/code&gt;として直接書かれています。データのページ全体を LLM コンテキストに強制的に組み込むのではなく、エージェントはより短く、より特殊なコマンドを通じてブラウザを操作できるようになります。&lt;/p&gt;
&lt;p&gt;これはエージェントのコーディングにとって重要です。実際のプロジェクトでは、エージェントはブラウザを実行するだけでなく、コードの読み取り、ファイルの変更、テストの実行、ログの読み取りも行うためです。ブラウザ ツール自体が非常に「コンテキストを食べる」場合、全体の効率が大幅に低下します。&lt;/p&gt;
&lt;h3 id=&#34;2-スキルを使って作業する能力&#34;&gt;2. スキルを使って作業する能力
&lt;/h3&gt;&lt;p&gt;README では特に &lt;code&gt;playwright-cli install --skills&lt;/code&gt; を強調しています。これは、公式がこれを単なるシェルツールとして捉えておらず、Claude Code や GitHub Copilot などのエージェントが直接利用できるスキルの入り口として設計していることを示しています。&lt;/p&gt;
&lt;p&gt;ワークフロー自体がスキルに基づいて構築されている場合は、Playwright CLI への接続がより自然になります。&lt;/p&gt;
&lt;h3 id=&#34;3-セッション管理が比較的完了している&#34;&gt;3. セッション管理が比較的完了している
&lt;/h3&gt;&lt;p&gt;Playwright CLI はセッションをサポートします。デフォルトでは、ブラウザ プロファイルはメモリに保存され、同じセッション内の Cookie とストレージは複数の CLI 呼び出し間で保持されます。 &lt;code&gt;--persistent&lt;/code&gt; が追加された場合、プロファイルをディスクにドロップし、ブラウザを再起動しても引き続き使用することもできます。&lt;/p&gt;
&lt;p&gt;これにより、「コマンド 1 つでブラウザを開いて実行後に​​破棄する」というおもちゃのツールよりも実用的となり、継続的なデバッグやエージェントの長時間プロセスの実行にも適しています。&lt;/p&gt;
&lt;h3 id=&#34;4-視覚監視パネルが付属しています&#34;&gt;4. 視覚監視パネルが付属しています
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;playwright-cli show&lt;/code&gt; は README に含まれており、ダッシュボードを開いて実行中のすべてのブラウザー セッションを監視および制御するために使用されます。これは、ただやみくもに実行するのではなく、いつでも引き継ぎ、監視、トラブルシューティングを行うことができるため、エージェントがバックグラウンドで自動化されたタスクを実行するシナリオで役立ちます。&lt;/p&gt;
&lt;h2 id=&#34;03-設置および環境要件&#34;&gt;03 設置および環境要件
&lt;/h2&gt;&lt;p&gt;現在の GitHub README によると、Playwright CLI の基本要件は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Node.js 18 以降&lt;/li&gt;
&lt;li&gt;Claude Code、GitHub Copilot、またはその他のコーディング エージェント&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;インストールコマンドは以下のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @playwright/cli@latest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli --help
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ここには特に注意しなければならない非常に簡単な落とし穴があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;現在推奨されている公式インストールは &lt;code&gt;@playwright/cli&lt;/code&gt; です。&lt;/li&gt;
&lt;li&gt;これを、npm 上の歴史的で非推奨となった古いパッケージ &lt;code&gt;playwright-cli&lt;/code&gt; と混同しないでください。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、実際にインストールする必要があるのは、古い時代からの同名の履歴パッケージではなく、スコープ指定されたパッケージです。&lt;/p&gt;
&lt;h2 id=&#34;04-始め方&#34;&gt;04 始め方
&lt;/h2&gt;&lt;h3 id=&#34;1-スキルをインストールする&#34;&gt;1. スキルをインストールする
&lt;/h3&gt;&lt;p&gt;コーディング エージェントに Playwright CLI を直接使用させたい場合は、最初にスキルをインストールすることが公式推奨されています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli install --skills
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;README には、Claude Code や GitHub Copilot などのツールがローカルにインストールされたスキルを使用することが明確に記載されています。&lt;/p&gt;
&lt;h3 id=&#34;2-エージェントに-cli-を直接呼び出させる&#34;&gt;2. エージェントに CLI を直接呼び出させる
&lt;/h3&gt;&lt;p&gt;最初にスキルを処理したくない場合は、エージェントに CLI ヘルプ情報を直接読み取らせることもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Test the &amp;#34;add todo&amp;#34; flow on https://demo.playwright.dev/todomvc using playwright-cli.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Check playwright-cli --help for available commands.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;正式にはこの方法を「スキルレス操作」といいます。これは、スキルがプリインストールされていない場合でも、CLI 自己記述機能を通じてエージェントを駆動できることを意味します。&lt;/p&gt;
&lt;h3 id=&#34;3-最小限の工程を手動で体験&#34;&gt;3. 最小限の工程を手動で体験
&lt;/h3&gt;&lt;p&gt;README には、開始するのに非常に適した一連の TodoMVC サンプルが含まれています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://demo.playwright.dev/todomvc/ --headed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Buy groceries&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli press Enter
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Water flowers&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli press Enter
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli check e21
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli check e35
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli screenshot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このコマンド セットの価値は、Playwright CLI がどのように対話するかをすぐに理解できることです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;open&lt;/code&gt; はページを開く責任があります&lt;/li&gt;
&lt;li&gt;&lt;code&gt;type&lt;/code&gt; および &lt;code&gt;press&lt;/code&gt; は入力を担当します&lt;/li&gt;
&lt;li&gt;&lt;code&gt;check&lt;/code&gt; 要素参照を使用したチェックボックスの操作&lt;/li&gt;
&lt;li&gt;&lt;code&gt;screenshot&lt;/code&gt; 結果を保存&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;05---headedセッションおよびモニタリングパネル&#34;&gt;05 &lt;code&gt;--headed&lt;/code&gt;、セッションおよびモニタリングパネル
&lt;/h2&gt;&lt;h3 id=&#34;--headed&#34;&gt;&lt;code&gt;--headed&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Playwright CLI はデフォルトではヘッドレスです。ブラウザ ウィンドウを直接表示したい場合は、&lt;code&gt;--headed&lt;/code&gt; を &lt;code&gt;open&lt;/code&gt; に明示的に追加する必要があります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://playwright.dev --headed
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは、セレクター、ログイン プロセス、検証コードの前後のインタラクティブな観察のデバッグに便利です。&lt;/p&gt;
&lt;h3 id=&#34;session&#34;&gt;session
&lt;/h3&gt;&lt;p&gt;公式 README ではセッションの使用法が強調されています。異なるセッションを使用して、異なるプロジェクトまたは Web サイトを分離できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://playwright.dev
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;example open https://example.com --persistent
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli list
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;エージェントを長時間動作させたい場合は、環境変数を直接指定することもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PLAYWRIGHT_CLI_SESSION&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;todo-app claude .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;一般的に使用されるセッション管理コマンドには次のものがあります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli list
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli close-all
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli kill-all
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;で：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;list&lt;/code&gt; はすべてのセッションをリストするために使用されます&lt;/li&gt;
&lt;li&gt;&lt;code&gt;close-all&lt;/code&gt; は、すべてのブラウザを通常どおり閉じるために使用されます。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kill-all&lt;/code&gt; は、すべてのブラウザ プロセスを強制的に終了するために使用されます。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;監視パネル&#34;&gt;監視パネル
&lt;/h3&gt;&lt;p&gt;ブラウザでエージェントが現在何を行っているかを確認したい場合は、次のコマンドを実行できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli show
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;README によると、このダッシュボードには主に 2 つのビューがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;セッション グリッド: すべてのアクティブなセッションをワークスペースごとに表示し、ライブ ビュー、URL、ページ タイトルを表示します。&lt;/li&gt;
&lt;li&gt;セッションの詳細: 単一セッションのリアルタイム インターフェイスを表示し、マウスとキーボードを引き継ぐこともできます&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これにより、Playwright CLI は「コマンドラインが利用可能」になるだけでなく、比較的成熟した可観測性も備えます。&lt;/p&gt;
&lt;h2 id=&#34;06-最初に覚えるべき一般的なコマンドはどれですか&#34;&gt;06 最初に覚えるべき一般的なコマンドはどれですか?
&lt;/h2&gt;&lt;p&gt;Playwright CLI を初めて使用する場合は、最初からすべてのコマンドを覚える必要はありません。最初に次の中心点を覚えておくだけで十分です。&lt;/p&gt;
&lt;h3 id=&#34;ページとインタラクション&#34;&gt;ページとインタラクション
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;url&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli goto &amp;lt;url&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli click &amp;lt;ref&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli fill &amp;lt;ref&amp;gt; &amp;lt;text&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt; &amp;lt;text&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli hover &amp;lt;ref&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli press &amp;lt;key&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ページ構造を取得する&#34;&gt;ページ構造を取得する
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli snapshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli snapshot &amp;lt;ref&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli snapshot --depth&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;N
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli &lt;span class=&#34;nb&#34;&gt;eval&lt;/span&gt; &amp;lt;func&amp;gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;ref&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;後続の多くの操作は要素参照 &lt;code&gt;ref&lt;/code&gt; に依存するため、&lt;code&gt;snapshot&lt;/code&gt; は重要です。通常は、最初にスナップショットを取得し、次に返された要素番号を使用してクリック、入力、チェック、またはスクリーンショットの取得を行います。&lt;/p&gt;
&lt;h3 id=&#34;出力結果&#34;&gt;出力結果
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli screenshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli pdf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;タブページ&#34;&gt;タブページ
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli tab-list
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli tab-new &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;url&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli tab-close &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;index&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli tab-select &amp;lt;index&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;07-どんな人に向いていますか&#34;&gt;07 どんな人に向いていますか？
&lt;/h2&gt;&lt;p&gt;次のいずれかのシナリオに該当する場合は、Playwright CLI を試してみる価値があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;E2E テストに Claude Code、Copilot、またはその他のコーディング エージェントを使用している&lt;/li&gt;
&lt;li&gt;ブラウザ自動化インターフェイスをより軽量にしたいが、コンテキストに多くのページ構造を詰め込みたくない場合&lt;/li&gt;
&lt;li&gt;複数のコマンド間で同じブラウザ セッションを維持したい場合&lt;/li&gt;
&lt;li&gt;エージェントが Web ページ タスクを自動的に実行するとき、いつでも監視パネルを開いて進行状況を観察したいと考えています。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;「ブラウザの自動化がコーディング エージェントとどのように効果的に連携できるか」が仕事の焦点である場合、Playwright CLI は従来の人による手動のデバッグ方法よりも便利である可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;参考リンク&#34;&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;README: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli/blob/main/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli/blob/main/README.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Hermes Agent とは: 概要、利点、クイック スタート、OpenClaw との比較</title>
        <link>https://knightli.com/ja/2026/04/12/hermes-agent-intro-guide-vs-openclaw/</link>
        <pubDate>Sun, 12 Apr 2026 14:07:58 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/12/hermes-agent-intro-guide-vs-openclaw/</guid>
        <description>&lt;p&gt;最近オープンソース AI エージェントに注目している場合、&lt;code&gt;Hermes Agent&lt;/code&gt; は注目に値する新しいプロジェクトです。ヌース・リサーチ社によって発売されました。その中心的なセールスポイントは、「別のチャット シェルを作成する」ことではなく、長期記憶、スキルの蓄積、コンテキスト ファイル、MCP 拡張機能、メッセージ ゲートウェイ、およびサブエージェントの並列処理の機能を統合エージェント実行環境に統合しようとすることです。&lt;/p&gt;
&lt;p&gt;公式 README から判断すると、Hermes Agent の目標は非常に明確です。ローカル CLI アシスタントのように、またはクラウドに常駐するパーソナル アシスタントのようにターミナル内で動作し、Telegram、Discord、Slack、WhatsApp、Signal などのチャネルを通じて継続的に話しかけることができます。この位置付けは、「コード アシスタント」、「自動化アシスタント」、「パーソナル AI ワークベンチ」を 1 つのシステムに組み合わせたいユーザーにとって、非常に魅力的です。&lt;/p&gt;
&lt;h2 id=&#34;01-エルメス代理店紹介&#34;&gt;01 エルメス代理店紹介
&lt;/h2&gt;&lt;p&gt;Hermes Agent は、Nous Research が開発したオープンソースの自己改善型 AI エージェントです。 Nous Portal、OpenRouter、OpenAI、カスタム OpenAI 互換エンドポイントなど、複数のモデル プロバイダーをサポートします。また、ローカル ターミナル、Docker、SSH、Daytona、Modal などのさまざまな実行バックエンドでの実行もサポートされます。&lt;/p&gt;
&lt;p&gt;多くの「ツールを呼び出すことができるチャットボット」との最大の違いは、Hermes は 1 つのセッションでのツール呼び出しだけを重視するのではなく、セッション全体での継続的な機能構築を重視していることです。公式ドキュメントでは、このアイデアをいくつかの部分に分割しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;永続メモリ: &lt;code&gt;MEMORY.md&lt;/code&gt; および &lt;code&gt;USER.md&lt;/code&gt; を通じて、環境、プロジェクト、およびユーザー設定に関する重要な情報を保存します。&lt;/li&gt;
&lt;li&gt;スキル システム: 複雑なタスクで学習したプロセスをスキルにまとめ、オンデマンドでロードします。&lt;/li&gt;
&lt;li&gt;コンテキスト ファイル: &lt;code&gt;AGENTS.md&lt;/code&gt;、&lt;code&gt;SOUL.md&lt;/code&gt;、&lt;code&gt;.cursorrules&lt;/code&gt; およびその他のファイルを自動的に読み取り、プロジェクト規約をセッションに直接挿入します。&lt;/li&gt;
&lt;li&gt;MCP の統合: MCP 互換のツール サーバーに接続して、データベース、GitHub、ファイル システム、クロールなどの機能を拡張できます。&lt;/li&gt;
&lt;li&gt;メッセージ ゲートウェイ: CLI に加えて、Telegram、Discord、Slack、WhatsApp、Signal、電子メール、その他のポータル経由でも使用できます。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一言で要約すると、Hermes Agent は「メモリ、スキル、スケーラビリティ、およびマルチエンド アクセスを備えたユニバーサル エージェント操作層」に似ています。&lt;/p&gt;
&lt;h2 id=&#34;02-そのメリットは何ですか&#34;&gt;02 そのメリットは何ですか?
&lt;/h2&gt;&lt;h3 id=&#34;1-cli-ワークフローとメッセージング-ワークフローの両方をカバーする&#34;&gt;1. CLI ワークフローとメッセージング ワークフローの両方をカバーする
&lt;/h3&gt;&lt;p&gt;エージェントプロジェクトの多くは「端末内開発アシスタント」か「チャットプラットフォームロボット」のどちらかです。エルメスがやりたいのは、これら 2 つを融合することです。ターミナルで &lt;code&gt;hermes&lt;/code&gt; を直接実行することも、ゲートウェイを起動して Telegram または Discord から同じアシスタントを継続することもできます。&lt;/p&gt;
&lt;p&gt;このデザインの良いところは、エルメスが「コンピューターの前に座っているときにだけ使える」ということに限定されていないことです。クラウドまたは VPS に導入すると、常にオンラインのパーソナル AI アシスタントになります。&lt;/p&gt;
&lt;h3 id=&#34;2長期使用をより徹底して考える&#34;&gt;2.「長期使用」をより徹底して考える
&lt;/h3&gt;&lt;p&gt;ヘルメスは単にチャットやツールの調整を行うだけではなく、長期的な蓄積も重視しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;無限のヒープ コンテキストではなく、制限された永続メモリ。&lt;/li&gt;
&lt;li&gt;成功したプロセスを保存して再利用できるスキル システムがあります。&lt;/li&gt;
&lt;li&gt;過去のセッションを検索し、セッション間の呼び出しを実行する機能。&lt;/li&gt;
&lt;li&gt;プロジェクト内のコンテキスト ファイルを読み取ることができるため、プロジェクトの背景を毎回繰り返し説明する必要性が軽減されます。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは、固定されたコード ベース、固定されたワークフロー、固定されたチーム基準で繰り返し作業することが多いユーザーにとって重要です。これは、エージェントが「今回はあなたのために何かをしてくれる」だけではなく、徐々にあなたの環境をよりよく理解するようになるということを意味します。&lt;/p&gt;
&lt;h3 id=&#34;3-mcp-サポートにより拡張性が非常に強力になります&#34;&gt;3. MCP サポートにより拡張性が非常に強力になります
&lt;/h3&gt;&lt;p&gt;hermes の公式ドキュメントでは、MCP を明確にサポートしており、stdio と HTTP という 2 つのアクセス方法について説明しています。言い換えれば、外部システムにすでに MCP サーバーがある限り、Hermes は理論的には低コストでそれにアクセスできます。&lt;/p&gt;
&lt;p&gt;これは、単一システムに対して毎回個別のプラグインを作成するよりも柔軟です。 MCP エコシステムに多数のツールを蓄積している人にとって、Hermes へのアクセス コストははるかに低くなります。&lt;/p&gt;
&lt;h3 id=&#34;4-openclaw-ユーザーに優しい&#34;&gt;4. OpenClaw ユーザーに優しい
&lt;/h3&gt;&lt;p&gt;これはとても興味深いですね。 Hermes README には &lt;code&gt;hermes claw migrate&lt;/code&gt; が直接提供されており、構成、メモリ、スキル、API キー、メッセージング プラットフォームの設定などを OpenClaw からインポートできることが記載されています。&lt;/p&gt;
&lt;p&gt;これは、既存のエコロジーを完全に無視して車輪を再発明しているわけではなく、一部の OpenClaw ユーザーを潜在的な移行ターゲットとして明確にみなしていることを示しています。&lt;/p&gt;
&lt;h2 id=&#34;03-すぐに始める方法&#34;&gt;03 すぐに始める方法
&lt;/h2&gt;&lt;p&gt;公式に推奨されている Hermes Agent のインストール方法は非常に簡単です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;公式の手順では、Linux、macOS、WSL2、Android の Termux がサポートされています。 README には、ネイティブ Windows はまだサポートされていないため、Windows ユーザーには WSL2 を使用することが推奨されていることが明記されていることに注意してください。&lt;/p&gt;
&lt;p&gt;インストールが完了したら、通常は最初にシェルを更新します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;source&lt;/span&gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;その後、直接開始できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;段階的に完全な初期化を完了したい場合、最も心配のないコマンドは次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes setup
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;公式ドキュメントと README によると、初めて開始するには次の手順に従うことができます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;hermes setup&lt;/code&gt; を実行して、基本構成を完了します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hermes model&lt;/code&gt; を使用して、モデルプロバイダーとモデルを選択します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hermes tools&lt;/code&gt; スイッチにはツールセットが必要です。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hermes&lt;/code&gt; を直接実行して対話型 CLI に入ります。&lt;/li&gt;
&lt;li&gt;Telegram や Discord などのチャネルに接続する場合は、&lt;code&gt;hermes gateway&lt;/code&gt; の構成を続けます。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;OpenClaw ユーザーの場合は、移行コマンドを確認することもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes claw migrate --dry-run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;正式にインポートするかどうかを決定する前に、移行可能なコンテンツをプレビューします。&lt;/p&gt;
&lt;h2 id=&#34;04-と-openclaw-はどうですか&#34;&gt;04 と OpenClaw はどうですか?
&lt;/h2&gt;&lt;p&gt;公式ドキュメントや README から判断すると、Hermes Agent と OpenClaw は単に「誰が誰を置き換えるか」というだけではなく、位置づけにおいては明らかに重複していますが、焦点は異なります。&lt;/p&gt;
&lt;h3 id=&#34;ヘルメスエージェントとはどのようなものですか&#34;&gt;ヘルメスエージェントとはどのようなものですか?
&lt;/h3&gt;&lt;p&gt;エルメスはどちらかというとエージェントコアとワークフローシステムに重点を置いた製品です。それが強調していることは次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CLI の経験&lt;/li&gt;
&lt;li&gt;記憶とスキルの蓄積&lt;/li&gt;
&lt;li&gt;プロジェクトコンテキストファイル&lt;/li&gt;
&lt;li&gt;MCP拡張子&lt;/li&gt;
&lt;li&gt;サブエージェントの並列処理&lt;/li&gt;
&lt;li&gt;ローカル、コンテナ、リモート、サーバーレス環境間で実行バックエンドを切り替える&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;あなたの主な要求が「エージェントにプロジェクトをよりよく理解させ、継続的な再利用機能を向上させ、MCP と開発ワークフローへの接続を容易にする」ことである場合、Hermes の方向性はより便利になります。&lt;/p&gt;
&lt;h3 id=&#34;openclaw-とはどのようなものですか&#34;&gt;OpenClaw とはどのようなものですか?
&lt;/h3&gt;&lt;p&gt;OpenClaw は、パーソナル AI アシスタントとメッセージング ゲートウェイを中心としたプラットフォームです。それは次のように強調します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;メッセージチャネルへの非常に豊富なアクセス&lt;/li&gt;
&lt;li&gt;ゲートウェイを実行する常駐者&lt;/li&gt;
&lt;li&gt;ブラウザーでの UI の制御&lt;/li&gt;
&lt;li&gt;デバイスのペアリング、リモートアクセス、ステータス管理&lt;/li&gt;
&lt;li&gt;音声、モバイル、キャンバスなどの強力なアシスタント形式。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;「さまざまなチャット チャネルやデバイス上でパーソナル AI アシスタントを安定させる」ことが主なニーズであり、コントロール パネルを使用して均一に管理したい場合は、OpenClaw の製品感が強くなります。&lt;/p&gt;
&lt;h3 id=&#34;より現実的な選択の提案&#34;&gt;より現実的な選択の提案
&lt;/h3&gt;&lt;p&gt;この 2 つは単純に次のように理解できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ヘルメスエージェント：「成長する総合エージェントのワークベンチ」&lt;/li&gt;
&lt;li&gt;OpenClaw: 「マルチチャネル常駐パーソナル AI アシスタント プラットフォーム」のようなもの&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もちろん、この違いは絶対的なものではなく、双方とも機能を拡張し続けており、Hermes は OpenClaw からの移行パスも提供しています。しかし、少なくとも現在の公開情報から判断すると、Hermes は「メモリ、スキル、コンテキスト、MCP、開発ワークフロー」の分野でより顕著です。 OpenClaw は、「ゲートウェイ、マルチチャネル、コントロール UI、デバイス アクセス」の分野でより成熟しています。&lt;/p&gt;
&lt;h2 id=&#34;05-どんな人に試してほしいの&#34;&gt;05 どんな人に試してほしいの？
&lt;/h2&gt;&lt;p&gt;あなたが次のカテゴリーに属する人であれば、Hermes Agent を最初に試してみる価値があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;あなたはターミナルで AI ツールを広範囲に使用しており、エージェントがコード ベースとプロジェクト ルールをよりよく理解できるようになることを期待しています。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;、スキル、記憶、MCP 能力を組み合わせたいと考えています。&lt;/li&gt;
&lt;li&gt;単一のモデル ベンダーに縛られることなく、柔軟にプロバイダーを切り替えられるようにしたいと考えています。&lt;/li&gt;
&lt;li&gt;以前に OpenClaw を使用していましたが、今度はよりエージェント指向のワークフローの方向を試したいと考えています。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;より多くのモバイルリーチ、さまざまな IM プラットフォームへのアクセス、ブラウザ コンソール、および「常時接続のパーソナル アシスタントの感覚」を重視する場合は、OpenClaw が依然として魅力的です。&lt;/p&gt;
&lt;h2 id=&#34;参考リンク&#34;&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Hermes Agent GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NousResearch/hermes-agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NousResearch/hermes-agent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ヘルメスエージェントドキュメント: &lt;a class=&#34;link&#34; href=&#34;https://hermes-agent.nousresearch.com/docs/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://hermes-agent.nousresearch.com/docs/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hermes Features Overview: &lt;a class=&#34;link&#34; href=&#34;https://hermes-agent.nousresearch.com/docs/user-guide/features/overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://hermes-agent.nousresearch.com/docs/user-guide/features/overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hermes MCP: &lt;a class=&#34;link&#34; href=&#34;https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/openclaw/openclaw&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/openclaw/openclaw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw Getting Started: &lt;a class=&#34;link&#34; href=&#34;https://docs.openclaw.ai/start/quickstart&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.openclaw.ai/start/quickstart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw Control UI: &lt;a class=&#34;link&#34; href=&#34;https://docs.openclaw.ai/web/control-ui&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.openclaw.ai/web/control-ui&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenClaw 脳に似た記憶アルゴリズム 夢を見る: 機械は夢を見始めるが、人間は不眠症になる</title>
        <link>https://knightli.com/ja/2026/04/12/openclaw-dreaming-machine-dreams-humans-lose-sleep/</link>
        <pubDate>Sun, 12 Apr 2026 12:41:34 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/12/openclaw-dreaming-machine-dreams-humans-lose-sleep/</guid>
        <description>&lt;p&gt;大規模モデルの長期記憶は常に問題でした。コンテキストが蓄積すればするほど、情報が混乱しやすくなります。知的なエージェントはすべてを覚えているように見えますが、実際には、何が重要で、何が忘れるべきかを判断することがますます困難になります。&lt;/p&gt;
&lt;p&gt;4 月 5 日、OpenClaw は新バージョンの実験機能「Dreaming」を開始しました。これは派手な名前ではなく、人間の睡眠プロセスを模倣する一連のバックグラウンド記憶構成メカニズムです。目標は非常に単純で、知的エージェントが目覚めた後により正確に記憶できるようにすることです。&lt;/p&gt;
&lt;h2 id=&#34;01-睡眠アルゴリズム記憶整理を3段階に分ける&#34;&gt;01 睡眠アルゴリズム：記憶整理を3段階に分ける
&lt;/h2&gt;&lt;p&gt;夢を見ることは単にインデックスを作成することではなく、人間の睡眠中のさまざまな機能に対応して、記憶を 3 つの論理的な段階に編成します。&lt;/p&gt;
&lt;p&gt;浅い睡眠: システムは最初に最近の会話と思い出の記録をスキャンし、重複の削除と予備的なスクリーニングを実行して、候補コンテンツを生成します。この段階では、一時的な保存のみが実行され、コア メモリ ファイル &lt;code&gt;MEMORY.md&lt;/code&gt; は直接変更されません。&lt;/p&gt;
&lt;p&gt;ディープ スリープ: システムは、ルールに従って価値の高い情報のフィルタリングを開始します。最低の評価、最低のリコール数、最低の固有クエリ数を満たす情報のみが次のステップに進みます。書き込む前に、最新のログが再度比較され、古い内容が削除されます。最後に、結果は &lt;code&gt;MEMORY.md&lt;/code&gt; に追加され、ディープ スリープの概要が &lt;code&gt;DREAMS.md&lt;/code&gt; に残ります。&lt;/p&gt;
&lt;p&gt;急速眼球運動段階 (REM): 記憶が定着した後、システムはさらに短期の行動追跡を分析し、異なる情報間の潜在的なつながりを探し、パターンの要約と反映内容を生成します。この部分は、エージェントが複雑なタスクを処理するときに全体の状況をより簡単に把握できるように、専用の REM ブロックに書き込まれます。&lt;/p&gt;
&lt;p&gt;マシン自体の記憶整理メカニズムに加えて、Dreaming は人間の読書により適した「夢日記」も生成します。素材がある程度溜まるとバックグラウンドサブエージェントがデフォルトモデルを呼び出して&lt;code&gt;DREAMS.md&lt;/code&gt;に簡潔な記述を追加します。&lt;/p&gt;
&lt;h2 id=&#34;02-採点の仕組み何を残し何を忘れるべきかを決める&#34;&gt;02 採点の仕組み：何を残し、何を忘れるべきかを決める
&lt;/h2&gt;&lt;p&gt;夢を見るための鍵は「整理する」だけではなく「ふるい分ける」ことです。 OpenClaw は、大規模なフルスケール ストレージを使用し続ける代わりに、重み付けされたスコアリング メカニズムを使用して、どの情報を長期記憶に入れる価値があるかを判断します。&lt;/p&gt;
&lt;p&gt;このメカニズムは主に次の 6 つの次元に注目します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;関連性の重み (30%): 情報が検索されたときに役立つかどうかを測定します。&lt;/li&gt;
&lt;li&gt;頻度重み付け (24%): ある情報が繰り返し言及された回数をカウントします。&lt;/li&gt;
&lt;li&gt;クエリの多様性 (15%): さまざまな質問やシナリオにわたってそれが現れるかどうかを確認します。&lt;/li&gt;
&lt;li&gt;適時性の重み (15%): より新しい情報に高い優先度を与えます。&lt;/li&gt;
&lt;li&gt;統合の重み (10%): 情報が複数の日に渡って安定して表示されるかどうかを確認します。&lt;/li&gt;
&lt;li&gt;コンセプトの豊富さ (6%): その背後にある関連コンセプトが十分に充実しているかどうかを判断します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは、システムが長期記憶にすべてを詰め込むのではなく、繰り返し表示され、問題を解決し、時代を超えた情報を保持することを優先することを意味します。&lt;/p&gt;
&lt;h2 id=&#34;03-なぜクロードの夢の考えを人々に思い出させるのでしょうか&#34;&gt;03 なぜクロードの「夢」の考えを人々に思い出させるのでしょうか?
&lt;/h2&gt;&lt;p&gt;一部の開発者は、OpenClaw の Dreaming アップグレードの背後にあるアイデアが、Claude Code の漏洩コードに登場した KAIROS 自動ドリーミング メカニズムと非常によく似ていると信じています。以前は、&lt;code&gt;MEMORY.md&lt;/code&gt; 全体の読み取りと書き込みを繰り返す方法では、後の段階でメモリ システムがますます肥大化する可能性がありました。一方、Dreaming はプロセスを浅い睡眠の統合、深い睡眠の固化、REM の関連付けに分割します。ロジックは明らかにより明確で、「最初に組織化し、次に沈殿させ、次に精製する」というアイデアに近くなります。&lt;/p&gt;
&lt;p&gt;神経科学の観点からこのデザインを肯定する人もいます。なぜなら、夢、浅い睡眠、深い睡眠、レムの概念は単なるランダムな名前ではなく、記憶を定着させるために明らかに人間の睡眠モデルから借用したものだからです。&lt;/p&gt;
&lt;p&gt;OpenClaw の既存の &lt;code&gt;IDENTITY.md&lt;/code&gt;、&lt;code&gt;USER.md&lt;/code&gt;、&lt;code&gt;HEARTBEAT.md&lt;/code&gt; はすでにエージェントの個性、ユーザー コンテキスト、実行継続性を提供していますが、&lt;code&gt;DREAMS.md&lt;/code&gt; が追加するのは「どの記憶を保持するか」を指定する機能です。&lt;/p&gt;
&lt;h2 id=&#34;04-最も皮肉なシーン-機械は夢を見ることを学ぶが人間は眠れない&#34;&gt;04 最も皮肉なシーン: 機械は夢を見ることを学ぶが、人間は眠れない
&lt;/h2&gt;&lt;p&gt;Dreaming の本当の価値は、AI にすべてを記憶させることではなく、短期記憶を見直し、基礎となるパターンを抽出し、ノイズをフィルターする方法を学習させることです。本当に役立つエージェントは、モバイル ハード ドライブのように丸暗記するのではなく、ユーザーの好み、目標、背景をますます理解する必要があります。&lt;/p&gt;
&lt;p&gt;工学的な観点から見ると、このメカニズムの最も注目すべき点は、それが神秘的ではないということです。これはブラック ボックス マジックではなく、ステージ、しきい値、反映、および忘却ルールを備えた一連のバックグラウンド プロセスです。この設計により、AI の記憶メカニズムが、単なる「コンテキストの無限のヒープ」ではなく、初めて「制御可能なシステム」のように見えます。&lt;/p&gt;
&lt;p&gt;しかし、それが全体を少し皮肉なものにしているのです。私たちは機械に人間のように夢を見る方法を教えるために多大なリソースを投資していますが、同時に多くの人々がこれらのますますスマート化するシステムに取って代わられるのではないかという恐怖で眠れなくなっています。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>llama-quantize の使用方法: GGUF モデル量子化の概要</title>
        <link>https://knightli.com/ja/2026/04/12/llama-quantize-gguf-guide/</link>
        <pubDate>Sun, 12 Apr 2026 09:42:36 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/12/llama-quantize-gguf-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;llama-quantize&lt;/code&gt; は、&lt;code&gt;llama.cpp&lt;/code&gt; の量子化ツールで、高精度 &lt;code&gt;GGUF&lt;/code&gt; モデルをより小さい量子化バージョンに変換するために使用されます。&lt;/p&gt;
&lt;p&gt;最も一般的な用途は、&lt;code&gt;F32&lt;/code&gt;、&lt;code&gt;BF16&lt;/code&gt;、&lt;code&gt;FP16&lt;/code&gt; などの高精度モデルを、ローカル操作に適した &lt;code&gt;Q4_K_M&lt;/code&gt;、&lt;code&gt;Q5_K_M&lt;/code&gt;、&lt;code&gt;Q8_0&lt;/code&gt; などの形式に変換することです。量子化後、モデルのサイズは大幅に小さくなり、通常は推論が速くなりますが、精度はある程度低下します。&lt;/p&gt;
&lt;h2 id=&#34;基本的な使い方&#34;&gt;基本的な使い方
&lt;/h2&gt;&lt;p&gt;一般的なプロセスでは、通常、最初に元のモデルを準備し、次にそれを GGUF に変換し、最後に定量化を実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# install Python dependencies&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 -m pip install -r requirements.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# convert the model to ggml FP16 format&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 convert_hf_to_gguf.py ./models/mymodel/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# quantize the model to 4-bits (using Q4_K_M method)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./llama-quantize ./models/mymodel/ggml-model-f16.gguf ./models/mymodel/ggml-model-Q4_K_M.gguf Q4_K_M
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;量子化が完了したら、&lt;code&gt;llama-cli&lt;/code&gt; を直接使用して新しい GGUF ファイルをロードできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# start inference on a gguf model&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./llama-cli -m ./models/mymodel/ggml-model-Q4_K_M.gguf -cnv -p &lt;span class=&#34;s2&#34;&gt;&amp;#34;You are a helpful assistant&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;共通パラメータ&#34;&gt;共通パラメータ
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--allow-requantize&lt;/code&gt;: すでに定量化されたモデルの再定量化が可能ですが、品質が大幅に低下する可能性があるため、通常は推奨されません。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--leave-output-tensor&lt;/code&gt;: 量子化せずに出力レイヤーを保持します。ボリュームは大きくなりますが、場合によっては品質が向上する場合があります。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--pure&lt;/code&gt;: 混合量子化をオフにして、より多くのテンソルが同じ量子化タイプを使用できるようにします。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--imatrix&lt;/code&gt;: 重要度マトリックスを使用して量子化効果を最適化します。通常は優先順位を付ける価値があります。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--keep-split&lt;/code&gt;: 単一ファイルにマージするのではなく、入力モデルのシャード構造を保持します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;単に始めたい場合は、最も現実的な出発点は次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./llama-quantize ./models/mymodel/ggml-model-f16.gguf ./models/mymodel/ggml-model-Q4_K_M.gguf Q4_K_M
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;定量化の選び方&#34;&gt;定量化の選び方
&lt;/h2&gt;&lt;p&gt;まず、さまざまな定量化レベルを「体積、速度、質量の間の交換」として理解することができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q8_0&lt;/code&gt;: サイズは大きくなりますが、一般に品質がより安定しています。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q6_K&lt;/code&gt; / &lt;code&gt;Q5_K_M&lt;/code&gt;: 共通のバランス型オプション&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q4_K_M&lt;/code&gt;: 非常に一般的なデフォルト ファイル。通常、音量とエフェクトは比較的バランスが取れています。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q3&lt;/code&gt; / &lt;code&gt;Q2&lt;/code&gt;: リソースが非常に不足しているが、品質の低下がより明らかになるシナリオに適しています。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;与えられたデータ例から判断すると、通常、量子化レベルが低いほど、モデルは小さくなります。実際の推論では、精度が高いほど必ずしも高速であるとは限りません。そのため、通常、選択の焦点は「大きいほど良い」ではなく、「ハードウェア上で十分に安定しており、十分に経済的で、効果が許容範囲である」ことに重点を置きます。&lt;/p&gt;
&lt;h2 id=&#34;実践的なアドバイス&#34;&gt;実践的なアドバイス
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q4_K_M&lt;/code&gt; または &lt;code&gt;Q5_K_M&lt;/code&gt; から優先順位を付ける&lt;/li&gt;
&lt;li&gt;品質がより重要な場合は、&lt;code&gt;Q6_K&lt;/code&gt; または &lt;code&gt;Q8_0&lt;/code&gt; にアップグレードしてください。&lt;/li&gt;
&lt;li&gt;マシン リソースが不足している場合は、&lt;code&gt;Q3&lt;/code&gt; または &lt;code&gt;Q2&lt;/code&gt; を試してください。&lt;/li&gt;
&lt;li&gt;異なる量子化バージョンを比較するには、常に同じバッチのテスト問題を使用することが最善です&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一文の要約: &lt;code&gt;llama-quantize&lt;/code&gt; の中心的な価値は、単にモデルを小さくすることではなく、GGUF モデルをローカル デバイス上で実行しやすくすることです。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>llama.cpp Hugging Face から GGUF モデルを取得する方法</title>
        <link>https://knightli.com/ja/2026/04/12/llama-cpp-hugging-face-gguf-models/</link>
        <pubDate>Sun, 12 Apr 2026 09:31:38 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/12/llama-cpp-hugging-face-gguf-models/</guid>
        <description>&lt;p&gt;&lt;code&gt;llama.cpp&lt;/code&gt; は、Hugging Face の GGUF モデルで直接使用できます。最初にファイルを手動でローカルにダウンロードする必要はありません。&lt;/p&gt;
&lt;p&gt;モデル ウェアハウス自体が GGUF ファイルを提供している場合は、次のようにコマンド ラインで &lt;code&gt;-hf&lt;/code&gt; パラメーターを直接使用できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-cli -hf ggml-org/gemma-3-1b-it-GGUF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;デフォルトでは、このパラメータは Hugging Face からモデルをダウンロードします。&lt;br&gt;
Hugging Face API と互換性のある別のモデル ホスティング サービスを使用している場合は、環境変数 &lt;code&gt;MODEL_ENDPOINT&lt;/code&gt; を通じてダウンロード エンドポイントを切り替えることもできます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;llama.cpp&lt;/code&gt; は、&lt;code&gt;GGUF&lt;/code&gt; 形式のみを直接使用できることに注意してください。&lt;br&gt;
他の形式でモデル ファイルを取得した場合は、まずウェアハウス内の &lt;code&gt;convert_*.py&lt;/code&gt; スクリプトを使用して、それを &lt;code&gt;GGUF&lt;/code&gt; に変換する必要があります。&lt;/p&gt;
&lt;p&gt;Hugging Face は、&lt;code&gt;llama.cpp&lt;/code&gt; に関連するいくつかのオンライン ツールも提供します。一般的な用途には次のようなものがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;モデルを &lt;code&gt;GGUF&lt;/code&gt; に変換します&lt;/li&gt;
&lt;li&gt;モデルを定量化し、サイズを縮小する&lt;/li&gt;
&lt;li&gt;LoRA アダプターを変換する&lt;/li&gt;
&lt;li&gt;GGUF メタデータをオンラインで編集する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;llama.cpp&lt;/code&gt; 推論サービスを直接ホストする&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最も実用的な結論だけを覚えておきたい場合は、まず &lt;code&gt;GGUF&lt;/code&gt; をすでに提供しているモデル ウェアハウスを探し、次に &lt;code&gt;llama-cli -hf &amp;lt;user&amp;gt;/&amp;lt;model&amp;gt;&lt;/code&gt; を直接使用します。これが通常は最も簡単な方法です。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Codex クォータ使用統計</title>
        <link>https://knightli.com/ja/2026/04/12/codex-usage-quota-check/</link>
        <pubDate>Sun, 12 Apr 2026 00:01:33 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/12/codex-usage-quota-check/</guid>
        <description>&lt;p&gt;現在の Codex アカウントの残高を確認したい場合は、ChatGPT の &lt;code&gt;/backend-api/wham/usage&lt;/code&gt; インターフェイスを要求する小さなスクリプトを直接作成できます。&lt;/p&gt;
&lt;p&gt;このタイプのスクリプトの考え方は非常にシンプルです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;auth.json&lt;/code&gt; から &lt;code&gt;tokens.access_token&lt;/code&gt; および &lt;code&gt;tokens.account_id&lt;/code&gt; を読み取ります&lt;/li&gt;
&lt;li&gt;リクエスト &lt;code&gt;https://chatgpt.com/backend-api/wham/usage&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;リクエストヘッダーに &lt;code&gt;Authorization: Bearer ...&lt;/code&gt; と &lt;code&gt;ChatGPT-Account-Id&lt;/code&gt; を含めます&lt;/li&gt;
&lt;li&gt;返された結果の 5 時間のウィンドウと週ごとのウィンドウ クォータを解析します。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;やるべきことに適した&#34;&gt;やるべきことに適した
&lt;/h2&gt;&lt;p&gt;この方法は、ローカルですばやく確認するのに適しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;5 時間の割り当てはどれくらい残っていますか?&lt;/li&gt;
&lt;li&gt;週の割り当てはどれくらい残っていますか?&lt;/li&gt;
&lt;li&gt;クォータはいつリセットされますか?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;複数のアカウントをお持ちの場合は、スクリプトで &lt;code&gt;account/*.auth.json&lt;/code&gt; を一括で読み込み、一律に集計表を出力することもできます。
auth.json ファイルは、現在ログインしている chatgpt アカウントに対応する ~/.codex/ ディレクトリにあります。&lt;/p&gt;
&lt;h2 id=&#34;最も重要なインプット&#34;&gt;最も重要なインプット
&lt;/h2&gt;&lt;p&gt;通常、スクリプトは次の 2 つの資格情報のみに依存します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;access_token&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;account_id&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらは通常、ローカルの &lt;code&gt;auth.json&lt;/code&gt; から入手できます。これら 2 つの値が有効である限り、リクエスト ヘッダーは次のように構成できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;Authorization&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Bearer &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;Accept&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;application/json&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;ChatGPT-Account-Id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;Origin&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://chatgpt.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;Referer&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://chatgpt.com/&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;User-Agent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Mozilla/5.0&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;返された結果の見方&#34;&gt;返された結果の見方
&lt;/h2&gt;&lt;p&gt;インターフェイスが戻った後は、次の 2 種類のウィンドウに焦点が当てられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;five_hour&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;weekly&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;スクリプトはそれらを次の項目に整理できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;残高の割合&lt;/li&gt;
&lt;li&gt;リセット時間&lt;/li&gt;
&lt;li&gt;対応する時間ウィンドウの長さ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;インターフェイス フィールド名が異なる場合、バリアント &lt;code&gt;primary_window&lt;/code&gt;、&lt;code&gt;secondary_window&lt;/code&gt;、&lt;code&gt;five_hour_limit&lt;/code&gt;、および &lt;code&gt;weekly_limit&lt;/code&gt; とも互換性がある可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;よくある質問&#34;&gt;よくある質問
&lt;/h2&gt;&lt;p&gt;スクリプトが 401 を返した場合、通常、&lt;code&gt;access_token&lt;/code&gt; の有効期限が切れているか、無効であることを意味します。&lt;/p&gt;
&lt;p&gt;403 が返された場合は、通常、現在のアカウントにこのインターフェイスにアクセスする権限がないか、アカウントのステータスが異常であることを意味します。&lt;/p&gt;
&lt;p&gt;同じ応答内でフィールドの名前が一貫していない場合でも驚かないでください。実際の処理では、異なる命名方法を統一的にマッピングしてから出力するのがベストです。&lt;/p&gt;
&lt;h2 id=&#34;参考リンク&#34;&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;codex-auth-manager&lt;/code&gt;：&lt;a class=&#34;link&#34; href=&#34;https://github.com/RioArisk/codex-auth-manager&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/RioArisk/codex-auth-manager&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;コード&#34;&gt;コード
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;  1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 85
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 86
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 87
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 88
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 89
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 90
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 91
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 92
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 93
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 94
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 95
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 96
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 97
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 98
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 99
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;100
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;101
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;102
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;103
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;104
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;105
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;106
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;107
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;108
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;109
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;110
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;111
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;112
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;113
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;114
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;115
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;116
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;117
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;118
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;119
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;120
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;121
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;122
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;123
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;124
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;125
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;126
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;127
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;128
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;129
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;130
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;131
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;132
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;133
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;134
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;135
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;136
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;137
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;138
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;139
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;140
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;141
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;142
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;143
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;144
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;145
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;146
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;147
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;148
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;149
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;150
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;151
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;152
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;153
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;154
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;155
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;156
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;157
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;158
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;159
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;160
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;161
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;162
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;163
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;164
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;165
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;166
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;167
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;168
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;169
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;170
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;171
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;172
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;173
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;174
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;175
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;176
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;177
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;178
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;179
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;180
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;181
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;182
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;183
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;184
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;185
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;186
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;187
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;188
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;189
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;190
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;191
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;192
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;193
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;194
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;195
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;196
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;197
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;198
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;199
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;200
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;201
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;202
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;203
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;204
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;205
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;206
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;207
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;208
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;209
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;210
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;211
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;212
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;213
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;214
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;215
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;216
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;217
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;218
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;219
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;220
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;221
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;222
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;223
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;224
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;225
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;226
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;227
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;228
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;229
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;230
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;231
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;232
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;233
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;234
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;235
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;236
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;237
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;238
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;239
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;240
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;241
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;242
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;243
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;244
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;245
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;246
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;247
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;248
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;249
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;250
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;251
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;252
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;253
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;254
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;255
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;256
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;257
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;258
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;259
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;260
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;261
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;262
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;263
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;264
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;265
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;266
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;267
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;268
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;269
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;270
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;271
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;272
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;273
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;274
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;275
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;276
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;277
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;278
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;279
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;280
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;281
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;282
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;283
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;284
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;285
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;286
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;287
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;288
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;289
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;290
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;291
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;292
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;293
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;294
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;295
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;296
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;297
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;298
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;299
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;300
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;301
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;302
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;303
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;304
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;305
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;306
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;307
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;308
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;309
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;310
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;311
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;312
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;313
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;314
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;315
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;316
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;317
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;318
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;319
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;320
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;321
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;322
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;323
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;324
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;325
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;326
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;327
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;328
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;329
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;330
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;331
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;332
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;333
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;334
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;335
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;336
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;337
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;338
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;339
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;340
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;341
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;342
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;343
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;344
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;345
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;346
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;347
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;348
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;349
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;350
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;351
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;352
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;353
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;354
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;355
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;356
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;357
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;358
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;359
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;360
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;361
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;362
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;363
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;364
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;365
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;366
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;367
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;368
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;369
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;370
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;371
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;372
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;373
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;374
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;375
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;376
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;377
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;378
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;379
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;380
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;381
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;382
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;383
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;384
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;385
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;386
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;387
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;388
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;389
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;390
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;391
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;392
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;393
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;394
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;395
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;396
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;397
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;398
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;399
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;400
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;401
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;402
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;403
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;404
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;405
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;406
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;407
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;408
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;409
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;410
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;411
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;412
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;413
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;414
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;415
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;416
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;417
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;418
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;419
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;420
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;421
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;422
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;423
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;424
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;425
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;426
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;427
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;428
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;429
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;430
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;431
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;432
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;433
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;434
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;435
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;436
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;437
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;438
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;439
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;440
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;441
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;442
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;443
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;444
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;445
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;446
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;447
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;448
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;449
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;450
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;451
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;452
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;453
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;454
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;455
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;456
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;457
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;458
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;459
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;460
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;argparse&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;base64&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;json&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;sys&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;datetime&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;timedelta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;timezone&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pathlib&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;typing&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;requests&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;UTC&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;timezone&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;utc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;CST&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;timezone&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;timedelta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hours&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;CST&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;parse_args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argparse&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Namespace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argparse&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ArgumentParser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Query ChatGPT Codex usage from /backend-api/wham/usage.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;account_name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;nargs&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;?&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;help&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Account name used to load account/&amp;lt;account_name&amp;gt;.auth.json. If omitted, load all *.auth.json files in account/.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;--account-dir&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;account&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;help&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Directory containing &amp;lt;account_name&amp;gt;.auth.json files.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;--chatgpt-url&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://chatgpt.com/backend-api/wham/usage&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;help&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;ChatGPT usage endpoint.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;--raw-json&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;action&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;store_true&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;help&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Print the full JSON response body.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;--raw-headers&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;action&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;store_true&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;help&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Print response headers.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parse_args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;print_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dumps&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;indent&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ensure_ascii&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;False&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;load_auth_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path_str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;path_str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;path&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path_str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;expanduser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is_file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;loads&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read_text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;encoding&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;ne&#34;&gt;OSError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JSONDecodeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_nested_string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;keys&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;current&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;keys&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;current&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;current&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;current&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;current&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;current&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;current&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;format_dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dt&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;-&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dt&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;astimezone&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CST&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;strftime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;%Y-%m-&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%d&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; %H:%M:%S %Z&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;format_cst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;format_dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;epoch_ms_to_dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;ne&#34;&gt;TypeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;ValueError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# Newer responses sometimes use epoch seconds, older ones use epoch milliseconds.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;timestamp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1000&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;**&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;11&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fromtimestamp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;timestamp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tz&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UTC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;first_dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;keys&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;keys&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;decode_jwt_exp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;split&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;payload&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;payload&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;=&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;payload&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;loads&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;base64&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;urlsafe_b64decode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;payload&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;encode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;ascii&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;exp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;exp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exp&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fromtimestamp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tz&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UTC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;ne&#34;&gt;ValueError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;TypeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JSONDecodeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_percent_left&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;percent_left&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;percent_left&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;percent_left&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;percent_left&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;remaining_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;percent_left&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;percent_left&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;used_percent&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;used_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;used_percent&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;used_percent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;ne&#34;&gt;TypeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;ValueError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;resolve_limit_window&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;reset_at&amp;#34;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;reset_time_ms&amp;#34;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;primary_window&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;primary_window&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;parse_limit_entry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;resolve_limit_window&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;percent_left&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_percent_left&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;reset_time_ms&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;reset_time_ms&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;reset_time_ms&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;reset_time_ms&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;reset_at&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;window_seconds&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;limit_window_seconds&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;percent_left&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;percent_left&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;reset_time_ms&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;reset_time_ms&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;reset_at&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;epoch_ms_to_dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;reset_time_ms&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;limit_window_seconds&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;window_seconds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;infer_limit_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;window_seconds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;window_seconds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;window_seconds&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;6&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3600&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;window_seconds&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;6&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;24&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3600&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;relabel_rate_limits&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;entry&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;entry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;inferred_name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;infer_limit_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;entry&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;limit_window_seconds&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;inferred_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;entry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;inferred_name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;parse_rate_limits&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary_key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour_limit&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour_rate_limit&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;primary&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary_key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parse_limit_entry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;primary_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary_key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_limit&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_rate_limit&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;secondary&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary_key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parse_limit_entry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;secondary_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parse_limit_entry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;primary_window&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parse_limit_entry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;secondary_window&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;relabel_rate_limits&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;format_percent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;-&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;percent_sort_value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;descending&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;bool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;numeric_value&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;numeric_value&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;descending&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;numeric_value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_auth_paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_dir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;base_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_dir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;base_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;.auth.json&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;sorted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;base_dir&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;glob&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;*.auth.json&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_account_name_from_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;suffix&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.auth.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[:&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;suffix&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)]&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;endswith&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;suffix&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stem&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;build_summary_row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;five_hour&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;weekly&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;account&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;five_hour&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;percent_left&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;five_hour&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;weekly&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;percent_left&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;weekly&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_reset_at&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;weekly&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;reset_at&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;weekly&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;print_summary_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;sorted_rows&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;sorted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;lambda&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;percent_sort_value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;descending&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;percent_sort_value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;descending&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;format_cst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_reset_at&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;account&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;display_rows&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;row&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sorted_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;display_rows&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;s2&#34;&gt;&amp;#34;account&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;account&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;format_percent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;format_percent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_reset&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;format_cst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_reset_at&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;account&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;account&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour%&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly%&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_reset&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_reset&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]),&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;item&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;display_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;account&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;account&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;  &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;five_hour&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;five_hour&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;  &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;  &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly_reset&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly_reset&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;item&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;display_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;account&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;account&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;  &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;five_hour&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;five_hour&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;  &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;  &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly_reset&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly_reset&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;validate_token_inputs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;startswith&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;sess-&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;status: invalid_token_type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s2&#34;&gt;&amp;#34;message: --chatgpt-token looks like a session token (sess-...). Use the JWT access_token instead.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;s2&#34;&gt;&amp;#34;hint: Found tokens.access_token in auth.json; omit --chatgpt-token or pass that value instead.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;token_exp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;decode_jwt_exp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token_exp&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token_exp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;now&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UTC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;status: expired&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;message: access_token expired at &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;format_dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;token_exp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;auth_token_exp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;decode_jwt_exp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;hint&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;format_dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_token_exp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_token_exp&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;unknown time&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;hint: auth.json contains a different access_token expiring at &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hint&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;account_id&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;warning: supplied --account-id does not match auth.json tokens.account_id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;handle_error_response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;requests&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;raw_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;bool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;status_code&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;401&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;status: expired&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;message: Token 已过期或无效&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;raw_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;print_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;status_code&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;403&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;status: forbidden&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;message: 账号已被封禁或无权访问&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;raw_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;print_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;status_code&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;400&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;HTTP &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;status_code&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;print_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;fetch_chatgpt_usage&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argparse&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Namespace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;auth_data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;load_auth_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_account_name_from_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_nested_string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;tokens&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;access_token&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_nested_string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;tokens&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;account_id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;: auth file not found or invalid&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;: missing access_token&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;: missing account_id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;validation_error&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;validate_token_inputs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;validation_error&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;validation_error&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;Authorization&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Bearer &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;Accept&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;application/json&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;ChatGPT-Account-Id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;Origin&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://chatgpt.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;Referer&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://chatgpt.com/&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;User-Agent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Mozilla/5.0&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;requests&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;chatgpt_url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;timeout&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;60&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;requests&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;RequestException&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Request failed: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exc&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw_headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;=== Headers ===&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;print_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;ValueError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;HTTP &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;status_code&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;error_response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;handle_error_response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;error_response&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;error_response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;=== Raw JSON ===&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;print_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;rate_limits&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;first_dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;rate_limit&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;rate_limits&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rate_limits&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;build_summary_row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;five_hour&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;weekly&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parse_rate_limits&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rate_limits&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;build_summary_row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;five_hour&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;weekly&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parse_args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;auth_paths&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_auth_paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_dir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;No auth files found.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;exit_code&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;summary_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_path&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;current_exit_code&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;summary_row&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fetch_chatgpt_usage&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;exit_code&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exit_code&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;current_exit_code&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;summary_row&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;summary_rows&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;summary_row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;summary_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;print_summary_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;summary_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exit_code&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;vm&#34;&gt;__name__&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
        </item>
        <item>
        <title>Gemma-4-31B ではどういう意味ですか?</title>
        <link>https://knightli.com/ja/2026/04/11/gemma-4-31b-it-meaning/</link>
        <pubDate>Sat, 11 Apr 2026 20:45:34 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/11/gemma-4-31b-it-meaning/</guid>
        <description>&lt;p&gt;&lt;code&gt;gemma-4-31B-it&lt;/code&gt; という名前の &lt;code&gt;it&lt;/code&gt; は、「命令微調整」バージョンである &lt;code&gt;Instruction Tuned&lt;/code&gt; の略称です。&lt;/p&gt;
&lt;p&gt;ほとんどの人にとって、これは次のように理解できます。このモデルは、チャット、Q&amp;amp;A、コードの作成、および明示的なタスクの実行により適しています。&lt;/p&gt;
&lt;h2 id=&#34;itとは&#34;&gt;&lt;code&gt;it&lt;/code&gt;とは
&lt;/h2&gt;&lt;p&gt;モデルには通常、次の 2 つの一般的なバージョンがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;基本/事前トレーニング済み: 元のテキスト予測子に近い基本モデル。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;it&lt;/code&gt;: コマンドを微調整した後、「何をしてもらえますか?」などの入力をよりよく理解できるようになりました。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;「これを翻訳してください」または「この Python コードを書いてください」と入力した場合、通常、&lt;code&gt;it&lt;/code&gt; バージョンの方が安定しており、より会話的です。&lt;/p&gt;
&lt;h2 id=&#34;31bとは&#34;&gt;&lt;code&gt;31B&lt;/code&gt;とは
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;31B&lt;/code&gt; は、このモデルに約 310 億のパラメーターがあることを意味します。&lt;/p&gt;
&lt;p&gt;一般的に言えば:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;パラメーターの数が増えるほど、モデルの機能と知識の範囲が強化される傾向があります。&lt;/li&gt;
&lt;li&gt;同時に、ビデオ メモリやメモリの要件も高くなります。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、&lt;code&gt;31B&lt;/code&gt; は比較的大規模なモデルとなり、動作閾値が高くなります。&lt;/p&gt;
&lt;h2 id=&#34;gemma-4-とはどういう意味ですか&#34;&gt;&lt;code&gt;Gemma-4&lt;/code&gt; とはどういう意味ですか?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Gemma-4&lt;/code&gt; はモデル シリーズと世代を表します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Gemma&lt;/code&gt;: Google のオープンソース モデル シリーズ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;4&lt;/code&gt;: シリーズの第 4 世代バージョン&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;選び方&#34;&gt;選び方
&lt;/h2&gt;&lt;p&gt;チャット、Q&amp;amp;A、翻訳、またはコードの作成が目的の場合は、通常、&lt;code&gt;-it&lt;/code&gt; を備えたバージョンが推奨されます。&lt;/p&gt;
&lt;p&gt;下位レベルの調査、微調整、またはカスタム トレーニング タスクを実行している場合は、基本バージョンをチェックアウトする可能性が高くなります。&lt;/p&gt;
&lt;h2 id=&#34;一文の要約&#34;&gt;一文の要約
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;gemma-4-31B-it&lt;/code&gt; は、Gemma 4 シリーズ、310 億のパラメーター、ダイアログおよびコマンド タスクに適したバージョンとして直接理解できます。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Llama の GGUF モデルを選択するときの量子化の選択方法: Q8 から Q2 までの実践的な提案</title>
        <link>https://knightli.com/ja/2026/04/11/llama-gguf-quantization-selection/</link>
        <pubDate>Sat, 11 Apr 2026 20:07:29 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/11/llama-gguf-quantization-selection/</guid>
        <description>&lt;p&gt;Hugging Face で Llama の GGUF モデルを選択する場合、まず量子化レベルを「解像度」として理解できます。解像度が低いほど使用する VRAM/RAM は少なくなりますが、品質は徐々に低下します。&lt;/p&gt;
&lt;h2 id=&#34;まずは3216qシリーズについて理解しましょう&#34;&gt;まずは32、16、Qシリーズについて理解しましょう
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;32&lt;/code&gt;: 最高品質のオリジナルの非圧縮バージョンとして理解できますが、ハードウェア要件は非常に高くなります。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;16&lt;/code&gt;: 元の品質に近く、サイズは &lt;code&gt;32&lt;/code&gt; の約半分で、より実用的です。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q8&lt;/code&gt;: ここから量子化バージョンが来ます。通常は &lt;code&gt;Q8_0&lt;/code&gt; または &lt;code&gt;Q8&lt;/code&gt; と書かれます。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q6&lt;/code&gt;、&lt;code&gt;Q5&lt;/code&gt;、&lt;code&gt;Q4&lt;/code&gt;、&lt;code&gt;Q3&lt;/code&gt;、&lt;code&gt;Q2&lt;/code&gt;: 数値が小さいほど、リソースの使用量が低くなり、目に見える品質の低下が発生しやすくなります。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;k_m--k_sとは&#34;&gt;&lt;code&gt;K_M&lt;/code&gt; / &lt;code&gt;K_S&lt;/code&gt;とは
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;K_M&lt;/code&gt; および &lt;code&gt;K_S&lt;/code&gt; は、ハイブリッド量子化戦略を表します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ほとんどの重みは現在の量子化レベルを使用します&lt;/li&gt;
&lt;li&gt;一部の主要部品はより高い精度を維持&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;したがって、同じレベルでは、&lt;code&gt;Qx_K_M&lt;/code&gt; または &lt;code&gt;Qx_K_S&lt;/code&gt; は、通常、純粋な &lt;code&gt;Qx&lt;/code&gt; よりもわずかに優れています。&lt;/p&gt;
&lt;h2 id=&#34;実用的な選択の提案&#34;&gt;実用的な選択の提案
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;十分なハードウェア: 優先順位 &lt;code&gt;Q8&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;ビデオ メモリまたはメモリが不足しています: &lt;code&gt;Q6&lt;/code&gt; / &lt;code&gt;Q5&lt;/code&gt; / &lt;code&gt;Q4&lt;/code&gt; まで段階的にダウンします。&lt;/li&gt;
&lt;li&gt;下限の提案: &lt;code&gt;Q4&lt;/code&gt; を下回らないようにし、&lt;code&gt;Q4_K_M&lt;/code&gt; を優先します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q3&lt;/code&gt; 以下: 品質の低下がますます顕著になります。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;品質の勾配-高から低&#34;&gt;品質の勾配 (高から低)
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;32&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;16&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;ndash; この点を超えると、品質は同じですが、ハードウェア要件が非常に高くなります &amp;ndash;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q8&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q6_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q6_K_S&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q6&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q5_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q5_K_S&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q5&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;ndash; これが古典的なスイートスポットです &amp;ndash;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q4_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q4_K_S&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q4&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;ndash; この点を下回ると、品質の低下が顕著になります &amp;ndash;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q3_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q3_K_S&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q2_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q2_K_S&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q2&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;単純な結論が必要な場合: ほとんどのシナリオでは、&lt;code&gt;Q8&lt;/code&gt; または &lt;code&gt;Q6_K_M&lt;/code&gt; から開始するだけでは十分ではなく、通常は &lt;code&gt;Q5&lt;/code&gt; または &lt;code&gt;Q4_K_M&lt;/code&gt; にダウングレードする方が安全です。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Windows LAN Access Ollama API セットアップ ガイド</title>
        <link>https://knightli.com/ja/2026/04/11/ollama-api-lan-access-windows/</link>
        <pubDate>Sat, 11 Apr 2026 16:43:52 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/11/ollama-api-lan-access-windows/</guid>
        <description>&lt;p&gt;LAN 内の他のデバイスがローカル Ollama API にアクセスできるようにする場合は、次のように設定できます。&lt;/p&gt;
&lt;h2 id=&#34;リスニングポートを設定する&#34;&gt;リスニングポートを設定する
&lt;/h2&gt;&lt;p&gt;まず、Ollama リスニング アドレスをすべてのネットワーク カードに変更します。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;OLLAMA_HOST=0.0.0.0:11434&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;ファイアウォールを開く&#34;&gt;ファイアウォールを開く
&lt;/h2&gt;&lt;p&gt;詳細なファイアウォール設定を開いた後、新しい受信ルールを作成し、ターゲット ポート (&lt;code&gt;8080&lt;/code&gt; など) を許可します。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Win + S を押して、「Windows Defender ファイアウォール」を検索して開きます。&lt;/li&gt;
&lt;li&gt;「詳細設定」をクリックします。&lt;/li&gt;
&lt;li&gt;「受信ルール」→「新しいルール&amp;hellip;」を選択します。&lt;/li&gt;
&lt;li&gt;ルールの種類として「ポート」を選択し、「次へ」をクリックします。&lt;/li&gt;
&lt;li&gt;プロトコル（通常はTCP）を選択し、「特定のローカルポート」に開放するポート番号（例：&lt;code&gt;8080&lt;/code&gt;）を入力し、「次へ」をクリックします。&lt;/li&gt;
&lt;li&gt;「接続を許可する」を選択し、「次へ」をクリックします。&lt;/li&gt;
&lt;li&gt;「プロファイル」の「ドメイン」「プライベート」「パブリック」にチェックを入れて「次へ」をクリックします。&lt;/li&gt;
&lt;li&gt;ルールに名前を付けて (&lt;code&gt;OpenPort8080&lt;/code&gt; など)、「完了」をクリックします。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;ランオラマ&#34;&gt;ラン・オラマ
&lt;/h2&gt;&lt;p&gt;オラマランモデル&lt;/p&gt;
&lt;h2 id=&#34;api経由でモデルにアクセス&#34;&gt;API経由でモデルにアクセス
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl http://192.168.x.xxx:11434/api/generate -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;  &amp;#34;model&amp;#34;: &amp;#34;gemma4&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;  &amp;#34;prompt&amp;#34;: &amp;#34;这个是什么模型?&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
        </item>
        <item>
        <title>Feiniu NAS AI フォト アルバムで使用されているモデル: 顔、オブジェクトの分解、セマンティック検索</title>
        <link>https://knightli.com/ja/2026/04/11/fnos-ai-photo-model-stack/</link>
        <pubDate>Sat, 11 Apr 2026 08:27:57 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/11/fnos-ai-photo-model-stack/</guid>
        <description>&lt;p&gt;Feiniu NAS (fnOS) の AI フォト アルバムは、一連のアルゴリズムを一から開発するのではなく、主流のオープンソース モデルに基づいてエンジニアリングを統合し、顔認識、シーン認識、自然言語画像検索を完成させます。&lt;/p&gt;
&lt;h2 id=&#34;1-顔認識-insightface&#34;&gt;1) 顔認識: InsightFace
&lt;/h2&gt;&lt;p&gt;顔の機能に関しては、通常、コアは InsightFace です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一般的な特徴抽出方法: ArcFace&lt;/li&gt;
&lt;li&gt;主な機能: 顔の検出、特徴ベクトルの抽出、顔クラスタリング、文字認識の実行&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;2-ターゲット検出とシーン認識yoloシリーズ&#34;&gt;2) ターゲット検出とシーン認識：YOLOシリーズ
&lt;/h2&gt;&lt;p&gt;オブジェクト認識 (猫、犬、車、コンピューターなど) と写真内の部分的なシーンの理解は通常、YOLO シリーズ (通常は YOLOv8 または軽量バージョン) によって行われます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;利点: 精度と速度のバランスが良い&lt;/li&gt;
&lt;li&gt;適応シナリオ: NAS などのエッジデバイスの限られたコンピューティング能力環境&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;3-意味検索-clip--chinese-clip&#34;&gt;3) 意味検索: CLIP / Chinese-CLIP
&lt;/h2&gt;&lt;p&gt;Feiniu Photo Album は、「草の上の子犬」や「サングラスをかけた男性」など、自然言語を使用した写真の検索をサポートしています。&lt;/p&gt;
&lt;p&gt;一般的な実装は CLIP です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;画像とテキストは同じベクトル空間にマッピングされます&lt;/li&gt;
&lt;li&gt;中国語のシナリオでは、通常、 Chinese-CLIP または同様の中国語の拡張ソリューションと組み合わせられます。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;要約する&#34;&gt;要約する
&lt;/h2&gt;&lt;p&gt;Feiniu AI フォト アルバムは、次の 3 層の組み合わせとして理解できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;InsightFace は人間の顔を担当します&lt;/li&gt;
&lt;li&gt;YOLO はオブジェクトとシーンを担当します&lt;/li&gt;
&lt;li&gt;CLIP は人間の言語を画像のセマンティクスに合わせる役割を果たします。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;中核となる競争力は、基盤となるモデルをゼロからトレーニングするのではなく、主にエンジニアリングの統合、ローカリゼーション機能、ハードウェア アクセラレーションの最適化にあります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Gemma 4 ローカル通話ガイド: ワンクリック実行から開発統合まで</title>
        <link>https://knightli.com/ja/2026/04/10/gemma4-local-runtime-options/</link>
        <pubDate>Fri, 10 Apr 2026 22:54:17 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/10/gemma4-local-runtime-options/</guid>
        <description>&lt;p&gt;Gemma 4 (2026 年に Google がリリースした新世代のオープンソース モデル) をローカルで呼び出したい場合は、ニーズに応じてこれら 4 種類のソリューションから選択できます。&lt;/p&gt;
&lt;h2 id=&#34;1-最も早く始める-ollama-推奨&#34;&gt;1) 最も早く始める: Ollama (推奨)
&lt;/h2&gt;&lt;p&gt;これは最も障壁の低いアプローチであり、簡単なテスト、日常会話、ローカル API 呼び出しに適しています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run gemma4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;特徴：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Win/Mac/Linux で利用可能&lt;/li&gt;
&lt;li&gt;ハードウェアアクセラレーションを自動的に処理します&lt;/li&gt;
&lt;li&gt;OpenAIスタイルに対応したネイティブAPIを提供&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;2-グラフィカルインターフェイス-lm-studio--unsloth-studio&#34;&gt;2) グラフィカルインターフェイス: LM Studio / Unsloth Studio
&lt;/h2&gt;&lt;p&gt;デスクトップ GUI (ChatGPT に似たもの) に慣れている場合は、これら 2 種類のツールの方が便利です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LM Studio:Hugging Face で Gemma 4 量子化モデル (4 ビット、8 ビットなど) を直接検索してダウンロードし、リソースの使用状況を表示できます。&lt;/li&gt;
&lt;li&gt;Unsloth Studio: 推論に加えて、低メモリ微調整もサポートしています。 6GB～8GBのビデオメモリを搭載したマシンにさらに優しい。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;3-低構成と究極の制御-llamacpp&#34;&gt;3) 低構成と究極の制御: llama.cpp
&lt;/h2&gt;&lt;p&gt;古いマシン、純粋な CPU シナリオ、または推論パラメーターを詳細に制御したいユーザーに適しています。&lt;/p&gt;
&lt;p&gt;量子化バージョンで &lt;code&gt;.gguf&lt;/code&gt; モデル ファイルを使用すると、より低いハードウェアしきい値で Gemma 4 を実行できます。&lt;/p&gt;
&lt;h2 id=&#34;4-開発統合-transformersvllm&#34;&gt;4) 開発統合: Transformers/vLLM
&lt;/h2&gt;&lt;p&gt;Gemma 4 を独自のアプリケーションに統合したい場合:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Transformers: Python プロジェクトにモデルを直接ロードするのに適しています&lt;/li&gt;
&lt;li&gt;vLLM: 高性能 GPU シナリオおよび高スループット推論サービスに適しています&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;クイック選択&#34;&gt;クイック選択
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;需求&lt;/th&gt;
          &lt;th&gt;推荐工具&lt;/th&gt;
          &lt;th&gt;硬件门槛&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;我只想马上跑起来&lt;/td&gt;
          &lt;td&gt;Ollama&lt;/td&gt;
          &lt;td&gt;低（自动适配）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;我更喜欢图形界面&lt;/td&gt;
          &lt;td&gt;LM Studio&lt;/td&gt;
          &lt;td&gt;中&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;显存很紧张（6GB-8GB）&lt;/td&gt;
          &lt;td&gt;Unsloth / llama.cpp&lt;/td&gt;
          &lt;td&gt;低&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;我要做本地 AI 应用开发&lt;/td&gt;
          &lt;td&gt;Ollama / Transformers / vLLM&lt;/td&gt;
          &lt;td&gt;中到高&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;我要做微调训练&lt;/td&gt;
          &lt;td&gt;Unsloth Studio&lt;/td&gt;
          &lt;td&gt;中到高&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;モデルの推奨サイズ&#34;&gt;モデルの推奨サイズ
&lt;/h2&gt;&lt;p&gt;Gemma 4 はさまざまなサイズで利用できます (E2B、E4B、31B など)。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;通常のオフィスのラップトップの場合は、定量化された E2B/E4B が推奨されます。&lt;/li&gt;
&lt;li&gt;ビデオ メモリに余裕がある場合は、より大きなバージョンを試してください。&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>MCPを捨てますか？ CLI がエージェントのデフォルトのツール層になりつつある理由</title>
        <link>https://knightli.com/ja/2026/04/10/mcp-vs-cli-for-agents/</link>
        <pubDate>Fri, 10 Apr 2026 21:55:12 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/10/mcp-vs-cli-for-agents/</guid>
        <description>&lt;p&gt;過去 1 年間、エージェント ツールチェーンに関する議論は、次の 1 つの問題にますます集中してきました。&lt;/p&gt;
&lt;p&gt;MCP (モデル コンテキスト プロトコル) はツールの呼び出しを簡単にしますか? それとも、もともと単純だったものを複雑にしますか?&lt;/p&gt;
&lt;p&gt;CLI は、ほとんどの日常的な開発タスクにとって、より実用的なデフォルトになりつつあります。&lt;/p&gt;
&lt;h2 id=&#34;コストの違いは経験の問題ではなく桁違いの問題です&#34;&gt;コストの違いは「経験の問題」ではなく、桁違いの問題です
&lt;/h2&gt;&lt;p&gt;MCP に対する実際の最大のプレッシャーはトークンのオーバーヘッドです。&lt;/p&gt;
&lt;p&gt;一般的なシナリオでは、MCP は実際にタスクを実行する前に、多数のツール スキーマをロードする必要があります。 GitHub MCP サーバーを例に挙げると、初期化で数万のトークンが消費される可能性があります。長いタスクの場合、これはコンテキスト バジェットを直接圧迫します。&lt;/p&gt;
&lt;p&gt;コミュニティのベンチマークは、同じ結論を繰り返し示しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 回の MCP 呼び出しのコストは、通常、CLI の数倍から数十倍になります。&lt;/li&gt;
&lt;li&gt;失敗した再試行のコストも高くなります (接続の再構築とコンテキストの再ロード)。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは「遅い」というギャップではなく、むしろ API 料金、レイテンシー、安定性の問題にまで拡大します。&lt;/p&gt;
&lt;h2 id=&#34;モデルが自然にcli-に精通している理由&#34;&gt;モデルが自然に「CLI に精通している」理由
&lt;/h2&gt;&lt;p&gt;見落とされがちな事実は、トレーニングの分布です。&lt;/p&gt;
&lt;p&gt;LLM は、トレーニング中にコマンド、出力、エラー レポート、スクリプト、マニュアル ページなどの大量の端末テキストを確認しました。言い換えれば、CLI 対話モードは本質的にモデルの「母国語入力」に近いものになります。&lt;/p&gt;
&lt;p&gt;それどころか、MCP の JSON-RPC とツール スキーマは、ここ 2 年間で大規模に登場したばかりの新しいパラダイムです。モデルは確かに学習できますが、親しみやすさと圧縮効率は通常、CLI などの歴史的コーパスほど良くありません。&lt;/p&gt;
&lt;p&gt;これは、その理由を何度も説明するものでもあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;目標は同じですが、CLI 命令は短くなります&lt;/li&gt;
&lt;li&gt;出力は推論を直接続行するのにより適しています。&lt;/li&gt;
&lt;li&gt;エラー回復パスの安定性が向上&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;安全と隔離mcpにはまだ補講の余地があります&#34;&gt;安全と隔離：MCPにはまだ補講の余地があります
&lt;/h2&gt;&lt;p&gt;MCP がセキュリティを実現できないわけではありませんが、エコシステムはまだ初期段階にあります。&lt;/p&gt;
&lt;p&gt;現在の一般的な懸念事項は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ツール中毒&lt;/li&gt;
&lt;li&gt;サービス動作のドリフト (ラグプル)&lt;/li&gt;
&lt;li&gt;同名のツール「シャドウイング」&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もちろん、CLI にもセキュリティの問題 (インジェクション、不正アクセス、パスのリスク) がありますが、そのプロセス モデル、権限の境界、監査リンクは数十年にわたるエンジニアリングの実践によって検証されています。本番環境では、この「予測可能性」が重要です。&lt;/p&gt;
&lt;h2 id=&#34;これはmcpが無価値であるという意味ではありません&#34;&gt;これはMCPが無価値であるという意味ではありません
&lt;/h2&gt;&lt;p&gt;私はMCPを放棄すべきではないと思います。&lt;/p&gt;
&lt;p&gt;より合理的な位置付けは次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CLI は実行層 (ローカル、低遅延、高頻度の呼び出し) を担当します。&lt;/li&gt;
&lt;li&gt;MCP は接続層 (リモート サービス ディスカバリ、統合認証、監査、マルチテナント) を担当します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一般に、ハイブリッド アーキテクチャ: &lt;code&gt;CLI + MCP Gateway&lt;/code&gt; とも呼ばれます。&lt;/p&gt;
&lt;p&gt;多数のリモート システムに接続し、統合された権限管理とコンプライアンス監査を実行する必要がある場合、MCP には依然として明白な価値があります。しかし、「エージェントが開発タスクを迅速に完了できるようにする」という点では、多くの場合、CLI ファーストの方が現在のモデルの機能の境界に沿っています。&lt;/p&gt;
&lt;p&gt;今日のエンジニアリングの現実では、CLI はエージェントの母国語に似ています。 MCP は、唯一の実行プロトコルではなく、接続プロトコルとして適しています。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>PersonaPlex 入門ガイド: 音色とキャラクターを制御できる全二重音声対話モデル</title>
        <link>https://knightli.com/ja/2026/04/10/personaplex-full-duplex-speech-model-guide/</link>
        <pubDate>Fri, 10 Apr 2026 11:34:38 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/10/personaplex-full-duplex-speech-model-guide/</guid>
        <description>&lt;p&gt;PersonaPlex は、リアルタイムの全二重音声対音声会話モデルです。次の 2 種類の制御可能な機能をサポートします。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;テキストの役割プロンプトを通じて「性格と話し方」を制御する&lt;/li&gt;
&lt;li&gt;オーディオ条件で「音色とサウンドスタイル」をコントロールする&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは Moshi アーキテクチャと重みに基づいており、その目標は、より自然でペルソナに一貫した音声インタラクションを低遅延で出力することです。&lt;/p&gt;
&lt;h2 id=&#34;それを使って何ができるか&#34;&gt;それを使って何ができるか
&lt;/h2&gt;&lt;p&gt;PersonaPlex は次のシナリオに適しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;リアルタイム音声アシスタント&lt;/li&gt;
&lt;li&gt;顧客サービスの役割に関する対話&lt;/li&gt;
&lt;li&gt;低遅延の音声プレゼンテーションおよび対話システム&lt;/li&gt;
&lt;li&gt;声の特徴付け実験（キャラクターデザイン＋音色）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;導入前の準備&#34;&gt;導入前の準備
&lt;/h2&gt;&lt;p&gt;まず、Opus 開発ライブラリをインストールします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Ubuntu/Debian&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install libopus-dev
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Fedora/RHEL&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo dnf install opus-devel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;インストールと環境構成&#34;&gt;インストールと環境構成
&lt;/h2&gt;&lt;p&gt;リポジトリをインストールします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install moshi/.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Blackwell GPU はさらに次のことを実行できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu130
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Hugging Face にログインし、PersonaPlex モデル ライセンスに同意した後、トークンを構成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;HF_TOKEN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&amp;lt;YOUR_HUGGINGFACE_TOKEN&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;リアルタイムサービスを開始する&#34;&gt;リアルタイムサービスを開始する
&lt;/h2&gt;&lt;p&gt;標準起動 (一時 SSL を使用):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;SSL_DIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;mktemp -d&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; python -m moshi.server --ssl &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$SSL_DIR&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ビデオ メモリが不足している場合、CPU オフロードを有効にできます (&lt;code&gt;accelerate&lt;/code&gt; が必要)。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install accelerate
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;SSL_DIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;mktemp -d&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; python -m moshi.server --ssl &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$SSL_DIR&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; --cpu-offload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ローカル アクセスは通常、&lt;code&gt;localhost:8998&lt;/code&gt; です。リモートにデプロイされている場合は、スクリプトによって出力されたアクセス リンクを使用します。&lt;/p&gt;
&lt;h2 id=&#34;オフライン評価&#34;&gt;オフライン評価
&lt;/h2&gt;&lt;p&gt;オフライン スクリプトは、wav を入力し、同じ長さの wav 結果を出力できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;HF_TOKEN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&amp;lt;TOKEN&amp;gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python -m moshi.offline &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --voice-prompt &lt;span class=&#34;s2&#34;&gt;&amp;#34;NATF2.pt&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --input-wav &lt;span class=&#34;s2&#34;&gt;&amp;#34;assets/test/input_assistant.wav&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --seed &lt;span class=&#34;m&#34;&gt;42424242&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --output-wav &lt;span class=&#34;s2&#34;&gt;&amp;#34;output.wav&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --output-text &lt;span class=&#34;s2&#34;&gt;&amp;#34;output.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;HF_TOKEN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&amp;lt;TOKEN&amp;gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python -m moshi.offline &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --voice-prompt &lt;span class=&#34;s2&#34;&gt;&amp;#34;NATM1.pt&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --text-prompt &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;cat assets/test/prompt_service.txt&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --input-wav &lt;span class=&#34;s2&#34;&gt;&amp;#34;assets/test/input_service.wav&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --seed &lt;span class=&#34;m&#34;&gt;42424242&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --output-wav &lt;span class=&#34;s2&#34;&gt;&amp;#34;output.wav&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --output-text &lt;span class=&#34;s2&#34;&gt;&amp;#34;output.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;プリセットサウンド&#34;&gt;プリセットサウンド
&lt;/h2&gt;&lt;p&gt;固定トーンラベルは次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Natural(female): NATF0, NATF1, NATF2, NATF3&lt;/li&gt;
&lt;li&gt;Natural(male): NATM0, NATM1, NATM2, NATM3&lt;/li&gt;
&lt;li&gt;Variety(female): VARF0, VARF1, VARF2, VARF3, VARF4&lt;/li&gt;
&lt;li&gt;Variety(male): VARM0, VARM1, VARM2, VARM3, VARM4&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;プロンプトワードの使用に関する提案&#34;&gt;プロンプトワードの使用に関する提案
&lt;/h2&gt;&lt;p&gt;公式トレーニングでは、次の 3 つの主要なタイプのシナリオがカバーされます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;アシスタントの役割 (Q&amp;amp;A アシスタント)&lt;/li&gt;
&lt;li&gt;カスタマーサービスの役割&lt;/li&gt;
&lt;li&gt;カジュアルな会話（日常のオープンな会話）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;実践的な提案:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;まずロール情報を修正してから、ビジネス コンテキストを追加します&lt;/li&gt;
&lt;li&gt;文字のずれを避けるためにプロンプ​​トワードの長さを制御する&lt;/li&gt;
&lt;li&gt;同じ音声プロンプトを使用して反復可能な比較テストを実行する&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;要約する&#34;&gt;要約する
&lt;/h2&gt;&lt;p&gt;PersonaPlex の利点は、「一度でよりインテリジェントな回答ができること」ではなく、「リアルタイムの音声対話において、キャラクターと音声の一貫性がより安定して維持されること」です。&lt;/p&gt;
&lt;p&gt;全二重音声エージェントを構築している場合、このソリューションはできるだけ早く実際にテストして比較する価値があります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Anthropic の Harness アイデア: エージェント インフラストラクチャはエージェント OS に移行しています</title>
        <link>https://knightli.com/ja/2026/04/10/anthropic-harness-agent-os/</link>
        <pubDate>Fri, 10 Apr 2026 09:22:56 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/10/anthropic-harness-agent-os/</guid>
        <description>&lt;p&gt;Anthropic は最近、Harness のエンジニアリング実践に関する記事を公開しました。表面的には製品の実装について話しているように見えますが、本質的には長期的な質問に答えています。&lt;/p&gt;
&lt;p&gt;**モデルの機能が変化し続ける場合、エージェント システムのどのレイヤーが安定している必要があり、どのレイヤーが迅速な置き換えを可能にする必要がありますか? **&lt;/p&gt;
&lt;h2 id=&#34;核心判断&#34;&gt;核心判断
&lt;/h2&gt;&lt;p&gt;この記事に関する私の基本的な理解は、エージェント インフラストラクチャがますます軽量の &lt;strong&gt;エージェント OS&lt;/strong&gt; に近づいていくだろうということです。&lt;/p&gt;
&lt;p&gt;焦点は「今日の最良のプロセスをハードコーディングする」ことではなく、「長期的に安定したシステム抽象化を定義する」ことにあります。&lt;/p&gt;
&lt;h2 id=&#34;これがなぜ重要なのでしょうか&#34;&gt;これがなぜ重要なのでしょうか?
&lt;/h2&gt;&lt;p&gt;多くのエージェント フレームワークに共通する問題は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;モデルの一時的な欠点を永続的な構造に統合します。&lt;/li&gt;
&lt;li&gt;プロンプトプロジェクトをシステム境界と間違えた&lt;/li&gt;
&lt;li&gt;長期的な依存関係として一度有効なパッチを作成する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;モデルはより強力になり、今日合理的なパッチが明日には技術的負債になる可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;人間的ソリューション-コンクリートハーネスからメタハーネスへ&#34;&gt;人間的ソリューション: コンクリートハーネスからメタハーネスへ
&lt;/h2&gt;&lt;p&gt;このアイデアは、固定された配置方法を約束するものではありませんが、安定したインターフェイスの 3 つの層を抽象化します。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;session&lt;/code&gt;: 回復可能なイベントとステータスの履歴&lt;/li&gt;
&lt;li&gt;&lt;code&gt;harness&lt;/code&gt;: 推論とスケジューリングのループ (脳)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sandbox&lt;/code&gt;: 実行環境とツールの機能 (ハンド)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;分離すると、システムの交換、復旧、拡張が容易になります。&lt;/p&gt;
&lt;h2 id=&#34;1-セッションはコンテキスト-ウィンドウではありません&#34;&gt;1) セッションはコンテキスト ウィンドウではありません
&lt;/h2&gt;&lt;p&gt;重要な点は次のとおりです。 **セッションはモデル コンテキストと等しくありません。 **&lt;/p&gt;
&lt;p&gt;セッションは、モデルに直接接続された履歴のスプライシングではなく、クエリ可能、再生可能、および回復可能なイベント ログである必要があります。&lt;/p&gt;
&lt;p&gt;これを行うことの価値:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;トリミングは歴史の消滅を意味するものではありません&lt;/li&gt;
&lt;li&gt;圧縮は事実の損失と同等ではない&lt;/li&gt;
&lt;li&gt;クラッシュリカバリは、サマリーメモリに依存するのではなく、イベントレイヤーに戻ることができます&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;2-ハーネスは交換可能なオーケストレーション-レイヤーです&#34;&gt;2) ハーネスは交換可能なオーケストレーション レイヤーです
&lt;/h2&gt;&lt;p&gt;ハーネスは、ビジネス ステータスを保持することよりも、スケジュールを管理することに重点を置く必要があります。&lt;/p&gt;
&lt;p&gt;理想的なインターフェイスは次のようなものです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;execute(name, input) -&amp;gt; string&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;これは、モデルが「どの機能を呼び出すことができるか」のみを考慮しており、特定のデバイス、コンテナー、オペレーティング システムに強く束縛されていないことを意味します。&lt;/p&gt;
&lt;h2 id=&#34;3-サンドボックスは頭脳ではなく手です&#34;&gt;3) サンドボックスは「頭脳」ではなく「手」です。
&lt;/h2&gt;&lt;p&gt;脳と手が切り離されると:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ツール環境は独立して進化できる&lt;/li&gt;
&lt;li&gt;異なるインフラストラクチャに並行してアクセス可能&lt;/li&gt;
&lt;li&gt;セッションごとに実行環境全体をウォームアップする必要はありません&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは、起動および拡張のパフォーマンスの向上に直接つながります。&lt;/p&gt;
&lt;h2 id=&#34;パフォーマンスとセキュリティのインスピレーション&#34;&gt;パフォーマンスとセキュリティのインスピレーション
&lt;/h2&gt;&lt;p&gt;多くの場合、この分割によりパフォーマンスとセキュリティの両方が向上します。&lt;/p&gt;
&lt;p&gt;パフォーマンス：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;最初に脳を起動し、必要に応じて手を引き上げることができます&lt;/li&gt;
&lt;li&gt;最初のトークンの遅延を減らす (TTFT)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安全性：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;機密性の高い認証情報をモデルに直接公開しないでください&lt;/li&gt;
&lt;li&gt;間接的な資格情報アクセスには制御されたプロキシ/ボールトを使用する&lt;/li&gt;
&lt;li&gt;安全境界はシステムの制約に基づいており、「モデルが実行できないこと」ではありません。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;関連リンク&#34;&gt;関連リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://claude.com/blog/claude-managed-agents&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Usage patterns and customer examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/engineering/managed-agents&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;The design of Claude Managed Agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.claude.com/docs/en/managed-agents/quickstart&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Onboarding, quickstart, overview of the CLI and SKDs &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenClaw と Agent Harness: なぜ AGI のように見えるのか</title>
        <link>https://knightli.com/ja/2026/04/10/openclaw-agent-architecture-enterprise-ai/</link>
        <pubDate>Fri, 10 Apr 2026 09:16:17 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/10/openclaw-agent-architecture-enterprise-ai/</guid>
        <description>&lt;p&gt;初めて OpenClaw に触れた人の多くは、「チャットボットというよりも、何かができる同僚に近い」と感じるでしょう。&lt;/p&gt;
&lt;p&gt;この感覚には何も不思議なことはありません。重要な点は、OpenClaw は単一モデルの機能を飛躍的に向上させたものではなく、完全な &lt;strong&gt;エージェント ハーネス&lt;/strong&gt; であるということです。&lt;/p&gt;
&lt;h2 id=&#34;結論を先に言ってください&#34;&gt;結論を先に言ってください
&lt;/h2&gt;&lt;p&gt;OpenClaw の本質は次のように要約できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;モデルは理解と意思決定を担当します&lt;/li&gt;
&lt;li&gt;ハーネスはメモリ、ツール、トリガー、実行、出力を担当します。&lt;/li&gt;
&lt;li&gt;両者はサイクルを通じて協力し、「継続的なアクション」の体験を形成します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;したがって、それが「AGI に似ている」主な理由は、モデルが突然全能になることではなく、システム エンジニアリングによってモデルの実行可能性が増幅されることです。&lt;/p&gt;
&lt;h2 id=&#34;ハーネスとは&#34;&gt;ハーネスとは
&lt;/h2&gt;&lt;p&gt;ハーネスは「モデルが着用する外骨格」と理解できます。&lt;/p&gt;
&lt;p&gt;スタンドアロン LLM は通常、単一のリクエストでのみ回答を提供でき、Harness はこれらの機能を完了します。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;セッションと状態の管理: 複数のラウンドのタスクをつなぎ合わせる&lt;/li&gt;
&lt;li&gt;メモリメカニズム: オンデマンドでコンテキストを保存および呼び出し&lt;/li&gt;
&lt;li&gt;ツール システム: ブラウザ、端末、ファイル、外部 API の呼び出し&lt;/li&gt;
&lt;li&gt;トリガーメカニズム: タイマーまたはイベントによって起動し、毎回誰かが質問するのを待つ必要はありません。&lt;/li&gt;
&lt;li&gt;出力チャネル: 単なるテキストではなく、結果をシステムに書き戻します。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;これらの機能が同じループに接続されると、モデルは「レスポンダー」から「エグゼキューター」に変わります。&lt;/p&gt;
&lt;h2 id=&#34;openclaw-の外観が異なる理由&#34;&gt;OpenClaw の外観が異なる理由
&lt;/h2&gt;&lt;p&gt;従来のチャットボットは「1 回質問し、1 回回答」です。&lt;/p&gt;
&lt;p&gt;OpenClaw は、「観察 -&amp;gt; ツールの調整 -&amp;gt; 結果の確認 -&amp;gt; 意思決定」という閉ループに似ています。クローズドループが確立されると、タスクを継続的に進める能力を発揮します。&lt;/p&gt;
&lt;p&gt;これは、OpenClaw について学ぶべき最も価値のあることでもあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;エージェントのエクスペリエンスは主にアーキテクチャ設計から得られることが証明されています&lt;/li&gt;
&lt;li&gt;「自律性」をエンジニアリングモジュールに分割します&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;価値観と境界線&#34;&gt;価値観と境界線
&lt;/h2&gt;&lt;p&gt;OpenClaw の利点は多用途性と柔軟性があることですが、価格も明らかです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コンテキストとツールの定義が増えるほど、コストが高くなります&lt;/li&gt;
&lt;li&gt;システムが一般的であればあるほど、デバッグと管理はより複雑になります&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本番環境のシナリオでは、多くのチームが「万能エージェント」ではなく、より小規模で専門性の高いエージェントを選択します。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>eコマース商品画像の切り抜きと標準化されたエージェントスキルを共有する</title>
        <link>https://knightli.com/ja/2026/04/09/product-cutout-normalize-agent-skill-guide/</link>
        <pubDate>Thu, 09 Apr 2026 21:43:50 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/09/product-cutout-normalize-agent-skill-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;product-cutout-normalize&lt;/code&gt; は、商品画像に使用されるエージェント スキルです。&lt;/p&gt;
&lt;p&gt;元画像を統一仕様の下透明正方形画像に加工します。デフォルトのルールは次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;1024x1024&lt;/code&gt; キャンバス&lt;/li&gt;
&lt;li&gt;透明な背景&lt;/li&gt;
&lt;li&gt;件名は可能な限り完全なものにしてください&lt;/li&gt;
&lt;li&gt;縦長の被写体を横長に自動変換&lt;/li&gt;
&lt;li&gt;センターボディ&lt;/li&gt;
&lt;li&gt;メインの表示幅は&lt;code&gt;820px&lt;/code&gt;に統一&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;電子商取引資料、製品ライブラリ、詳細ページの画像の前処理に適しています。&lt;/p&gt;
&lt;h2 id=&#34;このスキルはどのような問題を解決しますか&#34;&gt;このスキルはどのような問題を解決しますか?
&lt;/h2&gt;&lt;p&gt;多くの製品画像には、基本的な切り抜き後も次の問題が発生します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;白い枠または薄い灰色の背景が残る&lt;/li&gt;
&lt;li&gt;被写体の水平方向と垂直方向が一致しない&lt;/li&gt;
&lt;li&gt;キャンバスのサイズが不安定です&lt;/li&gt;
&lt;li&gt;被写体のサイズは大きいものから小さいものまでさまざまです&lt;/li&gt;
&lt;li&gt;透明部分に小さなノイズがある&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このスキルは一定のプロセスに従って処理されます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ジェミニのカットアウト&lt;/li&gt;
&lt;li&gt;明るい背景のエッジをクリーンアップ&lt;/li&gt;
&lt;li&gt;ノイズの小さな断片を除去する&lt;/li&gt;
&lt;li&gt;縦長画像を横長画像に変換&lt;/li&gt;
&lt;li&gt;ターゲットの幅に合わせて拡大縮小する&lt;/li&gt;
&lt;li&gt;均一なサイズの透明なキャンバスの中央に配置します。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;この方法でエクスポートされた画像はよりきれいになり、バッチ使用に適しています。&lt;/p&gt;
&lt;h2 id=&#34;該当するシナリオ&#34;&gt;該当するシナリオ
&lt;/h2&gt;&lt;p&gt;以下のニーズに適しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;商品写真をバッチ処理する&lt;/li&gt;
&lt;li&gt;下透過PNGの統合出力&lt;/li&gt;
&lt;li&gt;メインビジュアルのサイズを統一する&lt;/li&gt;
&lt;li&gt;安定した反復可能な処理手順が必要&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;少数の画像のみを扱う場合、または各画像のレイアウトを個別に調整する必要がある場合には、これは適さない可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;クイックスタート&#34;&gt;クイックスタート
&lt;/h2&gt;&lt;p&gt;最も直接的な実行方法:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.\.venv\Scripts\python.exe&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.codex\skills\product-cutout-normalize\scripts\run_pipeline.py&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;input_dir&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;output_dir&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-overwrite&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;実行前に必須:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GEMINI_API_KEY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;google-genai&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Pillow&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;依存関係をインストールします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;.\.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;venv&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Scripts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;python&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;exe&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-m&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pip&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;install&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;google-genai&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pillow&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;環境変数を設定します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$env:GEMINI_API_KEY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;your_api_key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;出力ルール&#34;&gt;出力ルール
&lt;/h2&gt;&lt;p&gt;デフォルトの出力:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;透明な背景 &lt;code&gt;PNG&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;1024x1024&lt;/code&gt; キャンバス&lt;/li&gt;
&lt;li&gt;身幅&lt;code&gt;820px&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;センターボディ&lt;/li&gt;
&lt;li&gt;小さなノイズもクリーンアップされます&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり、これは単なるスクリプトの暗記ではなく、製品イメージを整理するスクリプトのようなものです。&lt;/p&gt;
&lt;h2 id=&#34;主なパラメータの説明&#34;&gt;主なパラメータの説明
&lt;/h2&gt;&lt;p&gt;一般的に使用されるパラメータ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--model&lt;/code&gt;
デフォルト &lt;code&gt;gemini-2.5-flash-image&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--canvas-size&lt;/code&gt;
出力正方形キャンバス サイズ、デフォルト &lt;code&gt;1024&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--target-width&lt;/code&gt;
本体の表示幅、デフォルトは &lt;code&gt;820&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--min-component-pixels&lt;/code&gt;
このピクセル数より小さい透明なフラグメントは削除されます (デフォルトは &lt;code&gt;500&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--overwrite&lt;/code&gt;
出力ファイルがすでに存在する場合は、出力ファイルを直接上書きします&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例えば：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.\.venv\Scripts\python.exe&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.codex\skills\product-cutout-normalize\scripts\run_pipeline.py&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.\input&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.\output&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-canvas-size&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1280&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-target-width&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;960&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-overwrite&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;処理の流れ&#34;&gt;処理の流れ
&lt;/h2&gt;&lt;p&gt;処理フローは簡単です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ジェミニのカットアウト&lt;/li&gt;
&lt;li&gt;明るい背景のエッジをクリーンアップ&lt;/li&gt;
&lt;li&gt;ノイズの小さな断片を除去する&lt;/li&gt;
&lt;li&gt;縦長画像を横長画像に変換&lt;/li&gt;
&lt;li&gt;ターゲットの幅に合わせて拡大縮小する&lt;/li&gt;
&lt;li&gt;均一なサイズの透明なキャンバスの中央に配置します。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;通常の切り抜きスクリプトとの違い&#34;&gt;通常の切り抜きスクリプトとの違い
&lt;/h2&gt;&lt;p&gt;通常の暗記スクリプトと比較して、次の問題もさらに処理します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;主な方向性は統一されています&lt;/li&gt;
&lt;li&gt;均一なボディサイズ&lt;/li&gt;
&lt;li&gt;均一なキャンバスサイズ&lt;/li&gt;
&lt;li&gt;小さな破片やノイズ​​のクリーンアップ&lt;/li&gt;
&lt;li&gt;結果はマテリアル ライブラリに直接入れるのに適しています。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;skillmd-ソースコード&#34;&gt;SKILL.md ソースコード
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;SKILL.md&lt;/code&gt; の完全なソース コードは以下に保持されており、内容は変更されていません。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: product-cutout-normalize
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: Run a reusable Gemini product-image pipeline that removes backgrounds, preserves the full subject, rotates tall products to a horizontal orientation, centers them on a 1024x1024 transparent canvas, and normalizes the visible subject width to 820px. Use when the user wants a repeatable cutout-and-normalize workflow for product photos or asks to batch-process product images into standardized square PNG assets.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# Product Cutout Normalize
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use this skill when product photos need the same deterministic finishing pipeline:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Gemini cutout from the original photo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; border cleanup to transparent
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; preserve the full subject
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; rotate to horizontal when the subject is taller than it is wide
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; center on a &lt;span class=&#34;sb&#34;&gt;`1024x1024`&lt;/span&gt; transparent canvas
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; normalize the visible subject width to &lt;span class=&#34;sb&#34;&gt;`820px`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Quick Start
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Run the bundled script:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.\.venv\Scripts\python.exe&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.codex\skills\product-cutout-normalize\scripts\run_pipeline.py&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;input_dir&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;output_dir&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-overwrite&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;```&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Required environment:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`GEMINI_API_KEY`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`google-genai`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`Pillow`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Workflow
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; Confirm the request matches this standard pipeline. If the user asks for a different canvas size, subject width, or layout rule, pass explicit flags instead of changing the script.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; Run the bundled script on the input directory.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; If a result looks misaligned, inspect the alpha bounding box and small detached artifacts first; this pipeline already removes tiny alpha components by default.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; Report the exact input and output directories used, plus any non-default flags.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Script
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Primary entry point:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`scripts/run_pipeline.py`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Key flags:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--model`&lt;/span&gt;: Gemini image model, default &lt;span class=&#34;sb&#34;&gt;`gemini-2.5-flash-image`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--canvas-size`&lt;/span&gt;: output square size, default &lt;span class=&#34;sb&#34;&gt;`1024`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--target-width`&lt;/span&gt;: visible subject width after normalization, default &lt;span class=&#34;sb&#34;&gt;`820`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--min-component-pixels`&lt;/span&gt;: remove detached alpha specks smaller than this, default &lt;span class=&#34;sb&#34;&gt;`500`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--overwrite`&lt;/span&gt;: replace existing outputs in the destination directory
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Repo Integration
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;If the current project already has [&lt;span class=&#34;nt&#34;&gt;`scripts/nano_banana_cutout.py`&lt;/span&gt;](&lt;span class=&#34;na&#34;&gt;/c:/Work/my_shop/scripts/nano_banana_cutout.py&lt;/span&gt;), prefer that repo script when the user wants the same pipeline inside this repository. Use the bundled skill script when the task is cross-project reuse or when you want the workflow to stay self-contained inside the skill.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;スクリプトrun_pipelinepy-ソース-コード&#34;&gt;スクリプト/run_pipeline.py ソース コード
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;scripts/run_pipeline.py&lt;/code&gt; の完全なソース コードは以下に保持されており、内容は変更されていません。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;  1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 85
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 86
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 87
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 88
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 89
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 90
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 91
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 92
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 93
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 94
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 95
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 96
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 97
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 98
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 99
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;100
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;101
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;102
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;103
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;104
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;105
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;106
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;107
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;108
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;109
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;110
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;111
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;112
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;113
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;114
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;115
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;116
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;117
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;118
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;119
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;120
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;121
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;122
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;123
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;124
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;125
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;126
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;127
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;128
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;129
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;130
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;131
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;132
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;133
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;134
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;135
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;136
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;137
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;138
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;139
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;140
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;141
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;142
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;143
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;144
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;145
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;146
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;147
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;148
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;149
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;150
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;151
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;152
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;153
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;154
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;155
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;156
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;157
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;158
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;159
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;160
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;161
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;162
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;163
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;164
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;165
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;166
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;167
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;168
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;169
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;170
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;171
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;172
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;173
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;174
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;175
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;176
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;177
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;178
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;179
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;180
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;181
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;182
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;183
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;184
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;185
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;186
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;187
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;188
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;189
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;190
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;191
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;192
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;193
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;194
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;195
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;196
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;197
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;198
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;199
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;200
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;201
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;202
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;203
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;204
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;205
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;206
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;207
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;208
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;209
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;210
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;211
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;212
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;213
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;214
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;215
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;216
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;217
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;218
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;219
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;220
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;221
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;222
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;223
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;224
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;225
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;226
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;227
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;228
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;229
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;230
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;231
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;232
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;233
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;234
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;235
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;236
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;237
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;238
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;239
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;240
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;241
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;242
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;243
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;244
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;245
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;246
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;247
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;248
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;249
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;250
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;251
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;252
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;253
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;254
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;255
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;256
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;257
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;258
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;259
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;260
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;261
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;262
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;263
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;264
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;265
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;266
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;267
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;268
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;269
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;270
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;271
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;272
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;273
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;274
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;275
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;276
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;277
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;278
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;279
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;280
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;281
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;282
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;283
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;284
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;285
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;286
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;287
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;288
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;289
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;290
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;291
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;__future__&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;annotations&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;argparse&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;collections&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pathlib&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;PIL&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;google&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;ImportError&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# pragma: no cover&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;Missing dependency: google-genai. Install it with &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#39;.\.venv\Scripts\python.exe -m pip install google-genai&amp;#39;.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;exc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;PROMPT&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;Remove the entire background from this product photo and return only the product &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;on a fully transparent background as a PNG. Keep the full product intact, preserve &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;thin cable details, clean the inner loops and holes, and do not add any new objects &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;or shadows.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_CANVAS_SIZE&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1024&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_TARGET_WIDTH&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;820&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_MIN_COMPONENT_PIXELS&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;500&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;SUPPORTED_EXTENSIONS&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;.jpg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.jpeg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.webp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;is_light_background_pixel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;bool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;brightness&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;spread&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;min&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;brightness&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;170&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;spread&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;35&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;to_pil_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;pil_image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;_pil_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pil_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pil_image&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;as_pil&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;pil_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;as_pil&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;as_pil&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;TypeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Unsupported image object type: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;!r}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;make_transparent_from_borders&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;size&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;pixels&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;load&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;_&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;is_light_background_pixel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;popleft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;remove_small_components&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;alpha&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;getchannel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;A&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;size&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;alpha_pixels&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;alpha&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;load&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;rgba_pixels&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;load&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;alpha_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;([(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;cx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cy&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;popleft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cx&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cx&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cy&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cy&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;alpha_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                            &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;px&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;py&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;_&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;px&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;py&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;rgba_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;px&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;py&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;normalize_product_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;bbox&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;getchannel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;A&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;getbbox&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bbox&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;new&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;crop&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bbox&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;90&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;expand&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;resample&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Resampling&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;BICUBIC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;rotated_bbox&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;getchannel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;A&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;getbbox&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rotated_bbox&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;crop&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rotated_bbox&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;scale&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;resize&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;round&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;scale&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)))),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Resampling&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;LANCZOS&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;canvas&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;new&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;offset_x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;//&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;offset_y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;//&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;canvas&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;alpha_composite&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;offset_x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;offset_y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;canvas&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;finalize_product_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;transparent&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;make_transparent_from_borders&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;cleaned&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;remove_small_components&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;transparent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;normalize_product_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cleaned&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;save_first_image_part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;parts&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;candidates&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;candidates&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;RuntimeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Model returned no content parts.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;part&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;inline_data&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;inline_data&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;hasattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;as_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;to_pil_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;as_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parent&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mkdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exist_ok&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;finalize_product_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parent&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mkdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exist_ok&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;wb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;handle&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;handle&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;write&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;processed&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;finalize_product_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;processed&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;with_suffix&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;suffix&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lower&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;unlink&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;missing_ok&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;RuntimeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Model returned text only and no edited image.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;process_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;generate_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PROMPT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;save_first_image_part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;parse_args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argparse&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Namespace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argparse&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ArgumentParser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Cut out product images with Gemini and normalize them to square transparent PNGs.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;input_dir&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;output_dir&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--model&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gemini-2.5-flash-image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--canvas-size&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_CANVAS_SIZE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--target-width&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_TARGET_WIDTH&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--min-component-pixels&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_MIN_COMPONENT_PIXELS&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--overwrite&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;action&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;store_true&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parse_args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parse_args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;environ&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;GEMINI_API_KEY&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Missing GEMINI_API_KEY environment variable.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;input_dir&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is_dir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Input directory does not exist: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;input_dir&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--canvas-size must be positive.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--target-width must be positive and no larger than --canvas-size.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--min-component-pixels must be &amp;gt;= 0.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;output_dir&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mkdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exist_ok&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;sorted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;input_dir&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;iterdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is_file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;suffix&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lower&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;SUPPORTED_EXTENSIONS&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;output_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stem&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;.png&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exists&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;overwrite&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;skip &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;process_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;vm&#34;&gt;__name__&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;添付ファイルをダウンロード:
&lt;a class=&#34;link&#34; href=&#34;product-cutout-normalize.7z&#34; &gt;product-cutout-normalize.7z&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Google Nano Bananaを呼び出して画像を切り出す方法</title>
        <link>https://knightli.com/ja/2026/04/09/google-nano-banana-cutout-guide/</link>
        <pubDate>Thu, 09 Apr 2026 20:10:48 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/09/google-nano-banana-cutout-guide/</guid>
        <description>&lt;p&gt;この記事では、実用的な Python スクリプトを使用して、Google の &lt;code&gt;Nano Banana&lt;/code&gt; 画像編集機能を呼び出して商品画像を切り出す方法を示します。&lt;/p&gt;
&lt;p&gt;この現在の実装の目標は明確です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;カタログから製品画像を読み取る&lt;/li&gt;
&lt;li&gt;Google 画像モデルを呼び出して背景の削除を実行します。&lt;/li&gt;
&lt;li&gt;返された画像に対してローカルの透明な背景のクリーニングを再度実行します&lt;/li&gt;
&lt;li&gt;最終出力は透明な下部 &lt;code&gt;PNG&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;白い背景の製品画像、ヘッドフォンの画像、および配線図面のバッチがすでにあり、電子商取引で使用できる透明な背景画像をすばやく生成したい場合、この方法は非常に簡単です。&lt;/p&gt;
&lt;h2 id=&#34;このコードは何をするのか&#34;&gt;このコードは何をするのか
&lt;/h2&gt;&lt;p&gt;このスクリプトは主に 4 つの部分に分かれています。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;「背景を削除し、被写体を保持し、影を追加しない」ことをモデルに知らせるプロンプト ワードを定義します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;google-genai&lt;/code&gt; の画像生成インターフェイスを呼び出します。&lt;/li&gt;
&lt;li&gt;モデル応答から画像結果を抽出する&lt;/li&gt;
&lt;li&gt;次に、ローカル ロジックを使用してエッジの明るい背景を透明に変換し、残留エッジを減らします。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;つまり、単にモデルに画像を投げただけでは終わりではなく、「モデル編集＋ローカル後処理」を繋ぎ合わせて完成するのです。&lt;/p&gt;
&lt;h2 id=&#34;走る前の準備&#34;&gt;走る前の準備
&lt;/h2&gt;&lt;p&gt;最初に依存関係をインストールします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.&lt;span class=&#34;se&#34;&gt;\.&lt;/span&gt;venv&lt;span class=&#34;se&#34;&gt;\S&lt;/span&gt;cripts&lt;span class=&#34;se&#34;&gt;\p&lt;/span&gt;ython.exe -m pip install google-genai pillow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;gemini_api_keyの取得方法&#34;&gt;GEMINI_API_KEYの取得方法
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GEMINI_API_KEY&lt;/code&gt; は、Gemini API を呼び出すときに使用されるキーです。 Google の公式クイックスタートによると、キーをまだ持っていない場合は、Google AI Studio で直接作成できます。&lt;/p&gt;
&lt;p&gt;入手手順は以下の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Google AIスタジオを開きます。&lt;/li&gt;
&lt;li&gt;Google アカウントにサインインします。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Get API key&lt;/code&gt; または &lt;code&gt;API keys&lt;/code&gt; ページを見つけます。&lt;/li&gt;
&lt;li&gt;新しい API キーを作成します。&lt;/li&gt;
&lt;li&gt;生成されたキーをコピーします。&lt;/li&gt;
&lt;li&gt;スクリプトが読み取ることができるように、これをローカル環境変数に構成します。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ページ上に使用可能なプロジェクトがない場合は、通常、最初にプロジェクトの初期化を完了してから、[API キー] ページに戻ってキーを作成する必要があります。&lt;/p&gt;
&lt;p&gt;キーを取得したら、環境変数を構成します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$env&lt;/span&gt;:GEMINI_API_KEY&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;your_api_key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;cmd&lt;/code&gt; を使用している場合は、次のように記述できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;GEMINI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_api_key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;GEMINI_API_KEY&lt;/code&gt; と &lt;code&gt;GOOGLE_API_KEY&lt;/code&gt; を同時に設定した場合、実際の動作では通常 &lt;code&gt;GOOGLE_API_KEY&lt;/code&gt; が最初に読み込まれるため、混乱を避けるために 1 つだけを保持することをお勧めします。&lt;/p&gt;
&lt;h2 id=&#34;ディレクトリ構造の例&#34;&gt;ディレクトリ構造の例
&lt;/h2&gt;&lt;p&gt;スクリプトは 2 つのパラメータを受け取ります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;input_dir&lt;/code&gt;: 画像ディレクトリに入る&lt;/li&gt;
&lt;li&gt;&lt;code&gt;output_dir&lt;/code&gt;: 出力画像ディレクトリ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例えば：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;images/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  product1.jpg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  product2.png
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;output/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;走り方&#34;&gt;走り方
&lt;/h2&gt;&lt;p&gt;スクリプトファイル名が&lt;code&gt;cutout.py&lt;/code&gt;で、実行方法が次のとおりであるとします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.&lt;span class=&#34;se&#34;&gt;\.&lt;/span&gt;venv&lt;span class=&#34;se&#34;&gt;\S&lt;/span&gt;cripts&lt;span class=&#34;se&#34;&gt;\p&lt;/span&gt;ython.exe .&lt;span class=&#34;se&#34;&gt;\c&lt;/span&gt;utout.py .&lt;span class=&#34;se&#34;&gt;\i&lt;/span&gt;mages .&lt;span class=&#34;se&#34;&gt;\o&lt;/span&gt;utput
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;モデルを変更したい場合は、パラメーターを明示的に渡すこともできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.&lt;span class=&#34;se&#34;&gt;\.&lt;/span&gt;venv&lt;span class=&#34;se&#34;&gt;\S&lt;/span&gt;cripts&lt;span class=&#34;se&#34;&gt;\p&lt;/span&gt;ython.exe .&lt;span class=&#34;se&#34;&gt;\c&lt;/span&gt;utout.py .&lt;span class=&#34;se&#34;&gt;\i&lt;/span&gt;mages .&lt;span class=&#34;se&#34;&gt;\o&lt;/span&gt;utput --model gemini-2.5-flash-image
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;スクリプトは、入力ディレクトリ内のファイルを次の形式でループします。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.jpg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.jpeg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.png&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.webp&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;処理が完了すると、同じ名前の透過的な &lt;code&gt;PNG&lt;/code&gt; ファイルが出力ディレクトリに生成されます。&lt;/p&gt;
&lt;h2 id=&#34;コア呼び出しプロセス&#34;&gt;コア呼び出しプロセス
&lt;/h2&gt;&lt;p&gt;実際に Google Nano Banana を呼び出すキーコードは次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;generate_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PROMPT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ここでは 2 つのコンテンツが渡されます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;テキスト プロンプトの単語 &lt;code&gt;PROMPT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;ワンピース &lt;code&gt;PIL.Image&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;プロンプトの内容は、製品画像全体の背景を削除し、本体のみを残し、いくつかの点を強調するようモデルに依頼することです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;完全な製品を保管する&lt;/li&gt;
&lt;li&gt;細いワイヤーとケーブルの詳細を保持&lt;/li&gt;
&lt;li&gt;内部の空洞と環状領域をきれいにします&lt;/li&gt;
&lt;li&gt;新しいオブジェクトを追加しないでください&lt;/li&gt;
&lt;li&gt;影を追加しないでください&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この種のプロンプトワードは、カットアウトの品質、特にヘッドフォンケーブル、透明なエッジ、中空領域などの細部に大きな影響を与えます。&lt;/p&gt;
&lt;h2 id=&#34;なぜローカルで後処理を行う必要があるのでしょうか&#34;&gt;なぜローカルで後処理を行う必要があるのでしょうか?
&lt;/h2&gt;&lt;p&gt;モデルが結果を返した後、スクリプトは直接保存されませんが、&lt;code&gt;make_transparent_from_borders(image)&lt;/code&gt; が再度実行されます。&lt;/p&gt;
&lt;p&gt;このステップの考え方は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;画像の周囲のエッジから始まる明るい背景ピクセルを見つけます&lt;/li&gt;
&lt;li&gt;幅優先検索を使用して、接続されているすべての明るい色の領域をマークします。&lt;/li&gt;
&lt;li&gt;最後に、これらの領域を透明に変更します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これを行う利点は、残っている白いエッジ、明るい灰色の背景、および不十分にきれいなエッジ領域をさらに除去できることです。&lt;/p&gt;
&lt;p&gt;「背景かどうか」の判断条件は以下の通りです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;is_light_background_pixel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;bool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;brightness&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;spread&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;min&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;brightness&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;170&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;spread&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;35&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;簡単な理解は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;全体的に色が明るいので&lt;/li&gt;
&lt;li&gt;3 つの RGB チャネルの差が大きすぎることはありません&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;商品画像の背景が白地やライトグレー地、単色に近いものを加工する場合に適しています。&lt;/p&gt;
&lt;h2 id=&#34;完全なソースコード&#34;&gt;完全なソースコード
&lt;/h2&gt;&lt;p&gt;現在の完全なソース コードは、直接の再利用や二次的な変更を容易にするために以下に保持されています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;  1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 85
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 86
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 87
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 88
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 89
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 90
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 91
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 92
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 93
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 94
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 95
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 96
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 97
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 98
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 99
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;100
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;101
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;102
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;103
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;104
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;105
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;106
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;107
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;108
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;109
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;110
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;111
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;112
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;113
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;114
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;115
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;116
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;117
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;118
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;119
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;120
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;121
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;122
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;123
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;124
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;125
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;126
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;127
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;128
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;129
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;130
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;131
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;132
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;133
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;134
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;135
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;136
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;137
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;138
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;139
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;140
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;141
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;142
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;143
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;144
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;145
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;146
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;147
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;148
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;149
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;150
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;__future__&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;annotations&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;argparse&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pathlib&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;collections&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;PIL&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;google&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;ImportError&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# pragma: no cover&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;Missing dependency: google-genai. Install it with &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#39;.\.venv\Scripts\python.exe -m pip install google-genai&amp;#39;.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;exc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;PROMPT&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;Remove the entire background from this product photo and return only the product &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;on a fully transparent background as a PNG. Keep the full product intact, preserve &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;thin cable details, clean the inner loops and holes, and do not add any new objects &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;or shadows.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;is_light_background_pixel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;bool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;brightness&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;spread&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;min&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;brightness&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;170&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;spread&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;35&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;to_pil_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;pil_image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;_pil_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pil_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pil_image&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;as_pil&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;pil_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;as_pil&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;as_pil&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;TypeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Unsupported image object type: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;!r}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;make_transparent_from_borders&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;size&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;pixels&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;load&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;_&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;is_light_background_pixel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;popleft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;save_first_image_part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;parts&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;candidates&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;candidates&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;RuntimeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Model returned no content parts.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;part&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;inline_data&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;inline_data&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;hasattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;as_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;to_pil_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;as_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parent&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mkdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exist_ok&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;make_transparent_from_borders&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;mime_type&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;mime_type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parent&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mkdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exist_ok&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;wb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;handle&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;handle&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;write&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;img&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;processed&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;make_transparent_from_borders&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;img&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;processed&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;with_suffix&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;suffix&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lower&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;unlink&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;missing_ok&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;RuntimeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Model returned text only and no edited image.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;process_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;generate_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PROMPT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;save_first_image_part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argparse&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ArgumentParser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Use Nano Banana / Gemini image editing to cut out product images.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;input_dir&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;output_dir&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--model&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gemini-2.5-flash-image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parse_args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;environ&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;GEMINI_API_KEY&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Missing GEMINI_API_KEY environment variable.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;exts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;.jpg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.jpeg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.webp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;sorted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;input_dir&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;iterdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is_file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;suffix&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lower&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;output_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stem&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;.png&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;process_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;vm&#34;&gt;__name__&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;最適化を続けるのに適した場所&#34;&gt;最適化を続けるのに適した場所
&lt;/h2&gt;&lt;p&gt;このスクリプトを大量生産に引き続き使用する予定がある場合は、後でこれらの機能を追加し続けることができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;単一の画像エラーが報告された後にバッチ全体が中断されるのを避けるために、失敗の再試行が追加されました。&lt;/li&gt;
&lt;li&gt;ログを記録して、処理に失敗した画像を特定しやすくします&lt;/li&gt;
&lt;li&gt;さまざまなバックグラウンドしきい値に合わせて構成可能&lt;/li&gt;
&lt;li&gt;サブディレクトリの再帰的スキャンをサポート&lt;/li&gt;
&lt;li&gt;元の画像と結果画像の比較プレビューを追加しました&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;「Google Nano Banana を呼び出して画像を切り出す方法」をすぐに理解したい場合は、実際には 3 つの主要な手順があります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;google-genai&lt;/code&gt; および &lt;code&gt;Pillow&lt;/code&gt; をインストールする&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GEMINI_API_KEY&lt;/code&gt; を設定します&lt;/li&gt;
&lt;li&gt;&lt;code&gt;client.models.generate_content()&lt;/code&gt; を使用してプロンプトの言葉と画像を渡します&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;このコードの価値は、モデルを呼び出すだけでなく、製品画像の切り抜きタスクで直接使用するのに適した透明な背景の後処理も追加することです。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Ollama クラウド モデルとは何か、そしてその使用方法</title>
        <link>https://knightli.com/ja/2026/04/09/ollama-cloud-models-guide/</link>
        <pubDate>Thu, 09 Apr 2026 18:42:32 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/09/ollama-cloud-models-guide/</guid>
        <description>&lt;p&gt;普段 &lt;code&gt;Ollama&lt;/code&gt; を使用してローカル モデルを実行している場合は、クラウド モデルを簡単に理解できるはずです。&lt;/p&gt;
&lt;p&gt;主要な相違点は 1 つだけです。&lt;br&gt;
ローカル モデルはユーザーのコンピューター上で推論され、クラウド モデルは Ollama のクラウド上で推論され、結果が返されます。&lt;/p&gt;
&lt;h2 id=&#34;クラウドモデルとは何ですか&#34;&gt;クラウドモデルとは何ですか
&lt;/h2&gt;&lt;p&gt;Ollama クラウド モデルは、Ollama の呼び出し方法を保持しますが、コンピューティングの場所をローカルからクラウドに変更します。&lt;/p&gt;
&lt;p&gt;これを行うことの利点は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ローカルハードウェアへの負担が軽減される&lt;/li&gt;
&lt;li&gt;ローカルマシンでは実行できない大規模なモデルを使いやすくする&lt;/li&gt;
&lt;li&gt;使い慣れた Ollama ワークフローを引き続き使用できます&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;現地モデルとの違い&#34;&gt;現地モデルとの違い
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;对比项&lt;/th&gt;
          &lt;th&gt;本地模型&lt;/th&gt;
          &lt;th&gt;云模型&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;运行位置&lt;/td&gt;
          &lt;td&gt;本机&lt;/td&gt;
          &lt;td&gt;云端&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;硬件要求&lt;/td&gt;
          &lt;td&gt;高&lt;/td&gt;
          &lt;td&gt;低&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;延迟&lt;/td&gt;
          &lt;td&gt;更低&lt;/td&gt;
          &lt;td&gt;受网络影响&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;隐私性&lt;/td&gt;
          &lt;td&gt;更强&lt;/td&gt;
          &lt;td&gt;请求会发送到云端&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;プライバシー、低遅延、オフライン使用を重視する場合は、ローカル モデルの方が適しています。&lt;br&gt;
ローカルのハードウェアでは十分ではないが、より大規模なモデルを体験したい場合は、クラウド モデルの方が便利です。&lt;/p&gt;
&lt;h2 id=&#34;クラウドモデルを特定する方法&#34;&gt;クラウドモデルを特定する方法
&lt;/h2&gt;&lt;p&gt;現在の Ollama クラウド モデルには通常、サフィックス &lt;code&gt;-cloud&lt;/code&gt; が付いています。次に例を示します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpt-oss:120b-cloud
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;利用可能なモデルのリストは変更される可能性があります。Ollamaの公式ページを参照してください。&lt;/p&gt;
&lt;h2 id=&#34;使用方法&#34;&gt;使用方法
&lt;/h2&gt;&lt;p&gt;まずログインしてください:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama signin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ログイン後、クラウド モデルを直接実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run gpt-oss:120b-cloud
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;コードから呼び出している場合は、API キーを構成することもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OLLAMA_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_api_key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Python の例:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;ollama&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Client&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;host&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://ollama.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Authorization&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Bearer &amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;environ&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;OLLAMA_API_KEY&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;messages&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;role&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;content&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;为什么天空是蓝色的？&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;part&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;chat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gpt-oss:120b-cloud&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;messages&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;messages&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;stream&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;message&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;][&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;content&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;end&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;flush&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Ollama クラウド モデルは、次の一文で理解できます。&lt;/p&gt;
&lt;p&gt;コマンドは基本的に同じままですが、モデルはローカルで実行されなくなります。&lt;/p&gt;
&lt;p&gt;コンピューターで大規模なモデルを実行できないが、引き続き Ollama を使用してモデルを呼び出したい場合、クラウド モデルは非常に簡単なソリューションです。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Hugging Face から GGUF モデルをダウンロードし、Ollama にインポートします。</title>
        <link>https://knightli.com/ja/2026/04/09/import-huggingface-gguf-into-ollama/</link>
        <pubDate>Thu, 09 Apr 2026 11:00:07 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/09/import-huggingface-gguf-into-ollama/</guid>
        <description>&lt;p&gt;モデルの公式 Ollama ライブラリに既製バージョンがない場合、または Hugging Face で特定の &lt;code&gt;GGUF&lt;/code&gt; ファイルを使用したい場合は、手動でダウンロードして Ollama にインポートできます。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-1-hugging-face-から-gguf-ファイルをダウンロードする&#34;&gt;ステップ 1: Hugging Face から GGUF ファイルをダウンロードする
&lt;/h2&gt;&lt;p&gt;まず、Hugging Face で対象モデルに対応する &lt;code&gt;GGUF&lt;/code&gt; ファイルを見つけます。次のような複数の量子化バージョンが表示されるのが一般的です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q4_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q5_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q8_0&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;どのバージョンを選択するかは、ビデオ メモリ、メモリ、速度と品質の選択によって異なります。ダウンロード後、&lt;code&gt;.gguf&lt;/code&gt; ファイルを固定ディレクトリに置き、後で &lt;code&gt;Modelfile&lt;/code&gt; で直接参照します。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-2-モデルファイルを作成する&#34;&gt;ステップ 2: モデルファイルを作成する
&lt;/h2&gt;&lt;p&gt;モデル ファイルと同じディレクトリに新しい &lt;code&gt;Modelfile&lt;/code&gt; を作成します。最も基本的な書き方は次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;FROM ./model.gguf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ファイル名が異なる場合は、次のように実際のファイル名に変更します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;FROM ./gemma-3-12b-it-q4_k_m.gguf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;最初に実行したいだけの場合は、通常、&lt;code&gt;FROM&lt;/code&gt; 行で十分です。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-3-ollama-にインポートする&#34;&gt;ステップ 3: Ollama にインポートする
&lt;/h2&gt;&lt;p&gt;次に、以下を実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama create myModelName -f Modelfile
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;myModelName&lt;/code&gt; は、Ollama で使用するローカル モデル名です。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-f Modelfile&lt;/code&gt; は、この構成ファイルからモデルを作成することを意味します&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;作成が成功すると、この GGUF ファイルは直接呼び出すことができるローカル モデルになります。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-4-モデルを実行する&#34;&gt;ステップ 4: モデルを実行する
&lt;/h2&gt;&lt;p&gt;作成後に直接実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run myModelName
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;以降の使い方は基本的に&lt;code&gt;ollama pull&lt;/code&gt;のモデルと同じです。&lt;/p&gt;
&lt;h2 id=&#34;既存のモデルのモデルファイルを表示する方法&#34;&gt;既存のモデルのモデルファイルを表示する方法
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Modelfile&lt;/code&gt; の書き方がわからない場合は、既存のモデルの構成を直接表示できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama show --modelfile llama3.2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このコマンドは、参照に適した &lt;code&gt;llama3.2&lt;/code&gt; の &lt;code&gt;Modelfile&lt;/code&gt; コンテンツを出力します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;FROM&lt;/code&gt;の書き方&lt;/li&gt;
&lt;li&gt;テンプレートとシステム プロンプトはどのように構成されていますか?&lt;/li&gt;
&lt;li&gt;パラメータの宣言方法&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;このルートを使用するのが適切なのはどのような場合ですか&#34;&gt;このルートを使用するのが適切なのはどのような場合ですか?
&lt;/h2&gt;&lt;p&gt;次のシナリオは、Hugging Face からの手動インポートに適しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;必要なモデルは、公式 Ollama ライブラリではまだ利用できません。&lt;/li&gt;
&lt;li&gt;特定の量子化バージョンを使用したい場合&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GGUF&lt;/code&gt; ファイルを手動でダウンロードしました&lt;/li&gt;
&lt;li&gt;モデルのパッケージ化方法をよりきめ細かく制御したい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;公式ライブラリに既製のバージョンがある場合は、通常、&lt;code&gt;pull&lt;/code&gt; を直接使用する方が簡単です。ただし、特定の量子化やカスタム パッケージングが必要な場合は、&lt;code&gt;GGUF + Modelfile&lt;/code&gt; の方がより柔軟です。&lt;/p&gt;
&lt;h2 id=&#34;共通の注意点&#34;&gt;共通の注意点
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;FROM&lt;/code&gt; の後のパスは、実際の &lt;code&gt;.gguf&lt;/code&gt; ファイルの場所と一致している必要があります。&lt;/li&gt;
&lt;li&gt;ファイル名にスペースや特殊文字が含まれている場合は、最初に簡単な名前に変更することをお勧めします。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GGUF&lt;/code&gt; の量子化バージョンが異なると、メモリと速度に大きな影響を与えます。インポートが成功しても、操作がスムーズに行われるとは限りません。&lt;/li&gt;
&lt;li&gt;モデルがチャット モデルの場合、効果がより安定するように、後でその形式に応じてプロンプト テンプレートを調整する必要があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;結論は&#34;&gt;結論は
&lt;/h2&gt;&lt;p&gt;Hugging Face から &lt;code&gt;GGUF&lt;/code&gt; ファイルをダウンロードして Ollama にインポートするのは複雑ではありません。モデル ファイルを準備し、使用可能な最小限の &lt;code&gt;Modelfile&lt;/code&gt; を書き込み、その後 &lt;code&gt;ollama create&lt;/code&gt; を実行してサードパーティの &lt;code&gt;GGUF&lt;/code&gt; モデルを Ollama に接続します。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Ollama ダウンロード モデルのプル速度が遅い場合のトラブルシューティングと解決策</title>
        <link>https://knightli.com/ja/2026/04/09/ollama-download-slow-troubleshooting/</link>
        <pubDate>Thu, 09 Apr 2026 10:42:39 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/09/ollama-download-slow-troubleshooting/</guid>
        <description>&lt;p&gt;&lt;code&gt;ollama pull model_name:tag&lt;/code&gt; 一部の地域ではダウンロード速度が非常に遅くなり、プロセスが安定しません。&lt;/p&gt;
&lt;p&gt;大きなモデルのダウンロード中に繰り返し中断が発生し、&lt;code&gt;TLS handshake timeout&lt;/code&gt; または &lt;code&gt;unexpected EOF&lt;/code&gt; のエラー メッセージが表示される場合は、おそらく &lt;code&gt;registry.ollama.ai&lt;/code&gt; 自体だけでなく、その後にジャンプされる実際のダウンロード リンクに問題があると考えられます。&lt;/p&gt;
&lt;p&gt;この記事では、シンプルかつ直接的なトラブルシューティングのアイデアを記録します。最初にモデル ファイルの実際のダウンロード アドレスを取得し、次に最終的なトラフィックがどこに落ちるかを確認し、最後に主要なドメイン名に対してのみネットワークの最適化を実行します。&lt;/p&gt;
&lt;h2 id=&#34;モデルファイルのダウンロードアドレスを取得する&#34;&gt;モデルファイルのダウンロードアドレスを取得する
&lt;/h2&gt;&lt;p&gt;次のプロジェクトを使用して、Ollama モデルに対応するマニフェストと BLOB のダウンロード アドレスを直接抽出できます。&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Gholamrezadar/ollama-direct-downloader&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/Gholamrezadar/ollama-direct-downloader&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;gemma4:latest&lt;/code&gt; を例として、次のようなリンクを抽出できます。&lt;/p&gt;
&lt;h3 id=&#34;マニフェストアドレス&#34;&gt;マニフェストアドレス
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://registry.ollama.ai/v2/library/gemma4/manifests/latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;blob-アドレス&#34;&gt;BLOB アドレス
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:f0988ff50a2458c598ff6b1b87b94d0f5c44d73061c2795391878b00b2285e11
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:4c27e0f5b5adf02ac956c7322bd2ee7636fe3f45a8512c9aba5385242cb6e09a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:7339fa418c9ad3e8e12e74ad0fd26a9cc4be8703f9c110728a992b193be85cb2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:56380ca2ab89f1f68c283f4d50863c0bcab52ae3f1b9a88e4ab5617b176f71a3
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;すぐに確認したいだけの場合は、&lt;code&gt;curl&lt;/code&gt; を直接使用してマニフェストと BLOB をダウンロードすることもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -L &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://registry.ollama.ai/v2/library/gemma4/manifests/latest&amp;#34;&lt;/span&gt; -o &lt;span class=&#34;s2&#34;&gt;&amp;#34;latest&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -L &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:f0988ff50a2458c598ff6b1b87b94d0f5c44d73061c2795391878b00b2285e11&amp;#34;&lt;/span&gt; -o &lt;span class=&#34;s2&#34;&gt;&amp;#34;sha256-f0988ff50a2458c598ff6b1b87b94d0f5c44d73061c2795391878b00b2285e11&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -L &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:4c27e0f5b5adf02ac956c7322bd2ee7636fe3f45a8512c9aba5385242cb6e09a&amp;#34;&lt;/span&gt; -o &lt;span class=&#34;s2&#34;&gt;&amp;#34;sha256-4c27e0f5b5adf02ac956c7322bd2ee7636fe3f45a8512c9aba5385242cb6e09a&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -L &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:7339fa418c9ad3e8e12e74ad0fd26a9cc4be8703f9c110728a992b193be85cb2&amp;#34;&lt;/span&gt; -o &lt;span class=&#34;s2&#34;&gt;&amp;#34;sha256-7339fa418c9ad3e8e12e74ad0fd26a9cc4be8703f9c110728a992b193be85cb2&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;ジャンプ後の実際のダウンロード-アドレス&#34;&gt;ジャンプ後の実際のダウンロード アドレス
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;wget&lt;/code&gt; を使用して BLOB の 1 つをダウンロードしてみてください。リクエストは &lt;code&gt;registry.ollama.ai&lt;/code&gt; にとどまらず、引き続き &lt;code&gt;Cloudflare R2&lt;/code&gt; オブジェクト ストレージ アドレスにジャンプしていることがわかります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wget https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:4c27e0f5b5adf02ac956c7322bd2ee7636fe3f45a8512c9aba5385242cb6e09a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--2026-04-09 09:22:04--  https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:4c27e0f5b5adf02ac956c7322bd2ee7636fe3f45a8512c9aba5385242cb6e09a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Resolving registry.ollama.ai &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;registry.ollama.ai&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;... 104.21.75.227, 172.67.182.229, 2606:4700:3034::ac43:b6e5, ...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Connecting to registry.ollama.ai &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;registry.ollama.ai&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;104.21.75.227&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;:443... connected.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;HTTP request sent, awaiting response... &lt;span class=&#34;m&#34;&gt;307&lt;/span&gt; Temporary Redirect
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Location: https://dd20bb891979d25aebc8bec07b2b3bbc.r2.cloudflarestorage.com/ollama/docker/registry/v2/blobs/sha256/4c/4c27e0f5b5adf02ac956c7322bd2ee7636fe3f45a8512c9aba5385242cb6e09a/data?... &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;following&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--2026-04-09 09:22:05--  https://dd20bb891979d25aebc8bec07b2b3bbc.r2.cloudflarestorage.com/ollama/docker/registry/v2/blobs/sha256/4c/4c27e0f5b5adf02ac956c7322bd2ee7636fe3f45a8512c9aba5385242cb6e09a/data?...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Resolving dd20bb891979d25aebc8bec07b2b3bbc.r2.cloudflarestorage.com &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dd20bb891979d25aebc8bec07b2b3bbc.r2.cloudflarestorage.com&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;... 172.64.66.1, 2606:4700:2ff9::1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Connecting to dd20bb891979d25aebc8bec07b2b3bbc.r2.cloudflarestorage.com&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;172.64.66.1&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;:443... connected.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;HTTP request sent, awaiting response... &lt;span class=&#34;m&#34;&gt;200&lt;/span&gt; OK
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Length: &lt;span class=&#34;m&#34;&gt;9608338848&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;8.9G&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;application/octet-stream&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ログからいくつかの重要な情報を確認できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;registry.ollama.ai&lt;/code&gt; が &lt;code&gt;307 Temporary Redirect&lt;/code&gt; を返しました&lt;/li&gt;
&lt;li&gt;最終的なダウンロード アドレスは &lt;code&gt;*.r2.cloudflarestorage.com&lt;/code&gt; になります。&lt;/li&gt;
&lt;li&gt;大きなファイルの送信を実際に実行しているのは、実際にはその背後にあるオブジェクト ストレージ ドメイン名です。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この手順は、プロキシまたは転送ルールが &lt;code&gt;registry.ollama.ai&lt;/code&gt; のみをカバーし、&lt;code&gt;*.r2.cloudflarestorage.com&lt;/code&gt; を処理しない場合、ダウンロードが依然として遅くなるか、繰り返し中断される可能性があることを意味するため、重要です。&lt;/p&gt;
&lt;h2 id=&#34;ネットワーク設定を調整する&#34;&gt;ネットワーク設定を調整する
&lt;/h2&gt;&lt;p&gt;実際のダウンロード リンクを確認すると、トラブルシューティングの方向性がより明確になります。&lt;/p&gt;
&lt;p&gt;プロキシ、オフロード、またはカスタム DNS を使用している場合は、最初に次のことを確認することをお勧めします。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;registry.ollama.ai&lt;/code&gt; と &lt;code&gt;*.r2.cloudflarestorage.com&lt;/code&gt; は同じ安定したルートをたどりましたか?&lt;/li&gt;
&lt;li&gt;プロキシ ルールは前者のみをカバーし、後者は除外しますか?&lt;/li&gt;
&lt;li&gt;現在のエクスポートは、数ギガバイトから数十ギガバイトまでの大きなファイルを継続的にダウンロードするのに適していますか?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この種の問題の鍵は、「公式サイトが開設できるかどうか」ではなく、「ジャンプ後のオブジェクトストレージリンクが安定し、長時間送信し続けられるかどうか」である。多くの場合、本当に最適化する必要があるのは、以前のレジストリ ドメイン名ではなく、&lt;code&gt;Cloudflare R2&lt;/code&gt; レイヤーです。&lt;/p&gt;
&lt;h2 id=&#34;調整前と調整後の比較&#34;&gt;調整前と調整後の比較
&lt;/h2&gt;&lt;p&gt;以下は、実際に &lt;code&gt;gemma4:31b-it-q8_0&lt;/code&gt; をダウンロードした場合のパフォーマンスです。&lt;/p&gt;
&lt;p&gt;調整前はダウンロード速度が遅く、途中でエラーが報告されていました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PS C:\Users\knightli&amp;gt; ollama run gemma4:31b-it-q8_0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pulling manifest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pulling a0feadb736f5:  38% ▕██████████████████████                                    ▏  12 GB/ 33 GB  1.2 MB/s   4h40m
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Error: max retries exceeded: unexpected EOF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;調整後、同じモデルを再度ダウンロードすると、速度と安定性が大幅に向上しました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PS C:\Users\knightli&amp;gt; ollama run gemma4:31b-it-q8_0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pulling manifest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pulling a0feadb736f5:  46% ▕████████████████████████████████████████████████████████████████▏ 15 GB/ 33 GB  8.5 MB/s  35m23s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは、すべてのネットワーク環境で同じ結果が得られるという意味ではありませんが、少なくとも 1 つの点を示しています。ボトルネックは Ollama クライアント自体ではなく、実際の大きなファイルのダウンロード リンクにある可能性が高いということです。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Gemma 4 を実行している Raspberry Pi 5 の実際のテスト: 実行可能ですが、応答が遅い</title>
        <link>https://knightli.com/ja/2026/04/08/gemma4-on-raspberry-pi5-benchmark/</link>
        <pubDate>Wed, 08 Apr 2026 18:42:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/08/gemma4-on-raspberry-pi5-benchmark/</guid>
        <description>&lt;p&gt;極端な試み: &lt;code&gt;Raspberry Pi 5（8GB RAM）&lt;/code&gt; で Gemma 4 を実行します。目標は、大規模なモデル バージョンではなく、&lt;code&gt;E2B&lt;/code&gt; の最小バージョンです。&lt;/p&gt;
&lt;p&gt;結論から始めましょう。実行して使用することはできますが、対話頻度の低いシナリオに適しており、リアルタイム要件の高い対話エクスペリエンスには適していません。&lt;/p&gt;
&lt;h2 id=&#34;テスト環境&#34;&gt;テスト環境
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;デバイス: Raspberry Pi 5 (4コアCPU、8GB RAM)&lt;/li&gt;
&lt;li&gt;システム: Ubuntu サーバー (グラフィカル インターフェイスなし)&lt;/li&gt;
&lt;li&gt;アクセス方法：SSH&lt;/li&gt;
&lt;li&gt;モデルの実行方法: LM Studio CLI (コマンドラインモードのみ)&lt;/li&gt;
&lt;li&gt;モデル：Gemma 4 E2B (約4.5GB)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;ステップ-1-lm-studio-cli-をインストールして起動する&#34;&gt;ステップ 1: LM Studio CLI をインストールして起動する
&lt;/h2&gt;&lt;p&gt;LM Studio の CLI バージョンをインストールし、サービスを開始して、使用可能なコマンドを確認します。&lt;/p&gt;
&lt;p&gt;これは純粋なコマンド ライン環境であるため、このコマンド ラインのみの展開方法は Raspberry Pi に非常に適しています。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-2-モデルのストレージを-ssd-に切り替える&#34;&gt;ステップ 2: モデルのストレージを SSD に切り替える
&lt;/h2&gt;&lt;p&gt;SDカードの頻繁な読み書きを避けるため、モデルのダウンロードディレクトリを外付けSSDに変更しました。&lt;/p&gt;
&lt;p&gt;SSD を Raspberry Pi 5 に接続する体験は、明らかに以前のモデルよりも実用的です。長期的なローカル モデルでは、最初に SSD を使用することをお勧めします。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-3-gemma-4-e2b-をダウンロードしてロードする&#34;&gt;ステップ 3: Gemma 4 E2B をダウンロードしてロードする
&lt;/h2&gt;&lt;p&gt;ダウンロードが完了すると、モデルをメモリに正常にロードできるようになります。&lt;/p&gt;
&lt;p&gt;公式情報によると、Gemma 4 シリーズには次の機能があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;エージェントシナリオのツール呼び出し機能 (関数呼び出し)&lt;/li&gt;
&lt;li&gt;マルチモーダル機能 (画像/ビデオを含む。小型モデルには音声関連機能もある)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;128K&lt;/code&gt; コンテキスト ウィンドウ&lt;/li&gt;
&lt;li&gt;Apache 2.0 ライセンス (商用利用可能)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Raspberry Pi のハードウェア条件から判断すると、最初に試すには E2B レベルの方が適しています。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-4-api-を開始して-lan-アクセスを開く&#34;&gt;ステップ 4: API を開始して LAN アクセスを開く
&lt;/h2&gt;&lt;p&gt;モデルがロードされた後、まずローカル ポートで API (&lt;code&gt;4000&lt;/code&gt;) を開始し、HTTP リクエストを通じてモデル リストが返されることを確認します。&lt;/p&gt;
&lt;p&gt;問題は、デフォルトではこのマシンのみを監視し、LAN 上の他のデバイスは直接アクセスできないことです。&lt;/p&gt;
&lt;p&gt;起動パラメータでホストを直接設定できないため、ポート転送に &lt;code&gt;socat&lt;/code&gt; を使用して、Raspberry Pi の外部ポート要求を LM Studio の内部ポートにブリッジし、LAN アクセスを実現しました。&lt;/p&gt;
&lt;p&gt;結果はうまくいきました。同じ LAN 上の MacBook 上のモデルのリストを正常にリクエストして取得することができました。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-5-エディター-zed-にアクセスします&#34;&gt;ステップ 5: エディター (Zed) にアクセスします。
&lt;/h2&gt;&lt;p&gt;LM Studio のローカル サービスは OpenAI API フォームと互換性があるため、カスタム &lt;code&gt;base_url&lt;/code&gt; をサポートするほとんどのツールに直接アクセスできます。&lt;/p&gt;
&lt;p&gt;Raspberry Pi 上の Gemma 4 インスタンスを指す新しい LLM プロバイダーを Zed に追加したところ、エディターでのチャット テストに合格しました。&lt;/p&gt;
&lt;h2 id=&#34;実際の使用感の判断&#34;&gt;実際の使用感の判断
&lt;/h2&gt;&lt;p&gt;このパッケージは次の用途に適しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ローカルオートメーションスクリプト&lt;/li&gt;
&lt;li&gt;同時実行性とリアルタイム要件が低い補助タスク&lt;/li&gt;
&lt;li&gt;個人学習とエッジデバイスの実験&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以下にはあまり適していません:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;高頻度の対話型チャット&lt;/li&gt;
&lt;li&gt;応答遅延の影響を受けやすい開発コラボレーション シナリオ&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;結論は&#34;&gt;結論は
&lt;/h2&gt;&lt;p&gt;Gemma 4 (E2B) を &lt;code&gt;Raspberry Pi 5&lt;/code&gt; で実行することは実現可能で、予想よりもうまく機能します。&lt;/p&gt;
&lt;p&gt;オフラインで実行し、ツールを入手し、軽度および中度のタスクを完了できるようにすることが目標である場合、このルートは試してみる価値があります。スムーズなリアルタイム インタラクションが目標の場合でも、より強力なハードウェアを入手することをお勧めします。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>OpenClaw とローカル Gemma 4 のドッキング: 完全な構成ガイド</title>
        <link>https://knightli.com/ja/2026/04/08/openclaw-connect-gemma4-local/</link>
        <pubDate>Wed, 08 Apr 2026 18:18:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/08/openclaw-connect-gemma4-local/</guid>
        <description>&lt;p&gt;この記事では、&lt;code&gt;OpenClaw&lt;/code&gt; をローカル &lt;code&gt;Gemma 4&lt;/code&gt; モデル (&lt;code&gt;Ollama&lt;/code&gt; を通じて提供されるインターフェイス) に接続する方法を説明します。&lt;/p&gt;
&lt;p&gt;ローカル展開が完了していない場合は、以下を参照してください。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/ja/2026/04/08/run-gemma4-on-laptop/&#34; &gt;如何在笔记本电脑上运行 Gemma 4：5 分钟本地部署指南&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;ステップ-1-ollama-api-サービスを開始する&#34;&gt;ステップ 1: Ollama API サービスを開始する
&lt;/h2&gt;&lt;p&gt;まず Ollama サービスを開始します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;次のコマンドを使用して、API が適切に動作しているかどうかを簡単にテストできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl http://localhost:11434/api/generate -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;  &amp;#34;model&amp;#34;: &amp;#34;gemma4:12b&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;  &amp;#34;prompt&amp;#34;: &amp;#34;你好&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;モデル出力を返すことができる場合は、ローカル API が使用可能です。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-2-ollama-に接続するように-openclaw-を構成する&#34;&gt;ステップ 2: Ollama に接続するように OpenClaw を構成する
&lt;/h2&gt;&lt;p&gt;OpenClaw 構成ファイルのパスは通常次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.openclaw/config.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;config.yaml&lt;/code&gt; を編集し、ローカル モデル エントリを &lt;code&gt;models&lt;/code&gt; に追加します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 你已有的模型配置...&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;gemma4-local&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;provider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;ollama&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;base_url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;http://localhost:11434&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gemma4:12b&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;timeout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;120s&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;ステップ-3-デフォルトのモデルを設定する-オプション&#34;&gt;ステップ 3: デフォルトのモデルを設定する (オプション)
&lt;/h2&gt;&lt;p&gt;Gemma 4 をデフォルトで使用する場合は、以下を追加できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;default_model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gemma4-local&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;ステップ-4-openclaw-を再起動して確認する&#34;&gt;ステップ 4: OpenClaw を再起動して確認する
&lt;/h2&gt;&lt;p&gt;OpenClaw を再起動します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openclaw restart
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;モデルのリストを表示します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openclaw models list
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;会話テストを開始します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openclaw chat --model gemma4-local &lt;span class=&#34;s2&#34;&gt;&amp;#34;你好&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ダイアログが正常に戻った場合、OpenClaw はローカル Gemma 4 に正常に接続されています。&lt;/p&gt;
&lt;h2 id=&#34;一般的なトラブルシューティング&#34;&gt;一般的なトラブルシューティング
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;connection refused&lt;/code&gt;: まず、&lt;code&gt;ollama serve&lt;/code&gt; が実行されているかどうかを確認します。&lt;/li&gt;
&lt;li&gt;モデルが見つかりません: モデル名が &lt;code&gt;ollama list&lt;/code&gt; (たとえば、&lt;code&gt;gemma4:12b&lt;/code&gt;) と一致しているかどうかを確認します。&lt;/li&gt;
&lt;li&gt;応答タイムアウト: &lt;code&gt;timeout&lt;/code&gt; は適切に増やすことができ、小さいモデルを最初にテストする必要があります。&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>ラップトップで Gemma 4 を実行する方法: 5 分間のローカル導入ガイド</title>
        <link>https://knightli.com/ja/2026/04/08/run-gemma4-on-laptop/</link>
        <pubDate>Wed, 08 Apr 2026 18:06:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/08/run-gemma4-on-laptop/</guid>
        <description>&lt;p&gt;Gemma 4 をラップトップ上でローカルに実行したい場合、現時点では &lt;code&gt;Ollama&lt;/code&gt; が最も手間のかからない方法の 1 つです。複雑な環境をいじらなくても、通常は 5 分程度で実行できます。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-1-ollama-をインストールする&#34;&gt;ステップ 1: Ollama をインストールする
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;code&gt;https://ollama.com&lt;/code&gt; を開き、対応するシステムのインストール パッケージをダウンロードします。&lt;/li&gt;
&lt;li&gt;システムごとにインストールを完了します。&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;macOS: &lt;code&gt;Applications&lt;/code&gt; にドラッグします。&lt;/li&gt;
&lt;li&gt;Windows: &lt;code&gt;.exe&lt;/code&gt; インストーラーを実行します。&lt;/li&gt;
&lt;li&gt;Linux: 公式 Web サイトで提供されているインストール スクリプトを使用します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;インストールすると、Ollama はバックグラウンド サービスとして実行されます。初期インストールを除き、毎日簡単なコマンドのみを使用できます。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-2-gemma-4-モデルをダウンロードする&#34;&gt;ステップ 2: Gemma 4 モデルをダウンロードする
&lt;/h2&gt;&lt;p&gt;ターミナルを開いて次を実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama pull gemma4:4b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;マシンのパフォーマンスが高い場合は、&lt;code&gt;12b&lt;/code&gt; または &lt;code&gt;27b&lt;/code&gt; に変更できます。ダウンロードが完了すると、モデルはローカルに保存されます。&lt;/p&gt;
&lt;p&gt;ダウンロードしたモデルを表示します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama list
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;ステップ-3-モデルを起動する&#34;&gt;ステップ 3: モデルを起動する
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run gemma4:4b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これにより、ターミナルで対話型セッションが開きます。質問を入力して Enter キーを押すだけです。セッションを終了するには、次のように入力します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/bye
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Web チャット インターフェイスを希望する場合は、&lt;code&gt;Open WebUI&lt;/code&gt; とともに使用できます。 Ollama をブラウザ側 UI にラップできます。これは通常、Docker を通じて数分で構成できます。&lt;/p&gt;
&lt;h2 id=&#34;ラップトップのパフォーマンス最適化に関する提案&#34;&gt;ラップトップのパフォーマンス最適化に関する提案
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Apple Silicon (M2/M3/M4): デフォルトでは金属が使用されており、通常、加速効果は非常に優れています。 &lt;code&gt;12B&lt;/code&gt; も良い経験をしています。&lt;/li&gt;
&lt;li&gt;NVIDIA グラフィックス カード: 互換性のある GPU が検出されると、CUDA が自動的に使用されます。事前にドライバーをアップデートすることをお勧めします。&lt;/li&gt;
&lt;li&gt;CPU のみの推論: 実行できますが、大規模なモデルは大幅に遅くなります。ほとんどの CPU のみのシナリオでは、&lt;code&gt;4B&lt;/code&gt; を優先することをお勧めします。&lt;/li&gt;
&lt;li&gt;メモリを解放する: 大きなモデルをロードする前に、メモリを消費するアプリケーションを閉じるようにしてください。経験則として、10 億パラメータごとに約 &lt;code&gt;0.5GB 到 1GB&lt;/code&gt; のメモリが必要です。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;モデルの選び方&#34;&gt;モデルの選び方
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Gemma 4 1B&lt;/code&gt;: 軽量の Q&amp;amp;A、基本的な要約、および高速なクエリに適しています。複雑な推論能力には限界があります。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Gemma 4 4B&lt;/code&gt;: 速度と品質のバランスが取れており、ほとんどの日常タスク (書き込み支援、コード支援、データ要約) に適しています。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Gemma 4 12B&lt;/code&gt;: より長いコンテキストとより複雑なタスクに適しており、コーディングと推論のシナリオでより安定しています。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Gemma 4 27B&lt;/code&gt;: 需要の高いタスクに適しており、効果はクラウド大規模モデルに近いですが、ハードウェア要件は大幅に高くなります。&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Android での Gemma 4 のインストールと実行: 開始するための完全なガイド</title>
        <link>https://knightli.com/ja/2026/04/08/android-gemma4-install-run-guide/</link>
        <pubDate>Wed, 08 Apr 2026 17:55:53 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/08/android-gemma4-install-run-guide/</guid>
        <description>&lt;p&gt;携帯電話で Gemma 4 をオフラインで体験したい場合は、この記事でインストールから実際の機能までを段階的に説明します。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-1-アプリを入手する&#34;&gt;ステップ 1: アプリを入手する
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Google AI Edge Gallery&lt;/code&gt; は現在 Google Play では利用できないため、APK サイドローディング経由でインストールする必要があります。&lt;/p&gt;
&lt;p&gt;Android デバイスで次のように入力します。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;设置 -&amp;gt; 应用 -&amp;gt; 特殊应用权限 -&amp;gt; 安装未知应用&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;それから：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;使用しているブラウザ (Chrome や Firefox など) を見つけて、[このソースからの許可] をオンにします。&lt;/li&gt;
&lt;li&gt;モバイル ブラウザで &lt;code&gt;Google AI Edge Gallery&lt;/code&gt; の GitHub リリース ページを開きます。&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;アドレス: &lt;a class=&#34;link&#34; href=&#34;https://github.com/google-ai-edge/gallery/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/google-ai-edge/gallery/releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;最新の &lt;code&gt;.apk&lt;/code&gt; インストール パッケージをダウンロードします。&lt;/li&gt;
&lt;li&gt;ダウンロードが完了したら、通知バーまたはファイル マネージャーでインストール パッケージをクリックし、プロンプトに従ってインストールを完了します。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ネットワークが正常な場合、この手順は通常、完了するまでに約 2 分かかります。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-2-初めて開いて認証する&#34;&gt;ステップ 2: 初めて開いて認証する
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;AI Edge Gallery&lt;/code&gt; を初めて開くと、アプリケーションはモデル ファイルを保存するためのストレージ アクセス許可を要求します。直接許可することをお勧めします。許可しない場合、アプリケーションはモデルをダウンロードまたはロードできません。&lt;/p&gt;
&lt;p&gt;通常、ホームページには次の入り口が表示されます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ask Image&lt;/code&gt;: 画像理解タスク (画像の説明、画像に関する質問に答える)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AI Chat&lt;/code&gt;: 通常のテキスト会話&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Summarize&lt;/code&gt;: テキストを貼り付けて概要を生成します&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Smart Reply&lt;/code&gt;: 返信候補の生成&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ほとんどのユーザーが最もよく使用するのは &lt;code&gt;AI Chat&lt;/code&gt; です。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-3-gemma-4-モデルをダウンロードする&#34;&gt;ステップ 3: Gemma 4 モデルをダウンロードする
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;「&lt;code&gt;AI Chat&lt;/code&gt;」と入力します。&lt;/li&gt;
&lt;li&gt;プロンプトに従って「&lt;code&gt;Get Models&lt;/code&gt;」をクリックします。&lt;/li&gt;
&lt;li&gt;モデルリストで Gemma 4 バージョンを選択します (対応するボリュームが表示されます)。&lt;/li&gt;
&lt;li&gt;デバイスの性能に応じてモデルを選択します。電話機が &lt;code&gt;8GB RAM&lt;/code&gt; の場合は、最初に &lt;code&gt;Gemma 4 4B&lt;/code&gt; から開始できます。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Download&lt;/code&gt; をクリックすると、バックグラウンドでダウンロードが開始されます。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;注: モデルが大きいほど、ダウンロード時間は長くなります。複数のモデルをダウンロードし、必要に応じて後で切り替えることもできます。ダウンロードしたモデルはローカルに保存されるため、再度ダウンロードする必要はありません。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-4-会話を開始する&#34;&gt;ステップ 4: 会話を開始する
&lt;/h2&gt;&lt;p&gt;モデルのダウンロードが完了したら、次のようにします。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;モデル名をクリックしてロードします (モデルのサイズとデバイスの機能に応じて、最初のロードには通常 10 ～ 30 秒かかります)。&lt;/li&gt;
&lt;li&gt;チャット ボックスに質問を入力して送信してください。&lt;/li&gt;
&lt;li&gt;モデルはローカルで応答を生成し、データはクラウドにアップロードされません。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;一般に、最初の応答はわずかに遅くなりますが、これはモデルがウォームアップするときの正常な現象です。通常、同じセッション内での後続の応答はより速くなります。&lt;/p&gt;
&lt;h2 id=&#34;ステップ-5-ビジュアル機能を体験する-gemma-4-マルチモーダル&#34;&gt;ステップ 5: ビジュアル機能を体験する (Gemma 4 マルチモーダル)
&lt;/h2&gt;&lt;p&gt;Gemma 4 マルチモーダル バージョンをダウンロードした場合:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;メインメニューに戻り、「&lt;code&gt;Ask Image&lt;/code&gt;」と入力します。&lt;/li&gt;
&lt;li&gt;写真を選択するか、直接写真を撮ります。&lt;/li&gt;
&lt;li&gt;尋ねたい質問を入力します (たとえば、「この写真には何が写っていますか?」または「この写真のどのテキストに注意を払う必要がありますか?」)。&lt;/li&gt;
&lt;li&gt;モデルがローカルで分析され、結果が返されるまで待ちます。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;この機能はオフラインで動作し、画像コンテンツは外部サーバーに送信されません。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>エージェント スキルを使用して、VS Code の Copilot の「コミット メッセージの生成」機能を置き換える</title>
        <link>https://knightli.com/ja/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/</link>
        <pubDate>Mon, 06 Apr 2026 13:09:49 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/</guid>
        <description>&lt;p&gt;VS Code の GitHub Copilot の「コミット メッセージの生成」は非常に便利な機能です。クォータを使い果たした後のリセット期間は非常に長くなります。
この記事は、ローカル エージェント スキルを使用してこの機能を置き換える試みです。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/1.png&#34;
	width=&#34;645&#34;
	height=&#34;194&#34;
	srcset=&#34;https://knightli.com/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/1_hu_6b81e604b29d8606.png 480w, https://knightli.com/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/1_hu_5f11e2ea13cbceb8.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;生成提交消息&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;332&#34;
		data-flex-basis=&#34;797px&#34;
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;問題と目標&#34;&gt;問題と目標
&lt;/h2&gt;&lt;p&gt;この記事の目的は、直接実装できる代替手段のセットを提供することです。つまり、&lt;code&gt;git-commit-push-zh&lt;/code&gt; スキル エージェントを使用して、標準化された送信とプッシュを完了します。&lt;/p&gt;
&lt;h2 id=&#34;代替-git-commit-push-zh&#34;&gt;代替: &lt;code&gt;git-commit-push-zh&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;このスキルは、「現在の変更」を固定プロセスに収束します。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;変更ステータスを表示します。&lt;/li&gt;
&lt;li&gt;現在のブランチを確認します。&lt;/li&gt;
&lt;li&gt;変更を一時的に保存します。&lt;/li&gt;
&lt;li&gt;中国語の提出情報を生成します。&lt;/li&gt;
&lt;li&gt;コミットを実行します。&lt;/li&gt;
&lt;li&gt;リモートブランチにプッシュします。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;対応するコマンドは次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git status --short
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git branch --show-current
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git add -A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git commit -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;lt;中文提交信息&amp;gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git push origin &amp;lt;当前分支&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;情報提案仕様書の提出&#34;&gt;情報提案仕様書の提出
&lt;/h2&gt;&lt;p&gt;推奨される統一形式:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;类型&amp;gt;(&amp;lt;范围&amp;gt;): &amp;lt;中文摘要&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;タイプの例:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;feat&lt;/code&gt;: 新機能&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fix&lt;/code&gt;: 問題を修正&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docs&lt;/code&gt;: ドキュメントの更新&lt;/li&gt;
&lt;li&gt;&lt;code&gt;refactor&lt;/code&gt;: コードのリファクタリング&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chore&lt;/code&gt;: メンテナンスの変更&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;feat(site): 新增全站 head 广告脚本注入&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fix(i18n): 修正 relref 相关文章链接路径&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chore(content): 合并 AI 工作流分类到 AI工具&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;一般的な障害シナリオ&#34;&gt;一般的な障害シナリオ
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nothing to commit&lt;/code&gt;: 現在、送信する変更はありません。プッシュを停止してください。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;push&lt;/code&gt; が失敗しました: 最初に権限、リモート ブランチのステータス、競合を確認してください。&lt;/li&gt;
&lt;li&gt;SSH/権限の例外: 認証情報と権限を確認して、再試行してください。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;付録-オリジナル-skillmd&#34;&gt;付録: オリジナル &lt;code&gt;SKILL.md&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;次の内容は &lt;code&gt;git-commit-push-zh&lt;/code&gt; の元のドキュメントであり、その後の再利用とメンテナンスを容易にするためにそのまま保持されます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: git-commit-push-zh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: 在当前 Git 仓库中将“当前更改”完成一次标准提交流程：检查状态、暂存变更、生成中文提交信息、执行 commit 并 push 到当前分支对应远端。用户提出“提交代码”“提交当前更改”“生成中文提交信息并推送”“git commit push 中文说明”等请求时使用。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# 中文提交并推送
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;使用此技能将当前仓库改动一次性提交并推送到远端。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 工作流程
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 查看变更状态：&lt;span class=&#34;sb&#34;&gt;`git status --short`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 确认当前分支：&lt;span class=&#34;sb&#34;&gt;`git branch --show-current`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 暂存当前变更：&lt;span class=&#34;sb&#34;&gt;`git add -A`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; 生成中文提交信息（简洁、可检索）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;5.&lt;/span&gt; 执行提交：&lt;span class=&#34;sb&#34;&gt;`git commit -m &amp;#34;&amp;lt;中文提交信息&amp;gt;&amp;#34;`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;6.&lt;/span&gt; 执行推送：&lt;span class=&#34;sb&#34;&gt;`git push origin &amp;lt;当前分支&amp;gt;`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 提交信息规范（中文）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 建议格式：&lt;span class=&#34;sb&#34;&gt;`&amp;lt;类型&amp;gt;(&amp;lt;范围&amp;gt;): &amp;lt;中文摘要&amp;gt;`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 类型示例：&lt;span class=&#34;sb&#34;&gt;`feat`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`fix`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`chore`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`docs`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`refactor`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 摘要要求：准确描述本次改动，不写空话。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; 若仅少量变更，也保持可读性与可检索性。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;示例：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`feat(site): 新增全站 head 广告脚本注入`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`fix(i18n): 修正 relref 相关文章链接路径`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`chore(content): 合并 AI 工作流分类到 AI工具`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 错误处理
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 若无可提交变更（nothing to commit），明确告知并停止 push。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 若 push 失败，先回报关键错误（权限、远端不存在、冲突等）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 常见 SSH/权限问题可在用户确认后重试高权限环境。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 输出约定
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 汇报提交哈希、分支名、提交信息。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 汇报 push 结果（成功或失败原因）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 仅在确有失败时提供下一步最小操作建议。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
        </item>
        <item>
        <title>Ollama モデルが GPU にロードされているかどうかを確認する方法</title>
        <link>https://knightli.com/ja/2026/04/06/check-ollama-model-loaded-on-gpu/</link>
        <pubDate>Mon, 06 Apr 2026 10:15:18 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/06/check-ollama-model-loaded-on-gpu/</guid>
        <description>&lt;p&gt;Ollama モデルが実際に GPU 上で実行されているかどうかを確認する最も直接的な方法は、現在ロードされているモデルのプロセッサ使用状況情報を確認することです。&lt;/p&gt;
&lt;h2 id=&#34;コマンドを使用する&#34;&gt;コマンドを使用する
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;出力例&#34;&gt;出力例
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;NAME        ID            SIZE    PROCESSOR   UNTIL
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama3:70b  bcfb190ca3a7  42 GB   100% GPU    4 minutes from now
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;processor-列の解釈方法&#34;&gt;&lt;code&gt;PROCESSOR&lt;/code&gt; 列の解釈方法
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;100% GPU&lt;/code&gt;: モデルは GPU メモリに完全にロードされています。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;100% CPU&lt;/code&gt;: モデルはシステム メモリに完全にロードされています (GPU 推論は使用されません)。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;48%/52% CPU/GPU&lt;/code&gt;: モデルは一部がメモリ内にあり、一部がビデオ メモリ内にあり、混合負荷です。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;実践的なアドバイス&#34;&gt;実践的なアドバイス
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;GPU を使用する予定なのに &lt;code&gt;100% CPU&lt;/code&gt; が表示される場合は、まずグラフィックス ドライバー、CUDA/ROCm 環境、および Ollama ランタイム パラメーターを確認してください。&lt;/li&gt;
&lt;li&gt;モデルパラメータの数が多く、ビデオメモリが不足している場合、通常、CPU/GPU 混合負荷が発生します。&lt;/li&gt;
&lt;li&gt;パフォーマンスの問題のトラブルシューティングを行う場合は、最初に &lt;code&gt;ollama ps&lt;/code&gt; を実行し、次に速度データを確認してボトルネックをより迅速に特定します。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;要約する&#34;&gt;要約する
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ollama ps&lt;/code&gt; は、モデルが実際に GPU を使用しているかどうかを判断する最初のステップです。 &lt;code&gt;PROCESSOR&lt;/code&gt; 列に注目して、現在の読み込み位置をすばやく確認し、それに応じてその後の最適化の方向を決定します。&lt;/p&gt;
&lt;!-- ollama-related-links:start --&gt;
</description>
        </item>
        <item>
        <title>AI を使用して Hugo の多言語ブログを維持するエージェント スキル</title>
        <link>https://knightli.com/ja/2026/04/06/agent-skill-sync-post-translations-guide/</link>
        <pubDate>Mon, 06 Apr 2026 10:00:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/06/agent-skill-sync-post-translations-guide/</guid>
        <description>&lt;p&gt;Hugo の多言語ブログを維持している場合、頻繁に次のような問題点に遭遇するでしょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;中国語を作成した後、英語バージョンと繁体字中国語バージョンを同時に生成する必要があります。&lt;/li&gt;
&lt;li&gt;3 つの言語ファイルは一貫した構造を持っている必要があります&lt;/li&gt;
&lt;li&gt;前付は翻訳され、Hugo 形式に準拠する必要があります&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;sync-post-translations&lt;/code&gt; は、このシナリオ用に設計されたエージェント スキルです。&lt;/p&gt;
&lt;h2 id=&#34;このスキルはどのような問題を解決しますか&#34;&gt;このスキルはどのような問題を解決しますか?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;sync-post-translations&lt;/code&gt; のポジショニングは非常に明確です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;index.zh-cn.md&lt;/code&gt;をソースファイルとして取得します&lt;/li&gt;
&lt;li&gt;同じディレクトリ内で &lt;code&gt;index.en.md&lt;/code&gt;、&lt;code&gt;index.zh-tw.md&lt;/code&gt; を生成または更新します&lt;/li&gt;
&lt;li&gt;マークダウン構造の一貫性を保つ&lt;/li&gt;
&lt;li&gt;前付に明確なルールを適用する (特に &lt;code&gt;date&lt;/code&gt;、&lt;code&gt;slug&lt;/code&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;適用可能なトリガーワードの例:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「英語と繁体字の同時通訳」&lt;/li&gt;
&lt;li&gt;「この記事を英語と繁体字中国語に同期します」&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;スキルのディレクトリ構造&#34;&gt;スキルのディレクトリ構造
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.\sync-post-translations\
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├─ SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└─ agents\
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   └─ openai.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;コアコード-1-skillmd&#34;&gt;コアコード 1: SKILL.md
&lt;/h2&gt;&lt;p&gt;以下は、このスキルのコア ルール ファイルです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: sync-post-translations
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: 将 Hugo 文章从简体中文源文件（&lt;span class=&#34;sb&#34;&gt;`index.zh-cn.md`&lt;/span&gt;）同步翻译为英文（&lt;span class=&#34;sb&#34;&gt;`index.en.md`&lt;/span&gt;）和繁体中文（&lt;span class=&#34;sb&#34;&gt;`index.zh-tw.md`&lt;/span&gt;）。当用户提出“en 繁体”“同步翻译英文繁体”或要求同时生成/更新两种语言版本且需保持 front matter 与 Markdown 结构一致时使用。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# 同步文章翻译
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;使用此技能为同一篇文章生成或更新多语言版本。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 工作流程
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 在目标文章目录中定位源文件 &lt;span class=&#34;sb&#34;&gt;`index.zh-cn.md`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 读取完整 front matter 与正文内容。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 在同目录创建或更新 &lt;span class=&#34;sb&#34;&gt;`index.en.md`&lt;/span&gt; 与 &lt;span class=&#34;sb&#34;&gt;`index.zh-tw.md`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; 确保三语结构对齐后执行 Hugo 构建检查。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 翻译规则
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 严格保留 &lt;span class=&#34;sb&#34;&gt;`slug`&lt;/span&gt; 原值。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`date`&lt;/span&gt; 统一规范为 Hugo 常用带时间格式（RFC3339），示例：&lt;span class=&#34;sb&#34;&gt;`2026-04-05T10:00:00+08:00`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 自然翻译以下 front matter 字段：&lt;span class=&#34;sb&#34;&gt;`title`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`description`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`tags`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`categories`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; 保持 Markdown 结构不变：标题层级、列表形态、代码块、链接与命令行示例。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;5.&lt;/span&gt; 技术标识符保持原样：文件名、CLI 参数、模型名、设备名、URL、包名等。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;6.&lt;/span&gt; 若 YAML 的 &lt;span class=&#34;sb&#34;&gt;`title`&lt;/span&gt; 含有 &lt;span class=&#34;sb&#34;&gt;`:`&lt;/span&gt;，必须加引号，避免解析报错。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;7.&lt;/span&gt; 在不改变语义前提下，使用目标语言自然标点与表达习惯（&lt;span class=&#34;sb&#34;&gt;`en`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`zh-tw`&lt;/span&gt;）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 输出约定
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 仅在源文章同目录写入目标文件。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 汇报变更的文件路径。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 条件允许时执行 &lt;span class=&#34;sb&#34;&gt;`hugo --source . --destination public`&lt;/span&gt;，并反馈通过/失败；失败时给出关键报错行。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 质量标准
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 全文术语前后一致。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 避免机器直译感，优先可发布文风。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 章节内容完整，不省略示例、注意点与总结。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;コアコード-2-エージェントopenaiyaml&#34;&gt;コアコード 2: エージェント/openai.yaml
&lt;/h2&gt;&lt;p&gt;このファイルは、エージェント側のスキルの表示とデフォルトのプロンプト単語を定義します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;interface&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;display_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;同步文章翻译&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;short_description&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;生成或更新 EN + ZH-TW 翻译稿&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;default_prompt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;使用该技能在同一 Hugo 文章目录中，从 `index.zh-cn.md` 生成或同步 `index.en.md` 与 `index.zh-tw.md`，保留 `date` 与 `slug`，保持 Markdown 结构一致，并执行 Hugo 构建校验。&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;実際の通話例&#34;&gt;実際の通話例
&lt;/h2&gt;&lt;h3 id=&#34;1-人間指向の自然言語トリガー&#34;&gt;1) 人間指向の自然言語トリガー
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请把 content/post/2026/04/06/index.zh-cn.md 同步翻译成英文和繁体，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;要求 date 用 RFC3339，slug 不变，最后跑 hugo 校验。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;2-期待される出力&#34;&gt;2) 期待される出力
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;已更新：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- content/post/2026/04/06/index.en.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- content/post/2026/04/06/index.zh-tw.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;构建校验：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- hugo --source . --destination public
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 结果：PASS
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;これらのルールが重要な理由&#34;&gt;これらのルールが重要な理由
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;code&gt;slug&lt;/code&gt; は変更されず、URL と過去の外部リンクを安定させることができます。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;date&lt;/code&gt; RFC3339 (タイムゾーン付き) を統合して、時間解像度における Hugo/トピックの曖昧さを回避します。&lt;/li&gt;
&lt;li&gt;Markdown 構造は変更されないため、翻訳されたディレクトリ、コード ブロック、ショート コードのレンダリングの位置がずれることを回避できます。&lt;/li&gt;
&lt;li&gt;技術識別子は翻訳されないため、「コマンドが使用できない/ファイル名が一致しない」問題が大幅に減少します。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;よくある落とし穴と回避策&#34;&gt;よくある落とし穴と回避策
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;code&gt;title&lt;/code&gt; に &lt;code&gt;:&lt;/code&gt; があっても引用符がない場合、YAML は解析に失敗します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--flag&lt;/code&gt;、URL、パッケージ名を変換すると、サンプルコマンドはそのまま無効になります。&lt;/li&gt;
&lt;li&gt;3 つの言語のタイトル レベルは一貫性がなく (たとえば、中国語の &lt;code&gt;##&lt;/code&gt; は英語の &lt;code&gt;###&lt;/code&gt; になります)、ディレクトリ アンカーの位置がずれます。&lt;/li&gt;
&lt;li&gt;前付を加工せずに本文だけを翻訳すると、ページ一覧やSEO情報が異常になります。&lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        <item>
        <title>Ollama モデルのデフォルトの保存場所と移行方法 (C ドライブがいっぱいになるのを防ぐため)</title>
        <link>https://knightli.com/ja/2026/04/06/ollama-model-storage-path-and-migration/</link>
        <pubDate>Mon, 06 Apr 2026 09:38:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/06/ollama-model-storage-path-and-migration/</guid>
        <description>&lt;p&gt;大規模なモデルをローカルで実行する場合、多くの場合、システム ディスクが最初に爆発しやすくなります。 Ollama は、デフォルトでモデルをユーザー ディレクトリまたはシステム ディレクトリにダウンロードします。事前にパスを計画しておかないと、C ドライブがすぐにいっぱいになってしまいます。&lt;/p&gt;
&lt;h2 id=&#34;ollama-共通のデフォルト-モデル-ディレクトリ&#34;&gt;Ollama 共通のデフォルト モデル ディレクトリ
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Windows: &lt;code&gt;C:\Users\&amp;lt;用户名&amp;gt;\.ollama\models&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;macOS：&lt;code&gt;~/.ollama/models&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Linux: &lt;code&gt;/usr/share/ollama/.ollama/models&lt;/code&gt; (一部インストール方法が異なる場合があります)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;windows-モデル-ディレクトリをシステム以外のディスクに移行します&#34;&gt;Windows: モデル ディレクトリをシステム以外のディスクに移行します。
&lt;/h2&gt;&lt;p&gt;モデル ディレクトリを &lt;code&gt;D:\OllamaModels&lt;/code&gt; などに移行することをお勧めします。主な方法は、システム環境変数 &lt;code&gt;OLLAMA_MODELS&lt;/code&gt; を設定することです。&lt;/p&gt;
&lt;h2 id=&#34;1-新しいターゲットディレクトリを作成します&#34;&gt;1. 新しいターゲットディレクトリを作成します
&lt;/h2&gt;&lt;p&gt;たとえば、最初に &lt;code&gt;D:\OllamaModels&lt;/code&gt; を作成します。&lt;/p&gt;
&lt;h2 id=&#34;2-システム環境変数を構成する&#34;&gt;2. システム環境変数を構成する
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;変数名: &lt;code&gt;OLLAMA_MODELS&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;変数値: &lt;code&gt;D:\OllamaModels&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは、「システムのプロパティ -&amp;gt; 詳細設定 -&amp;gt; 環境変数」で追加することも、コマンド ライン (管理者 PowerShell) を使用して設定することもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;System.Environment&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SetEnvironmentVariable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;OLLAMA_MODELS&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;D:\OllamaModels&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Machine&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;3-ollama-を再起動します-またはシステムを再起動します&#34;&gt;3. Ollama を再起動します (またはシステムを再起動します)。
&lt;/h2&gt;&lt;p&gt;環境変数が有効になったら、Ollama サービス/アプリケーションを再起動します。有効になったかどうかわからない場合は、コンピュータを直接再起動するのが最も安全です。&lt;/p&gt;
&lt;h2 id=&#34;4-新しいディレクトリが有効かどうかを確認します&#34;&gt;4. 新しいディレクトリが有効かどうかを確認します
&lt;/h2&gt;&lt;p&gt;モデルをダウンロードまたはプルした後、新しいファイルが &lt;code&gt;D:\OllamaModels&lt;/code&gt; の下に表示されるかどうかを確認します。&lt;/p&gt;
&lt;h2 id=&#34;5-古いディレクトリをクリーンアップしますそれが正しいことを確認した後&#34;&gt;5. 古いディレクトリをクリーンアップします（それが正しいことを確認した後）
&lt;/h2&gt;&lt;p&gt;新しいディレクトリでモデルが正常に動作していることを確認してから、古いディレクトリの内容を削除して、C ドライブのスペースを解放します。&lt;/p&gt;
&lt;h2 id=&#34;よくある質問&#34;&gt;よくある質問
&lt;/h2&gt;&lt;h3 id=&#34;設定した後もcドライブに書き込まれたままの場合はどうすればよいですか&#34;&gt;設定した後もCドライブに書き込まれたままの場合はどうすればよいですか?
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;まず、環境変数が「現在のセッションの一時変数」ではなく「システム変数」であることを確認します。&lt;/li&gt;
&lt;li&gt;Ollama プロセスが再起動されたことを確認します。&lt;/li&gt;
&lt;li&gt;変数名が正しいことを確認してください。それは &lt;code&gt;OLLAMA_MODELS&lt;/code&gt; である必要があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;古いモデルのファイルを移行する必要がありますか&#34;&gt;古いモデルのファイルを移行する必要がありますか?
&lt;/h3&gt;&lt;p&gt;再度ダウンロードしたくない場合は、Ollama を停止した後、古いモデルを新しいディレクトリに手動でコピーし、Ollama の検証を開始できます。&lt;/p&gt;
&lt;!-- ollama-related-links:start --&gt;
</description>
        </item>
        <item>
        <title>Linux 上の Ollama を完全にアンインストールします (残留クリーニングを含む)</title>
        <link>https://knightli.com/ja/2026/04/06/uninstall-ollama-on-linux/</link>
        <pubDate>Mon, 06 Apr 2026 09:16:29 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/06/uninstall-ollama-on-linux/</guid>
        <description>&lt;p&gt;Linux 上で Ollama を完全に削除する必要がある場合は、以下の手順に従ってください。この記事では、サービス、実行可能ファイル、モデル ディレクトリ、および &lt;code&gt;ollama&lt;/code&gt; ユーザーとユーザー グループをクリーンアップします。&lt;/p&gt;
&lt;h2 id=&#34;アンインストール前の注意事項&#34;&gt;アンインストール前の注意事項
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;次のコマンドは、ネイティブ Ollama モデル ファイル (通常は &lt;code&gt;/usr/share/ollama&lt;/code&gt;) を削除します。最初にバックアップする必要があるかどうかを確認してください。&lt;/li&gt;
&lt;li&gt;このコマンドはデフォルトで &lt;code&gt;sudo&lt;/code&gt; を使用します。現在のアカウントに管理者権限があることを確認してください。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;1-systemd-サービスを停止して削除します&#34;&gt;1. systemd サービスを停止して削除します。
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl stop ollama
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl disable ollama
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rm -f /etc/systemd/system/ollama.service
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl daemon-reload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;2-ollama-実行可能ファイルを削除します&#34;&gt;2. Ollama 実行可能ファイルを削除します
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OLLAMA_BIN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;command&lt;/span&gt; -v ollama&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; -n &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$OLLAMA_BIN&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  sudo rm -f &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$OLLAMA_BIN&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;3-ollama-関連のライブラリ-ディレクトリを削除します-存在する場合&#34;&gt;3. Ollama 関連のライブラリ ディレクトリを削除します (存在する場合)。
&lt;/h2&gt;&lt;p&gt;インストール方法によって Ollama ファイルが &lt;code&gt;lib&lt;/code&gt; ディレクトリに書き込まれる場合は、次のようにファイルを消去できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; d in /usr/local/lib/ollama /usr/lib/ollama /lib/ollama&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$d&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo rm -rf &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$d&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;4-モデルとデータのディレクトリを削除します&#34;&gt;4. モデルとデータのディレクトリを削除します。
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rm -rf /usr/share/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;5-システム-ユーザーとグループを削除します-存在する場合&#34;&gt;5. システム ユーザーとグループを削除します (存在する場合)。
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;id -u ollama &amp;gt;/dev/null 2&amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo userdel ollama
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;getent group ollama &amp;gt;/dev/null 2&amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo groupdel ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;6-アンインストールが完了したことを確認します&#34;&gt;6. アンインストールが完了したことを確認します
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;command&lt;/span&gt; -v ollama &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ollama binary not found&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl status ollama &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;上記のチェックで &lt;code&gt;ollama&lt;/code&gt; が見つからなかった場合は、アンインストールが完了したことを意味します。&lt;/p&gt;
&lt;!-- ollama-related-links:start --&gt;
</description>
        </item>
        <item>
        <title>大規模モデルの定量化の詳細な説明: FP16、Q8、Q5、Q4 ～ Q2 を選択するにはどうすればよいですか?</title>
        <link>https://knightli.com/ja/2026/04/05/llm-quantization-guide-fp16-q4-q2/</link>
        <pubDate>Sun, 05 Apr 2026 22:09:11 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/05/llm-quantization-guide-fp16-q4-q2/</guid>
        <description>&lt;p&gt;量子化の中心的な目標は単純です。サイズを小さくし、メモリ使用量を減らし、推論速度を速くする代わりに、精度の損失を小さくすることです。&lt;br&gt;
ローカル展開ユーザーにとって、多くの場合、盲目的に大きなパラメータを追求するよりも、適切な定量的バージョンを選択することの方が重要です。&lt;/p&gt;
&lt;h2 id=&#34;定量化とは何ですか&#34;&gt;定量化とは何ですか
&lt;/h2&gt;&lt;p&gt;量子化とは、モデル パラメーターを高精度形式 (&lt;code&gt;FP16&lt;/code&gt; など) からより低いビット幅形式 (&lt;code&gt;Q8&lt;/code&gt;、&lt;code&gt;Q4&lt;/code&gt; など) に圧縮することを指します。&lt;/p&gt;
&lt;p&gt;それは次のように理解できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;オリジナルモデル: 高精度の写真のように鮮明ですが、ファイルサイズが大きくなります。&lt;/li&gt;
&lt;li&gt;量子化モデル: 圧縮された写真と同様に、細部はわずかに失われますが、軽量かつ高速です。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;一般的な定量バージョンの比較&#34;&gt;一般的な定量バージョンの比較
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;量化版本&lt;/th&gt;
          &lt;th&gt;精度/位宽&lt;/th&gt;
          &lt;th&gt;体积&lt;/th&gt;
          &lt;th&gt;质量损失&lt;/th&gt;
          &lt;th&gt;推荐场景&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;FP16&lt;/td&gt;
          &lt;td&gt;16 位浮点&lt;/td&gt;
          &lt;td&gt;最大&lt;/td&gt;
          &lt;td&gt;几乎无损&lt;/td&gt;
          &lt;td&gt;研究、评测、追求极致质量&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Q8_0&lt;/td&gt;
          &lt;td&gt;8 位整数&lt;/td&gt;
          &lt;td&gt;较大&lt;/td&gt;
          &lt;td&gt;几乎无损&lt;/td&gt;
          &lt;td&gt;高配电脑，兼顾质量与性能&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Q5_K_M&lt;/td&gt;
          &lt;td&gt;5 位混合&lt;/td&gt;
          &lt;td&gt;中等&lt;/td&gt;
          &lt;td&gt;轻微损失&lt;/td&gt;
          &lt;td&gt;日常主力，平衡方案&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Q4_K_M&lt;/td&gt;
          &lt;td&gt;4 位混合&lt;/td&gt;
          &lt;td&gt;较小&lt;/td&gt;
          &lt;td&gt;可接受损失&lt;/td&gt;
          &lt;td&gt;通用默认，性价比高&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Q3_K_M&lt;/td&gt;
          &lt;td&gt;3 位混合&lt;/td&gt;
          &lt;td&gt;很小&lt;/td&gt;
          &lt;td&gt;明显损失&lt;/td&gt;
          &lt;td&gt;低配设备，能跑优先&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Q2_K&lt;/td&gt;
          &lt;td&gt;2 位混合&lt;/td&gt;
          &lt;td&gt;最小&lt;/td&gt;
          &lt;td&gt;较大损失&lt;/td&gt;
          &lt;td&gt;极限资源场景，临时可用&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;定量的な命名規則&#34;&gt;定量的な命名規則
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;gemma-4:4b-q4_k_m&lt;/code&gt; を例として取り上げます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;gemma-4:4b&lt;/code&gt;: モデル名とパラメータスケール。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;q4&lt;/code&gt;: 4 ビット量子化。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k&lt;/code&gt;: K-quants (改良された量子化方法)。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;m&lt;/code&gt;：中（中レベル、&lt;code&gt;s&lt;/code&gt;/小、&lt;code&gt;l&lt;/code&gt;/大が共通）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;ビデオメモリに基づいてモデルを素早く選択する方法&#34;&gt;ビデオメモリに基づいてモデルを素早く選択する方法
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;内存/显存&lt;/th&gt;
          &lt;th&gt;推荐量化&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;4 GB&lt;/td&gt;
          &lt;td&gt;Q3_K_M / Q2_K&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8 GB&lt;/td&gt;
          &lt;td&gt;Q4_K_M&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;16 GB&lt;/td&gt;
          &lt;td&gt;Q5_K_M / Q8_0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;32 GB+&lt;/td&gt;
          &lt;td&gt;FP16 / Q8_0&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;最初から最大のモデルを追求するのではなく、安定して動作するバージョンから始めて、徐々に精度を向上させることをお勧めします。&lt;/p&gt;
&lt;h2 id=&#34;実践的な提案&#34;&gt;実践的な提案
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;デフォルトでは、&lt;code&gt;Q4_K_M&lt;/code&gt; から開始され、最初に実際のタスクの効果を確認します。&lt;/li&gt;
&lt;li&gt;回答の品質が十分でない場合は、&lt;code&gt;Q5_K_M&lt;/code&gt; または &lt;code&gt;Q8_0&lt;/code&gt; にアップグレードしてください。&lt;/li&gt;
&lt;li&gt;主なボトルネックがビデオ メモリまたは速度である場合は、&lt;code&gt;Q3_K_M&lt;/code&gt; にドロップします。&lt;/li&gt;
&lt;li&gt;定量化バージョンに切り替えるたびに、同じバッチのテスト問題を比較に使用してください。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;結論は&#34;&gt;結論は
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;品質第一: &lt;code&gt;FP16&lt;/code&gt; または &lt;code&gt;Q8_0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;バランス優先度: &lt;code&gt;Q5_K_M&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;共通のデフォルト: &lt;code&gt;Q4_K_M&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;ローエンドポケット: &lt;code&gt;Q3_K_M&lt;/code&gt; または &lt;code&gt;Q2_K&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;モデル選択の本質は、「大きいほど良い」ではなく、「ハードウェア条件下で最も安定して使用可能な効果を実現する」ことです。&lt;/p&gt;
&lt;!-- ollama-related-links:start --&gt;
</description>
        </item>
        <item>
        <title>Google Gemma 4 モデル比較: 2B/4B/26B/31B 選び方は?</title>
        <link>https://knightli.com/ja/2026/04/05/google-gemma-4-model-comparison/</link>
        <pubDate>Sun, 05 Apr 2026 08:30:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/05/google-gemma-4-model-comparison/</guid>
        <description>&lt;p&gt;Gemma 4 は、&lt;code&gt;多模态&lt;/code&gt; と &lt;code&gt;本地离线运行&lt;/code&gt; に焦点を当てており、軽量エンドから高性能エンドまでの完全なモデル グラデーションを提供します。ほとんどのローカル展開ユーザーにとって重要なのは、「最大のものを選択する」ことではなく、「ハードウェアとタスクに最適なバージョンを選択する」ことです。&lt;/p&gt;
&lt;h2 id=&#34;gemma-4-モデルの比較&#34;&gt;Gemma 4 モデルの比較
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;次の表は、選択を簡単に参照できるようにしたものです。具体的なパフォーマンスとリソースの使用状況については、実際の展開環境のテストを参照してください。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;模型&lt;/th&gt;
          &lt;th&gt;参数规模&lt;/th&gt;
          &lt;th&gt;定位&lt;/th&gt;
          &lt;th&gt;主要优势&lt;/th&gt;
          &lt;th&gt;主要限制&lt;/th&gt;
          &lt;th&gt;推荐场景&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Gemma 4 2B&lt;/td&gt;
          &lt;td&gt;20 亿&lt;/td&gt;
          &lt;td&gt;超轻量&lt;/td&gt;
          &lt;td&gt;延迟低、资源占用小、部署门槛最低&lt;/td&gt;
          &lt;td&gt;复杂推理与长链路任务能力有限&lt;/td&gt;
          &lt;td&gt;移动端、IoT、轻量问答、简单自动化&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Gemma 4 4B&lt;/td&gt;
          &lt;td&gt;40 亿&lt;/td&gt;
          &lt;td&gt;轻量增强&lt;/td&gt;
          &lt;td&gt;比 2B 更稳的理解与生成能力，仍易本地部署&lt;/td&gt;
          &lt;td&gt;高强度编码/复杂 Agent 任务上限有限&lt;/td&gt;
          &lt;td&gt;本地助手、基础文档处理、多语言日常任务&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Gemma 4 26B&lt;/td&gt;
          &lt;td&gt;260 亿&lt;/td&gt;
          &lt;td&gt;高性能（专家混合）&lt;/td&gt;
          &lt;td&gt;推理和工具调用能力明显提升，适合生产工作流&lt;/td&gt;
          &lt;td&gt;显存需求显著上升，硬件门槛更高&lt;/td&gt;
          &lt;td&gt;编程助手、复杂工作流、企业内部 Agent&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Gemma 4 31B&lt;/td&gt;
          &lt;td&gt;310 亿&lt;/td&gt;
          &lt;td&gt;高性能（稠密）&lt;/td&gt;
          &lt;td&gt;综合能力最强，复杂任务稳定性更好&lt;/td&gt;
          &lt;td&gt;资源消耗最高，部署与调优成本最大&lt;/td&gt;
          &lt;td&gt;高要求推理、复杂代码任务、重度自动化&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;選択方法-ハードウェアとタスクから逆算して考える&#34;&gt;選択方法: ハードウェアとタスクから逆算して考える
&lt;/h2&gt;&lt;p&gt;「走れるかどうか、スムーズに走れるかどうか」を主に見る場合は以下から選べます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;8GB&lt;/code&gt; ビデオ メモリ: 優先順位 &lt;code&gt;2B/4B&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;12GB&lt;/code&gt; ビデオ メモリ: &lt;code&gt;4B&lt;/code&gt; 以降のモデルの量子化バージョンを優先します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;24GB&lt;/code&gt; ビデオ メモリ: &lt;code&gt;26B&lt;/code&gt; に焦点を当て、タスクに従って &lt;code&gt;31B&lt;/code&gt; の量子化バージョンを評価できます。&lt;/li&gt;
&lt;li&gt;より高いグラフィックス メモリまたは複数のカード: &lt;code&gt;31B&lt;/code&gt; の高精度構成を試すことができます。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安定性と推論速度の確保を優先し、徐々にモデル規模を大きくしていくことをお勧めします。&lt;/p&gt;
&lt;h2 id=&#34;4-つの典型的な使用シナリオ&#34;&gt;4 つの典型的な使用シナリオ
&lt;/h2&gt;&lt;h3 id=&#34;1-現地の一般アシスタント&#34;&gt;1) 現地の一般アシスタント
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;優先モデル: &lt;code&gt;4B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;理由：コストと効果のバランスが良く、長期の永続運用に適しています。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-コードと自動化&#34;&gt;2) コードと自動化
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;優先モデル: &lt;code&gt;26B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;理由: 複数ステップのタスク、ツール呼び出し、およびスクリプト生成においてより安定しています。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-難易度の高い推理と複雑なエージェント&#34;&gt;3) 難易度の高い推理と複雑なエージェント
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;優先モデル: &lt;code&gt;31B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;理由: 複雑なコンテキスト下での安定性が向上し、フォールト トレランスが向上します。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;4-エッジデバイスと軽量オフライン&#34;&gt;4) エッジデバイスと軽量オフライン
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;優先モデル: &lt;code&gt;2B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;理由: リソースに制約のあるデバイスに実装するのが最も簡単です。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;導入に関する推奨事項-ollama-オリエンテーション&#34;&gt;導入に関する推奨事項 (Ollama オリエンテーション)
&lt;/h2&gt;&lt;p&gt;最も現実的な方法は、「小さなステップで素早く実行する」ことです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まず、&lt;code&gt;4B&lt;/code&gt; を使用して、実行可能なベースライン (速度、メモリ、エフェクト) を確立します。&lt;/li&gt;
&lt;li&gt;実際のタスクの固定テスト セットを作成します (例: 20 の FAQ + 10 の自動タスク)。&lt;/li&gt;
&lt;li&gt;次に、&lt;code&gt;26B/31B&lt;/code&gt; にアップグレードして、精度、遅延、メモリ コストを比較します。&lt;/li&gt;
&lt;li&gt;「メリットが明らかな」場合にのみ、大型モデルをアップグレードしてください。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;これにより、最初から大きなパラメータを追求し、遅延、低スループット、複雑なメンテナンスなどの問題が発生することを回避できます。&lt;/p&gt;
&lt;h2 id=&#34;結論は&#34;&gt;結論は
&lt;/h2&gt;&lt;p&gt;Gemma 4 の真の価値は、単に「より大きなパラメーター」ではなく、軽量から高性能までの実装可能なグラデーションの完全なセットです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;低コストで迅速にオンラインに接続したい場合は、&lt;code&gt;2B/4B&lt;/code&gt; から始めてください。&lt;/li&gt;
&lt;li&gt;ローカル AI を本番プロセスに真に統合したい場合は、&lt;code&gt;26B&lt;/code&gt; を優先してください。&lt;/li&gt;
&lt;li&gt;複雑な推論と高度な自動化に取り組みたい場合は、&lt;code&gt;31B&lt;/code&gt; をもう一度試してください。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Gemma 4 に最適な選択は、通常、パラメータが最大のバージョンではなく、ハードウェアの条件とミッションの目標に最もよく一致するバージョンです。&lt;/p&gt;
&lt;!-- ollama-related-links:start --&gt;
</description>
        </item>
        <item>
        <title>Anthropic のエージェント スキル docx の機能、コード構成、使用法、注意事項を分析する</title>
        <link>https://knightli.com/ja/2026/04/04/analyze-docx-agent-skill/</link>
        <pubDate>Sat, 04 Apr 2026 11:00:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/04/analyze-docx-agent-skill/</guid>
        <description>&lt;p&gt;Anthropic の &lt;code&gt;skills/docx&lt;/code&gt; は本質的に、「AI が Word ドキュメントをより安定して処理できるようにする」作業仕様書とスクリプト ツールのセットです。&lt;br&gt;
これはモデルに単に「&lt;code&gt;.docx&lt;/code&gt; を書く」と指示するのではなく、Word 文書の処理をいくつかの明確なパス (新しい文書の作成、コンテンツの読み取り、既存の文書の編集、改訂の処理、コメントの追加、形式の変換、OOXML 構造の検証) に分割します。&lt;/p&gt;
&lt;p&gt;一文だけ読めば次のように理解できます。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;エージェントが &lt;code&gt;.docx&lt;/code&gt; をブラック ボックスとして扱うのではなく、ZIP + XML + Office の互換性の問題として扱うようにします。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;このスキルはどのような問題を解決しますか&#34;&gt;このスキルはどのような問題を解決しますか?
&lt;/h2&gt;&lt;p&gt;通常のテキスト生成モデルが Word 文書を処理する場合、いくつかの一般的な問題が発生します。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;テキストを出力するだけであり、実際には構造的に正しい &lt;code&gt;.docx&lt;/code&gt; は生成されません。&lt;/li&gt;
&lt;li&gt;既存のドキュメントを変更する場合、OOXML 構造は簡単に壊れてしまう&lt;/li&gt;
&lt;li&gt;コメント、改訂、コメント スレッドに遭遇したとき、どの XML を変更すればよいのかわかりません。&lt;/li&gt;
&lt;li&gt;ドキュメントを生成できますが、Word、LibreOffice、Google Docs 間の互換性が不安定です&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pandoc&lt;/code&gt; をいつ使用するか、いつ解凍して XML を直接変更するかがわからない&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ここに、&lt;code&gt;docx&lt;/code&gt; スキルの価値があります。 「何をするか」を事前に制約します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コンテンツを読み取るときは、&lt;code&gt;pandoc&lt;/code&gt; の使用または解凍を優先してください。&lt;/li&gt;
&lt;li&gt;新しく &lt;code&gt;.docx&lt;/code&gt; を作成する場合は、&lt;code&gt;docx-js&lt;/code&gt; を優先してください。&lt;/li&gt;
&lt;li&gt;既存の &lt;code&gt;.docx&lt;/code&gt; を編集する場合は、まず「解凍 -&amp;gt; XML の変更 -&amp;gt; 再パッケージ化 -&amp;gt; 検証」に進みます。&lt;/li&gt;
&lt;li&gt;モデルをハードコーディングするのではなく、コンパニオン スクリプトを使用して、リビジョン、コメント、スキーマ検証の受け入れの詳細を処理します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Word 文書の問題は、多くの場合、「テキストが正しく記述されているかどうか」ではなく、「ファイル構造が Office で受け入れられるかどうか」であるため、この考え方は非常に実用的です。&lt;/p&gt;
&lt;h2 id=&#34;ディレクトリとコードの構成&#34;&gt;ディレクトリとコードの構成
&lt;/h2&gt;&lt;p&gt;このスキルは大きく4つのレベルに分かれています。&lt;/p&gt;
&lt;h3 id=&#34;1-説明レイヤー-skillmd&#34;&gt;1. 説明レイヤー: &lt;code&gt;SKILL.md&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;SKILL.md&lt;/code&gt; はスキル全体への入り口です。主に次の 2 つのことを行います。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;トリガー条件を定義する&lt;br&gt;
このスキルは、ユーザーが Word、&lt;code&gt;.docx&lt;/code&gt;、コメント、改訂、目次、ページ番号、テンプレート、書式設定されたドキュメントなどを必要とする限り有効にする必要があります。&lt;/li&gt;
&lt;li&gt;作業パスを指定する&lt;br&gt;
毎回即興で作るのではなく、さまざまなタスクに対してどの技術的なルートを取るべきかを明確に書き出します。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;内容から判断すると、「使用説明書」と「動作仕様書」の両方です。&lt;br&gt;
特に価値があるのは、そこにリストされている次のような多くの Word 互換性ルールです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;docx-js&lt;/code&gt; のデフォルトは US レターではなく A4 です&lt;/li&gt;
&lt;li&gt;ページが水平の場合、内部ロジックに従って幅と高さのパラメータを渡す必要があります。&lt;/li&gt;
&lt;li&gt;リストは手動で挿入できません Unicode 箇条書き&lt;/li&gt;
&lt;li&gt;表の幅は表とセルと同時に設定する必要があります。&lt;/li&gt;
&lt;li&gt;画像を挿入する場合、&lt;code&gt;type&lt;/code&gt;は省略できません。&lt;/li&gt;
&lt;li&gt;生成後、&lt;code&gt;validate&lt;/code&gt;を実行&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは、作者が単に「生成できること」ではなく、「安定して開くことができ、安定してレンダリングでき、生成後に互換性があること」を望んでいることを示しています。&lt;/p&gt;
&lt;h2 id=&#34;2-office-パッケージ操作層-scriptsoffice&#34;&gt;2. Office パッケージ操作層: &lt;code&gt;scripts/office/*&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;この層は、&lt;code&gt;.docx/.pptx/.xlsx&lt;/code&gt; を Office Open XML パッケージとして処理する役割を果たします。&lt;/p&gt;
&lt;h3 id=&#34;unpackpy&#34;&gt;&lt;code&gt;unpack.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;その機能は、Office ファイルをディレクトリに解凍し、いくつかの補助タスクを実行することです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ZIPパッケージを解凍します&lt;/li&gt;
&lt;li&gt;XML/&lt;code&gt;.rels&lt;/code&gt; できれいに印刷します&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.docx&lt;/code&gt; に対する &lt;code&gt;merge_runs&lt;/code&gt; のオプションの実行&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.docx&lt;/code&gt; に対する &lt;code&gt;simplify_redlines&lt;/code&gt; のオプションの実行&lt;/li&gt;
&lt;li&gt;スマート クオートを XML エンティティに変換して、後続の処理リスクを軽減します&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;その設計の焦点は、「単純な解凍」ではなく、エージェントや人間が編集を続けるのに適した状態にファイルを整理することにあります。&lt;/p&gt;
&lt;h3 id=&#34;packpy&#34;&gt;&lt;code&gt;pack.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;この機能は、変更されたディレクトリを &lt;code&gt;.docx/.pptx/.xlsx&lt;/code&gt; に再パッケージ化することです。&lt;br&gt;
梱包する前に行うべき重要なことが 2 つあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;オプションの動作検証と自動修復&lt;/li&gt;
&lt;li&gt;XML を再圧縮し、無意味な空白やコメントを削除します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;--original&lt;/code&gt; が指定されている場合は、バリデーターと比較されます。これは非常に重要です。&lt;br&gt;
Word の変更の多くは「元に戻すことができれば成功する」わけではなく、文書の構造とリビジョンの追跡セマンティクスがまだ有効であることを確認する必要があるためです。&lt;/p&gt;
&lt;h3 id=&#34;validatepy&#34;&gt;&lt;code&gt;validate.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;これはスキル全体の品質ゲートです。&lt;br&gt;
検証をサポートします。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;XML は整形式ですか?&lt;/li&gt;
&lt;li&gt;名前空間は正しいですか?&lt;/li&gt;
&lt;li&gt;すべての種類の ID は一意ですか?&lt;/li&gt;
&lt;li&gt;関係性/コンテンツタイプは一致していますか?&lt;/li&gt;
&lt;li&gt;XSDスキーマに準拠&lt;/li&gt;
&lt;li&gt;空白の保持ルールは正しいですか?&lt;/li&gt;
&lt;li&gt;挿入、削除、コメントマークは合法ですか?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;.docx&lt;/code&gt; の場合、このステップはほぼコア コンピテンシーです。&lt;br&gt;
「XML が少しだけ変更されているだけ」のように見える多くの文書の場合、本当の問題はここにあります。&lt;/p&gt;
&lt;h3 id=&#34;sofficepy&#34;&gt;&lt;code&gt;soffice.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;これは非常にエンジニアリング的なガジェットです。&lt;br&gt;
単に LibreOffice を呼び出すのではなく、制限された環境向けの互換性処理を準備し、自動的に &lt;code&gt;SAL_USE_VCLPLUGIN=svp&lt;/code&gt; を設定し、制限された AF_UNIX ソケットの問題を解決するために必要に応じて shim を構築します。&lt;/p&gt;
&lt;p&gt;これは、スキルの対象環境が「ローカルデスクトップの手動操作」だけではなく、エージェントやCI、サンドボックスなどの自動化された環境も考慮していることがわかります。&lt;/p&gt;
&lt;h2 id=&#34;3-wordの特殊能力レベルコメント修正朱書き&#34;&gt;3. Wordの特殊能力レベル：コメント、修正、朱書き
&lt;/h2&gt;&lt;h3 id=&#34;commentpy&#34;&gt;&lt;code&gt;comment.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;このスクリプトは、DOCX にコメントを追加する役割を果たします。&lt;br&gt;
Word のコメントは単一のファイル メカニズムではなく、連携して動作する一連のコンポーネントであるため、その動作は「コメント XML を書く」よりもはるかに複雑です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;word/comments.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commentsExtended.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commentsIds.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commentsExtensible.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;document.xml&lt;/code&gt; のコメント範囲マーカー&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[Content_Types].xml&lt;/code&gt; および &lt;code&gt;document.xml.rels&lt;/code&gt; での関係宣言&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;スクリプトでは、これらの依存関係がすでに考慮されています。&lt;br&gt;
初めてコメントを追加する場合、テンプレート ファイル、リレーションシップ、コンテンツ タイプが自動的に完成するため、OOXML を手動で変更する際のエラー率を大幅に減らすことができます。&lt;/p&gt;
&lt;h3 id=&#34;accept_changespy&#34;&gt;&lt;code&gt;accept_changes.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;このスクリプトの目標は非常に明確です。すべてのリビジョンを受け入れることです。&lt;br&gt;
実装方法はXMLを自分で修正するのではなく、LibreOfficeのヘッドレス+Basicマクロで&lt;code&gt;.uno:AcceptAllTrackedChanges&lt;/code&gt;を調整する方法です。&lt;/p&gt;
&lt;p&gt;Word セマンティクスにおける「リビジョンの受け入れ」は、&lt;code&gt;&amp;lt;w:ins&amp;gt;&lt;/code&gt; / &lt;code&gt;&amp;lt;w:del&amp;gt;&lt;/code&gt; を削除するほど単純ではないため、この選択は非常に安全です。 XML を直接変更すると、重大な問題が残る可能性があります。&lt;br&gt;
通常、これを Office エンジン自体で行うと、互換性が向上します。&lt;/p&gt;
&lt;h3 id=&#34;validatorsredliningpy&#34;&gt;&lt;code&gt;validators/redlining.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;これがこのスキルの最も注目すべき部分です。&lt;br&gt;
元の文書と変更された文書から「作成者の改訂」を分離し、テキストが一貫しているかどうかを比較して、改訂が追跡された変更構造に正しくラップされているかどうかを判断します。&lt;/p&gt;
&lt;p&gt;言い換えれば、XML 形式をチェックするだけではなく、「リビジョン セマンティクスに従ってドキュメントを編集したか?」をチェックします。&lt;/p&gt;
&lt;p&gt;AI は次のような間違いを犯しやすいため、これはエージェントにとって特に重要です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;テキストを直接修正します。ただし、&lt;code&gt;&amp;lt;w:ins&amp;gt;&lt;/code&gt; / &lt;code&gt;&amp;lt;w:del&amp;gt;&lt;/code&gt; は含めません。&lt;/li&gt;
&lt;li&gt;他の人の挿入または削除構造の階層を変更する&lt;/li&gt;
&lt;li&gt;最終的なテキストは変更されましたが、朱書きのロジックは保持されません&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このバリデータは、この「表面の可用性とセマンティック エラー」の問題を防ぐためのものです。&lt;/p&gt;
&lt;h2 id=&#34;4-スキーマと補助層-schemashelperstemplates&#34;&gt;4. スキーマと補助層: &lt;code&gt;schemas/&lt;/code&gt;、&lt;code&gt;helpers/&lt;/code&gt;、&lt;code&gt;templates/&lt;/code&gt;
&lt;/h2&gt;&lt;h3 id=&#34;schemas&#34;&gt;&lt;code&gt;schemas/&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;ここに、OOXML / ECMA / Microsoft 拡張機能関連の XSD の完全なセットを示します。&lt;br&gt;
これは、スキルの検証が頭でルールを記述することではなく、可能な限り形式的なスキーマ制約に基づいて行われることを意味します。&lt;/p&gt;
&lt;h3 id=&#34;helpers&#34;&gt;&lt;code&gt;helpers/&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;主なものは次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;merge_runs.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;simplify_redlines.py&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;その機能は、解凍された Word XML を適度にクリーンアップして、構造をより安定させ、編集と比較を容易にすることです。&lt;/p&gt;
&lt;h3 id=&#34;templates&#34;&gt;&lt;code&gt;templates/&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;コメント関数が依存する次のような XML テンプレートがここに保存されます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;comments.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commentsExtended.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commentsIds.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commentsExtensible.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;people.xml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このタイプのテンプレート ファイルは重要です。多くの Word パーツは「不足している場合に自動的に埋められる」わけではなく、Office で受け入れられる形式で事前に設定されている必要があるからです。&lt;/p&gt;
&lt;h2 id=&#34;一般的な使用法&#34;&gt;一般的な使用法
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;SKILL.md&lt;/code&gt; による提案から判断すると、このスキルは次のワークフローに最適です。&lt;/p&gt;
&lt;h2 id=&#34;シナリオ-1-既存の-docx-の読み取りまたは分析&#34;&gt;シナリオ 1: 既存の DOCX の読み取りまたは分析
&lt;/h2&gt;&lt;p&gt;コンテンツを抽出し、構造を読み取り、Markdown に変換することが目的の場合は、以下を使用します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pandoc --track-changes&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;all document.docx -o output.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;基礎となる XML を表示したい場合は、以下を使用します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/unpack.py document.docx unpacked/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;前者は内容を読むのに適しており、後者は構造を見るのに適しています。&lt;/p&gt;
&lt;h2 id=&#34;シナリオ-2-新しい-docx-を作成する&#34;&gt;シナリオ 2: 新しい DOCX を作成する
&lt;/h2&gt;&lt;p&gt;スキルの提案は、OOXML を手動でロールするのではなく、&lt;code&gt;docx-js&lt;/code&gt; を使用して以下を生成することです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;次に、ドキュメントを生成して検証します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/validate.py doc.docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このルートは次のような場合に適しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;報告&lt;/li&gt;
&lt;li&gt;memo&lt;/li&gt;
&lt;li&gt;letter&lt;/li&gt;
&lt;li&gt;タイトル、目次、フッター、ページネーション、表を含む正式な文書&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;シナリオ-3-既存の-docx-を編集する&#34;&gt;シナリオ 3: 既存の DOCX を編集する
&lt;/h2&gt;&lt;p&gt;これはスキル全体の中核となるワークフローです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/unpack.py document.docx unpacked/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 修改 unpacked/ 下的 XML&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/pack.py unpacked/ output.docx --original document.docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ここで重要なのは「XML の変更」ではなく、最後のステップ &lt;code&gt;--original&lt;/code&gt; です。&lt;br&gt;
これにより、システムはパッケージを返すときに、やみくもにパッケージ化するのではなく、スキーマとレッドライン レベルの検証を実行できるようになります。&lt;/p&gt;
&lt;h2 id=&#34;シナリオ-4-すべてのリビジョンを受け入れる&#34;&gt;シナリオ 4: すべてのリビジョンを受け入れる
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/accept_changes.py input.docx output.docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このステップは LibreOffice に依存します。&lt;br&gt;
レビューされた文書を「クリーンなバージョン」に整理するのに適しています。&lt;/p&gt;
&lt;h2 id=&#34;シナリオ-5-コメントを追加する&#34;&gt;シナリオ 5: コメントを追加する
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python comment.py unpacked/ &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Comment text&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python comment.py unpacked/ &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Reply text&amp;#34;&lt;/span&gt; --parent &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ここでは特別な注意を払う必要があります。スクリプトはコメントの内容と必要なコメント コンポーネントのみを追加します。実際、コメントを対応するテキスト範囲に実際に添付するには、コメントの指示に従ってコメント範囲マーカーを &lt;code&gt;document.xml&lt;/code&gt; に追加する必要があります。&lt;/p&gt;
&lt;h2 id=&#34;このスキルの最も注意すべき落とし穴&#34;&gt;このスキルの最も注意すべき落とし穴
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;SKILL.md&lt;/code&gt; をざっと見ただけでは、その「互換性ルール」の価値を過小評価するのは簡単です。&lt;br&gt;
特に以下の点は覚えておいてください。&lt;/p&gt;
&lt;h3 id=&#34;1-docx-はテキスト-ファイルではなくoffice-パッケージです&#34;&gt;1. &lt;code&gt;.docx&lt;/code&gt; はテキスト ファイルではなく、Office パッケージです
&lt;/h3&gt;&lt;p&gt;最も危険な誤解は、これを「フォーマットされたテキスト ファイル」として扱うことです。&lt;br&gt;
実際、変更には以下も含まれる場合があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;テキスト XML&lt;/li&gt;
&lt;li&gt;relationships&lt;/li&gt;
&lt;li&gt;content types&lt;/li&gt;
&lt;li&gt;comments / people / ids&lt;/li&gt;
&lt;li&gt;スキーマ制約&lt;/li&gt;
&lt;li&gt;リビジョンセマンティクス&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、このスキルでは「パッケージの開梱、編集、確認、返却」に重点が置かれています。&lt;/p&gt;
&lt;h3 id=&#34;2-docx-js-はドキュメントを生成できますがデフォルトのパラメーターが目的を満たしているという保証はありません&#34;&gt;2. &lt;code&gt;docx-js&lt;/code&gt; はドキュメントを生成できますが、デフォルトのパラメーターが目的を満たしているという保証はありません。
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;SKILL.md&lt;/code&gt; は、次のような多くのデフォルト値の落とし穴を強調表示します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;デフォルトの用紙はA4です&lt;/li&gt;
&lt;li&gt;水平方向のページ幅と高さの処理には内部ロジックがあります&lt;/li&gt;
&lt;li&gt;リストに箇条書き文字を直接挿入することはできません&lt;/li&gt;
&lt;li&gt;テーブル幅を二重に宣言する必要があります&lt;/li&gt;
&lt;li&gt;Google ドキュメントはパーセント幅との互換性が低い&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは、生成ツールが出発点にすぎず、最終的な品質を保証するものではないことを示しています。&lt;/p&gt;
&lt;h3 id=&#34;3-コメントと修正は単一点の修正ではありません&#34;&gt;3. コメントと修正は単一点の修正ではありません
&lt;/h3&gt;&lt;p&gt;コメントであっても、変更の追跡であっても、XML を変更するだけの問題ではありません。&lt;br&gt;
複数のコンポーネント間で一貫性を維持する必要があるため、スキルはこれらのアクションをスクリプト化します。&lt;/p&gt;
&lt;h3 id=&#34;4オープンできるは修正されるという意味ではない&#34;&gt;4.「オープンできる」は「修正される」という意味ではない
&lt;/h3&gt;&lt;p&gt;文書を Word で開くことができるからといって、その構造が正しいとは限りません。&lt;br&gt;
多くのエラーは、次のシナリオでのみ公開されます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;再度編集するとクラッシュする&lt;/li&gt;
&lt;li&gt;レビューモード例外&lt;/li&gt;
&lt;li&gt;注釈がありません&lt;/li&gt;
&lt;li&gt;Google ドキュメントを開いた後にレイアウトが崩れる&lt;/li&gt;
&lt;li&gt;リビジョンを再度受け入れるときにエラーが発生する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;したがって、&lt;code&gt;validate.py&lt;/code&gt; と &lt;code&gt;pack.py --original&lt;/code&gt; は非常に重要です。&lt;/p&gt;
&lt;h3 id=&#34;5-外部ツールを利用する場合は事前に環境を準備する&#34;&gt;5. 外部ツールを利用する場合は事前に環境を準備する
&lt;/h3&gt;&lt;p&gt;このスキルは、いくつかの種類の外部ツールに依存しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pandoc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LibreOffice / soffice&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docx-js&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Python の依存関係 (&lt;code&gt;defusedxml&lt;/code&gt;、&lt;code&gt;lxml&lt;/code&gt; など)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらのツールが環境にない場合、エージェントがプロセスを知っていても、それを完全に実行することはできません。&lt;/p&gt;
&lt;h2 id=&#34;このスキルは何に向いていて何が不向きなのでしょうか&#34;&gt;このスキルは何に向いていて、何が不向きなのでしょうか？
&lt;/h2&gt;&lt;h3 id=&#34;適切な&#34;&gt;適切な
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Word レポートをバッチ生成する&lt;/li&gt;
&lt;li&gt;構造化された正式文書の生成&lt;/li&gt;
&lt;li&gt;自動変更 &lt;code&gt;.docx&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;追跡された変更を保存または処理する&lt;/li&gt;
&lt;li&gt;コメントを自動的に追加する&lt;/li&gt;
&lt;li&gt;Word ドキュメントをスクリプトまたはエージェント ワークフローに組み込む&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;あまり適していない&#34;&gt;あまり適していない
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;PDF をエクスポートするだけの簡単なシナリオ&lt;/li&gt;
&lt;li&gt;プレーン テキスト コンテンツのみが必要で、Word 形式は気にしません&lt;/li&gt;
&lt;li&gt;手動によるビジュアル編集に完全に依存している&lt;/li&gt;
&lt;li&gt;依存関係や環境の準備を一切せずに、すべての Word 自動化を完了したいと考えています。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;要約する&#34;&gt;要約する
&lt;/h2&gt;&lt;p&gt;Anthropic の &lt;code&gt;skills/docx&lt;/code&gt; の強みは、「Word を生成する」ことではなく、「Word が問題を起こしやすい理由を知り、問題を事前に分解する」ことにあります。&lt;br&gt;
これは、ドキュメント生成、基礎となる XML 編集、リビジョン セマンティクス、スキーマ検証、および Office 互換性に関する元々散在していた知識を実行可能なワークフローに編成します。&lt;/p&gt;
&lt;p&gt;単純なドキュメントを時々エクスポートするだけの場合は、少し重く感じるかもしれません。&lt;br&gt;
ただし、シナリオに既存の &lt;code&gt;.docx&lt;/code&gt; の変更、コメント、リビジョン、自動バッチ処理、または互換性要件が含まれる限り、この一連のスキルは貴重です。AI が無視する可能性が最も高く、Office ドキュメントが覆される可能性が最も高い詳細を正確に埋めるためです。&lt;/p&gt;
&lt;p&gt;簡単な要約は次のとおりです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;SKILL.md&lt;/code&gt; はエージェントにどちらの方向を取るかを伝える責任があります&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scripts/office/*&lt;/code&gt; は開梱、返品、チェック、Office の互換性を担当します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comment.py&lt;/code&gt; と &lt;code&gt;accept_changes.py&lt;/code&gt; は Word の特殊能力を担当します&lt;/li&gt;
&lt;li&gt;&lt;code&gt;schemas/&lt;/code&gt; とバリデーターは、「機能しているようだ」を「構造的に信頼できる」に改善する責任があります。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;コードアドレス：&lt;a class=&#34;link&#34; href=&#34;https://github.com/anthropics/skills/tree/main/skills/docx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/anthropics/skills/tree/main/skills/docx&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
