Canva MCPの日本語テキスト生成で全滅した話──多言語対応AIの現実と、実用的な代替手段
出典: ミケ

Claude CodeからCanva MCPを呼び出して日本語ヒーロー画像を生成したところ、意味不明なテキストが生成され4案全滅。この経験から見えてきたのは、英語特化AIツールの多言語対応の限界と、実務で使える代替アプローチです。
MCPで広がる可能性と、そこに潜む言語の壁
Claude Codeの登場により、MCP(Model Context Protocol)を介して外部サービスと連携する開発フローが現実的になってきました。その中でCanva MCPは、デザイン生成を自動化できる魅力的な選択肢として注目されています。
しかし、実際に日本語コンテンツで試してみると、英語圏で開発されたAIツールの多言語対応には明確な限界があることが判明しました。今回紹介する事例は、「天久百厳浸」という意味不明なテキストが生成された実体験から得られた、実務で役立つ知見です。
何が起きたのか:日本語ヒーロー画像生成の失敗
実験の概要
問題の本質
Canva AIは日本語の文字を「グリフ(視覚的な記号)」としては認識できますが、**意味的整合性を保つ能力がありません**。これは単なるバグではなく、学習データとモデル設計が英語中心であることに起因する構造的な制約です。
英語圏のAIツールは、英語での自然言語処理には高度な能力を発揮しますが、日本語のような非ラテン文字言語では:
これらの問題により、視覚的には日本語に見えても、内容は完全にナンセンスなテキストが生成されます。
編集部の視点
英語特化AIツールの多言語対応:比較分析
この問題はCanva MCPに限った話ではありません。類似のデザイン生成ツールを比較すると、興味深い傾向が見えてきます。
**英語圏発のAIデザインツール全般**(Canva AI、Adobe Firefly、Microsoftデザイナーなど)は、日本語テキストの「生成」には弱く、むしろ「配置」や「スタイル適用」の段階で人間が介入することを前提とした設計になっています。
一方、**ChatGPTやClaude本体**は多言語コーパスで訓練されており、日本語の意味理解は十分に機能します。しかし、これらのモデルが外部APIを介してデザインツールを呼び出す際、**デザインツール側の言語能力がボトルネックになる**という構造的な問題があります。
メリットと注意点の両面分析
**Canva MCP経由のアプローチのメリット**:
**日本語使用時の注意点**:
適用範囲の考察
Canva MCPが有効なケース:
Canva MCPが不適切なケース:
実務で使える2つの代替アプローチ
投稿者が提示した代替案は、いずれも実務レベルで十分に機能する選択肢です。
アプローチ1:Canvaテンプレート + 手動編集
# MCPでテンプレートを取得・コピー
# AI生成は使わず、テンプレート構造のみ活用
# テキスト部分は手動で日本語に書き換え**適している場面**:
アプローチ2:Pillow + TTFフォントでスクリプト生成(推奨)
投稿者が最終的に採用したのがこの方法です。Python Imaging Library(Pillow)を使い、日本語対応フォントファイル(TTF)をプロジェクトに同梱することで、完全にコントロール可能な画像生成を実現します。
from PIL import Image, ImageDraw, ImageFont
# プロジェクト内のフォントを使用
font = ImageFont.truetype("./fonts/NotoSansJP-Bold.ttf", 48)
# 完全に制御可能な日本語テキスト描画
img = Image.new('RGB', (1200, 630), color='#2C3E50')
draw = ImageDraw.Draw(img)
draw.text((100, 200), "意味のある日本語タイトル", font=font, fill='white')**このアプローチのメリット**:
**注意点**:
今日から試せるアクション
1. 日本語フォントを含むPillow環境を構築する
# 必要なライブラリをインストール
pip install Pillow
# Noto Sans JPなどのフリーフォントをダウンロード
# プロジェクトの fonts/ ディレクトリに配置Google Fontsの「Noto Sans JP」や「M PLUS」など、商用利用可能な日本語フォントを選びましょう。
2. シンプルなヒーロー画像生成スクリプトを作る
最初は単色背景+テキストのみの最小構成から始めます。以下のテンプレートをカスタマイズしてください:
from PIL import Image, ImageDraw, ImageFont
def generate_hero_image(title, subtitle, output_path):
# 画像サイズ(OGP推奨サイズ)
img = Image.new('RGB', (1200, 630), color='#1a1a2e')
draw = ImageDraw.Draw(img)
# フォント読み込み
title_font = ImageFont.truetype("./fonts/NotoSansJP-Bold.ttf", 64)
subtitle_font = ImageFont.truetype("./fonts/NotoSansJP-Regular.ttf", 32)
# テキスト描画
draw.text((100, 200), title, font=title_font, fill='#ffffff')
draw.text((100, 300), subtitle, font=subtitle_font, fill='#a8dadc')
img.save(output_path)
# 使用例
generate_hero_image(
"Claude Codeで始める開発自動化",
"MCPの可能性と限界を知る",
"hero.png"
)3. よく使うデザインパターンをテンプレート化する
ブログやSNS用の画像には、いくつかの定番パターンがあります:
これらをPython関数として実装し、引数を変えるだけで生成できるようにしておくと、長期的に大きな時間節約になります。
まとめ:ツールの限界を知り、適切な選択を
AIツールの進化は目覚ましいものがありますが、多言語対応、特に非ラテン文字言語では依然として大きな課題が残っています。Canva MCPの事例は、「最新のAIツールでも万能ではない」という現実を示す好例です。
重要なのは、**ツールの限界を理解し、目的に応じた最適な手段を選択すること**です。完全自動化を求めるなら Pillow によるスクリプト生成、デザイン品質を優先するなら Canva の手動編集、といったように使い分けましょう。
今回の知見は、Claude Code や MCP を使った開発ワークフロー全般に応用できます。外部APIを呼び出す際は、そのサービスの言語対応状況を事前に確認することで、無駄な試行錯誤を避けられます。
この情報は @ミケ さんの投稿を参考にしています。
出典: ミケ


