AIがサムネイルを自動生成する裏側|Pythonへの「指示」はコードそのものだった
この記事でわかること
- サムネイルはどこで作られているのか
- Claude CodeはPythonに何をしているのか
- 毎回コードを書いているのか
- サムネのデザインはどう決まるのか
- そのデザイン的な思考はどこから来るのか
- 具体的に何が働いているのか
「サムネって誰が作ってるんですか?」
WordPressに記事を投稿するたびに自動でアイキャッチ画像が設定される。これを見た人からそう聞かれた。答えは「Pythonが作って、スクリプトがアップロードしている」だ。
今日はその裏側を深掘りする。
サムネイルはどこで作られているのか
サムネイルの生成はすべてMac上のローカル処理だ。
クラウドのAIサービスは使っていない。つまりトークン消費ゼロ、API料金ゼロ。PythonのPillowというライブラリが画像を生成している。
処理の流れはこうだ。
記事ファイルを13_投稿する記事フォルダに保存
↓
ウォッチャー(watchdog)が検知
↓
generate_thumbnail(title) でサムネを生成
↓
upload_featured_image() でWordPress APIにアップロード
↓
記事作成時にサムネIDを紐付けて投稿完了
人間が何も操作しなくても、ファイルを保存した瞬間からこの一連の処理が自動で走る。
Claude CodeはPythonに何をしているのか
ここが面白いポイントだ。
PythonのPillowは「自然言語」を理解しない。
「いい感じのサムネを作って」とは伝えられない。指示の形式はコードだけだ。
# 「座標(820,-180)から(1480,480)の楕円を
# RGB(77,140,136)・透明度35で描け」という指示
draw.ellipse([820, -180, 1480, 480], fill=(77, 140, 136, 35))
これがClaude CodeからPillowへの「指示」の実体だ。
つまりClaude Codeが人間の言葉をコードに翻訳して、Pythonに渡しているという構造になっている。
毎回コードを書いているのか
答えは「最初だけ書いて、あとは仕組みが動く」だ。
| タイミング | Claude Codeがすること |
|---|---|
| 仕組みを作るとき | Pythonコードを書く |
| 仕組みが完成した後 | ファイルを保存するだけ |
今日のサムネ改修を例にすると:
- 「ベタっとしてる、改善して」という依頼を受けた
- Claude Codeが
generate_thumbnail()関数のコードを書き直した - 以降は新しいデザインで自動生成される
コードを書くのは「設計変更のとき」だけ。日々の運用ではコードは書かない。
サムネのデザインはどう決まるのか
現在のサムネはこういう要素で構成されている。
┌─────────────────────────────────────────┐
│ [カテゴリバッジ] ・ ・ ・ ・ ・ │
│ ・ ・ ・ ・ ・ ・ │
│ タイトルテキスト (大きな円) │
│ タイトル続き ・ ・ ・ ・ ・ │
│ │
│ casio-pgs.com ▪ │
└─────────────────────────────────────────┘
- グラデーション背景(上下で色が変わる)
- 右側の半透明サークル(奥行き感)
- ドットグリッド(テクスチャ・密度感)
- 左の縦ライン(視線誘導)
- 上部カテゴリバッジ(角丸の緑バッジ)
- テキストシャドウ(読みやすさ向上)
- 右下の三角形(アクセント)
これらはすべてPillowのdraw.rectangle()・draw.ellipse()・draw.text()などの関数で描かれている。デザインツールは一切使っていない。
そのデザイン的な思考はどこから来るのか
「サムネを改善して」と伝えたとき、Claude Codeは半透明の円を背景に置き、タイトルを前面に際立たせるデザインを選んだ。
なぜそれができるのか。
答えは「膨大なデザインの文脈を学習しているから」だ。
Claude Codeは訓練の段階で、デザイン書・UI/UX記事・CSSチュートリアル・サムネイル制作の解説・グラフィックデザインの原則など、無数のテキストと画像の説明文を学んでいる。
人間のデザイナーが「良いデザインとは何か」を本や経験から学ぶのと同じように、Claude Codeはその膨大なデータから「どういう構造が視覚的に機能するか」のパターンを習得している。
具体的に何が働いているのか
今回の「半透明の円 → タイトルが際立つ」という判断の背景にあるのは、視覚的階層(Visual Hierarchy)というデザイン原則だ。
人の目は「手前にあるもの」「コントラストが高いもの」に先に引きつけられる。
半透明の円を背景レイヤーに置くことで:
- 右側に視覚的な奥行きと動きが生まれる
- テキストが「前面」に浮き上がって見える
- 結果としてタイトルへの視線誘導が強くなる
これは意識的に「円を置こう」と考えたのではなく、「タイトルを際立たせるには?」という問いに対して、学習データの中から最も有効なアプローチを引き出した結果だ。
重要なのは「創造」ではなく「翻訳」
ここで誤解しやすいのが、「AIが創造している」という捉え方だ。
実際は違う。
Claude Codeがやっているのは「人類が蓄積したデザインの知識を、その場のコードに翻訳すること」だ。
Canvaのデザイナーが「こういう要素を入れると効果的」と知っているように、Claude Codeも同じ知識を持っている。ただしその知識の出力形式が「デザインツールの操作」ではなく「Pythonのコード」というだけだ。
だから「センスがいい」ではなく「原則に忠実」という表現の方が正確だ。
ということは指示次第でもっと変わる
「ベタっとしてる、改善して」という抽象的な指示でも動いたが、より具体的に伝えれば、より意図に近いデザインになる。
- 「高級感を出して」→ 金・黒系・細いフォント・余白多め
- 「若い人向けに明るくして」→ 鮮やかな色・大きなフォント・アイコン追加
- 「シンプルに文字だけにして」→ 余計な装飾を全部削除
デザインの方向性を言葉で伝えれば、それに対応したコードが生成される。
なぜこれが重要なのか
「AIがコードを書く」というと難しく聞こえるが、本質はシンプルだ。
人間がやりたいことを伝える → Claude Codeがコードに翻訳する → Pythonが実行する
この流れが一度完成すれば、あとは自動で動き続ける。
サムネイル生成はその典型例だ。「毎回Canvaを開いてデザインする」という作業が完全に消えた。記事を書いてフォルダに入れるだけで、サムネ付きの記事がWordPressに公開される。
まとめ
- サムネはMacローカルのPythonで生成 → トークン・API料金ゼロ
- PillowはAIではなく描画ライブラリ → 指示はコードそのもの
- Claude Codeの役割は「人間の言葉をコードに翻訳すること」
- 仕組みが完成すれば、あとは自動で動き続ける
「コードが書けなくても自動化できる」のがClaude Codeの本質だ。やりたいことを言葉で伝えれば、コードへの翻訳はClaude Codeがやる。
関連記事
- ClaudeCodeメモリの仕組み — Claude Codeがファイルを読み書きする仕組み
- ObsidianからWordPressに自動投稿する仕組みとフロー — ウォッチャーを使った自動投稿の全体像
- Claude活用ログ — 今日やったこと全体のまとめ
- Claude Code APIとPythonでWordPressとGoogleサービスを自動操作する仕組み — API連携の全体像
