

AI Slides APIでソーシャルメディアのカルーセルを自動化する(2026年版)
ソーシャルメディアのカルーセルを自動化するには、Google Sheets、Notionデータベース、またはAirtableベースにトピックをまとめ、ClaudeやOpenAIに新しい行ごとに7枚スライドのアウトラインとキャプションを作成させ、n8nやMakeで2SlidesのAPIエンドポイント create-pdf-slides を aspectRatio: "4:5" または "9:16" で呼び出します。jobs/{id} をポーリングし、PDFとページごとのPNGをダウンロードします。7ページの2Kカルーセルは710クレジット(約1.42~1.78ドル)で、デザイナーを介さずに週に数本のカルーセルを公開するコンテンツチームに最適なレシピです。
主なポイント
- 1回の
create-pdf-slides呼び出しで7ページのカルーセルPDFとページごとの2K PNGが710クレジット(企画10クレジット+ページあたり100クレジット)で生成される。 aspectRatioは任意のw:h文字列を受け付ける。LinkedInやInstagramフィードは4:5、StoriesやReels、TikTokは9:16、正方形投稿は1:1。create-like-thisは1枚のブランドスライドのreferenceImageUrlを受け取り、そこからデザインシステム全体を派生させるため、シリーズ内のカルーセルの統一感を保てる。- 音声ナレーションはページあたり210クレジット、Workspaceのエクスポート → ビデオ生成はページあたり20クレジットで1080×1920のH.264 MP4を作成可能。
- APIキーは1分あたり6リクエストに制限されているため、6件以上のバッチはWaitノードとキューが必要。
対象ユーザー
このレシピは、すでにn8n、Make、Zapierを運用していて、スプレッドシートに30~300件のカルーセルアイデアがあり、毎月デザイナーの工数を何日も消費してスライド化しているコンテンツマーケターやマーケティングオペレーションエンジニア向けです。また、複数クライアントブランドのカルーセルを制作し、各ブランドの見た目を維持したい代理店にも適しています。
ただし、すべてのカルーセルに手動で配置する製品スクリーンショットやFigmaで編集するチャートが必要な場合は使用しないでください。その場合は自動化は最初のドラフト作成にしか役立たず、Fast PPTの編集可能なPPTXから始める方が良いです。
ワークフローの概要
| ステップ | ツール | 処理内容 | 2Slidesエンドポイント / クレジット |
|---|---|---|---|
| 1 | Google Sheets、Notion、Airtable | 新しい行に topic、channel(LinkedIn、Instagram、Stories)、status = queued を追加 | なし |
| 2 | ClaudeまたはOpenAIノード | 7枚スライドのアウトライン(フック、本文5枚、CTA)とキャプション・ハッシュタグをJSONで作成 | なし |
| 3 | HTTPリクエストノード | アウトラインを aspectRatio "4:5" または "9:16"、page: 7、resolution: "2K"、mode: "async" で送信 | POST /api/v1/slides/create-pdf-slides、7ページデッキで710クレジット |
| 4 | Waitノード + HTTPリクエストノード | 8秒ごとに status が success または failed になるまでポーリング | GET /api/v1/jobs/{id}、無料、10リクエスト/分 |
| 5 | HTTPリクエストノード | downloadUrl からPDFとページごとのPNG ZIPをダウンロード | POST /api/v1/slides/download-slides-pages-voices、無料 |
| 6 | 任意 | ナレーター音声を追加し、Workspaceで9:16のMP4をレンダリング | generate-narration ページあたり210クレジット、動画エクスポート20クレジット/ページ |
| 7 | Google Drive、Slack | アセットをアップロードし、レビュー用に投稿、リンクと status = ready を行に書き込み | なし |
ステップ1:ソーシャルメディアカルーセル自動化のパイプラインを選ぶ
2SlidesはAPI経由でスライドを作成する方法を2つ提供しています。generate(Fast PPT)はデザイン済みテンプレートに内容を埋め込み、約30秒で編集可能なPPTXを返します。create-pdf-slides(Nano Bananaの画像設計パイプライン)はプロンプトから各ページを描画し、PDFとページごとの画像を返します。
カルーセルには後者のパイプラインが必要な理由は3つあります。Fast PPTにはないカスタム aspectRatio を指定できること、LinkedInやInstagramが読み込むページごとのPNGを返すこと、ナレーション付きでMP4に変換できることです。
配線を始める前に、Nano Bananaの製品ページで2~3回手動でプロンプトを試してください。APIと同じプロンプトボックスとページ数制御があり、designStyle の文言を人の目で調整してから自動化できます。

比較のために: Gammaの開発者ドキュメント はMake + Claudeの類似カルーセルレシピを公開していますが、APIキーはProプランが必要です。一方、2SlidesのAPIキーは新規アカウントの500無料クレジットを含め、どのアカウントでも使えます。2Slidesは当社製品なので、ご自身のブランドと予算で両方試してください。
ステップ2:トピックリストの各行をアウトラインとキャプションに変換
LLMステップはトピックリストからカルーセルへの変換が行われる部分です。ClaudeやOpenAIに構造化JSONを返すよう依頼し、次のノードが正規表現なしで読み取れるようにします。
あなたは{{brand}}のLinkedInとInstagramカルーセルを作成します。
トピック: {{topic}}
対象: {{audience}}
JSONのみを返してください:
{
"slides": [
{ "n": 1, "title": "<フック、最大8語>", "body": "<1行>" },
... ちょうど7枚のスライド; 7枚目はCTA ...
],
"caption": "<120~200語、ハッシュタグなし>",
"hashtags": ["<5~8個のタグ>"]
}
ルール:スライドごとに1つのアイデア、スライド内に箇条書きなし、平易な言葉で。次にスライドを2Slidesが期待する userInput 文字列にフラット化します。各スライドは見出しと1行の補足に抑えましょう。4:5で7枚の密なスライドはすぐに窮屈になります。理由から contentDetail: "concise" を設定します。
// n8nのCodeノード(またはNode 20スクリプト):LLMのJSONから2Slidesペイロードを作成
const plan = JSON.parse($json.llmOutput);
const userInput = plan.slides
.map((s) => `Slide ${s.n}: ${s.title}\n${s.body}`)
.join("\n\n");
const aspectRatio = $json.channel === "Stories" ? "9:16" : "4:5";
return [{ json: { userInput, aspectRatio, caption: plan.caption, hashtags: plan.hashtags } }];caption と hashtags は行に戻して保存してください。投稿スケジューラーがPNGの隣で使います。
ステップ3:2Slides API呼び出しの設定
2slides.com/api のAPI KeysタブでAPIキーを作成します。新規アカウントは500無料クレジットが付与されます。キーは自動化ツールの認証情報ストアに入れ、Authorization: Bearer $SLIDES_API_KEY として送信してください。ブラウザ側スクリプトや公開シートのセルに入れないでください。

responseLanguageには言語名(例:"Spanish")を渡し、コードではありません。
LinkedInフィードカルーセルの送信例は以下の通りです。designStyle は自由記述で、背景、アクセントカラー、タイポグラフィ、避けたい要素を具体的に書きます。
curl -X POST https://2slides.com/api/v1/slides/create-pdf-slides \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userInput": "Slide 1: 5 onboarding emails every SaaS should send\nMost trials churn before day 3. These five fix that.\n\nSlide 2: Day 0, the welcome\nOne job: get them to the first aha moment.\n\nSlide 3: Day 1, the quick win\nShow one feature, one outcome, one button.\n\nSlide 4: Day 3, the social proof\nA customer quote and a number.\n\nSlide 5: Day 5, the blocker check\nAsk what stopped them. Reply personally.\n\nSlide 6: Day 7, the decision\nRestate value, then the price.\n\nSlide 7: Save this carousel\nFollow for the full sequence templates.",
"designStyle": "Bold editorial carousel for LinkedIn. Off-white background, one deep navy accent, oversized serif headline on each slide, small sans-serif body line, thin page counter top-right, brand mark bottom-left. No stock photos, no gradients.",
"aspectRatio": "4:5",
"resolution": "2K",
"page": 7,
"contentDetail": "concise",
"imageModel": "gemini-3-pro-image",
"responseLanguage": "English",
"mode": "async"
}'レスポンスは { "jobId": "..." } です。StoriesやTikTok版は aspectRatio を "9:16" に変え、プラットフォームUIに隠れないように designStyle で見出しを上寄せにしてください。resolution: "2K" はデフォルトで、512pxや1Kと同じくページあたり100クレジット。4Kは倍の200クレジットです。
ステップ4:n8nでInstagramカルーセル自動化を組む
n8nでは全体で8ノードです。同じ構成はMakeのHTTPとSleepモジュールでも動きます(Makeのヘルプセンター参照)。n8nドキュメントはHTTPリクエストの認証情報について解説しています。
- トリガー:Google Sheets、Notion、Airtableの新規行トリガー、または
status = queuedの行を読むスケジュールトリガー - ClaudeまたはOpenAIノード:ステップ2のプロンプト、JSON出力
- Codeノード:
userInputを組み立て、channel列からaspectRatioを選択 - HTTPリクエストノード:
POST /api/v1/slides/create-pdf-slidesでmode: "async"、jobIdを行に保存 - Waitノード:8秒待機
- HTTPリクエストノード:
GET /api/v1/jobs/{jobId}。IFノードでstatusがpendingまたはprocessingの間はWaitノードに戻るループ - HTTPリクエストノード:
downloadUrlからPDFをダウンロードし、POST /api/v1/slides/download-slides-pages-voicesでPNG ZIPを取得 - 配信:Google Driveにアップロード、Slackにキャプション投稿、
status = readyを行に設定
コードでループを制御したい場合は、依存なしのNode 20スクリプト例をどうぞ。
// Node 20+. サーバーサイドで実行。キーは環境外に出ません。
import { writeFile } from "node:fs/promises";
const BASE = "https://2slides.com";
const headers = {
Authorization: `Bearer ${process.env.SLIDES_API_KEY}`,
"Content-Type": "application/json",
};
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
async function submitCarousel(row) {
const res = await fetch(`${BASE}/api/v1/slides/create-pdf-slides`, {
method: "POST",
headers,
body: JSON.stringify({
userInput: row.userInput,
designStyle: row.designStyle,
aspectRatio: row.aspectRatio, // "4:5" または "9:16"
resolution: "2K",
page: 7,
contentDetail: "concise",
responseLanguage: "English",
mode: "async",
}),
});
if (!res.ok) throw new Error(`submit failed: ${res.status} ${await res.text()}`);
const { jobId } = await res.json();
return jobId;
}
async function waitForJob(jobId) {
for (;;) {
const res = await fetch(`${BASE}/api/v1/jobs/${jobId}`, { headers });
const job = await res.json();
if (job.status === "success") return job;
if (job.status === "failed") throw new Error(`job ${jobId} failed`);
await sleep(8000); // 5~10秒でjobs/{id}の10リクエスト/分制限内に収める
}
}
async function downloadAssets(jobId, job, slug) {
const pdf = await fetch(job.downloadUrl);
await writeFile(`${slug}.pdf`, Buffer.from(await pdf.arrayBuffer()));
const zip = await fetch(`${BASE}/api/v1/slides/download-slides-pages-voices`, {
method: "POST",
headers,
body: JSON.stringify({ jobId }),
});
await writeFile(`${slug}-pages.zip`, Buffer.from(await zip.arrayBuffer()));
}
// rowsはLLMステップ後のSheet/Notion/Airtableのエクスポート
for (const row of rows) {
const jobId = await submitCarousel(row);
const job = await waitForJob(jobId);
await downloadAssets(jobId, job, row.slug);
await sleep(10_000); // 1キーあたり1分6件未満に抑える
}ページZIPを解凍すると、指定した4:5または9:16比率の7枚PNGが得られます。これらを順番にLinkedInのドキュメント投稿やInstagramの複数画像投稿にアップロードしてください。
ステップ5:Reels、Stories、TikTok用のナレーション付き9:16動画(任意)
カルーセルを生成した同じジョブにナレーションを付けられます。generate-narration は create-pdf-slides または create-like-this の jobId を受け取り、各ページのスクリプトと音声トラックを作成します。30種類の声(Zephyr、Puck、Charon、Kore、Aoede、Ledaなど)から選び、contentMode: "concise" で各ページ数秒に収めます。
curl -X POST https://2slides.com/api/v1/slides/generate-narration \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobId": "JOB_ID_FROM_STEP_3",
"mode": "single",
"speakerName": "Host",
"voice": "Kore",
"contentMode": "concise",
"includeIntro": false
}'ナレーションは非同期のみなので、同様に jobs/{id} をポーリングします。完了後、download-slides-pages-voices はページごとのPNGとWAVを含むZIPを返し、FFmpegで縦動画に結合可能です。FFmpegを使いたくない場合は2Slides Workspaceでジョブを開き、エクスポート → ビデオ生成を使うとブラウザで1080×1920のH.264 MP4をページあたり20クレジットで作成できます。
縦動画のペース配分、フック、キャプションタイミングは顔出しなし教育ショート動画のプレイブックとナレーション&動画のベストプラクティスを参照してください。
参照スタイルの選択:ブランドに合ったLinkedInカルーセル生成API
designStyle のテキスト指定はブランドの雰囲気に近づけますが曖昧です。チームで「これが正しい」と合意したスライドが1枚あるなら、送信を create-like-this に切り替え、そのスライドのURLを referenceImageUrl に渡してください。2Slidesはそこからパレット、タイプスケール、レイアウトグリッドなどのデザインシステム全体を派生させるため、カルーセル40もカルーセル1と統一されます。コストと制限は create-pdf-slides と同じです。
curl -X POST https://2slides.com/api/v1/slides/create-like-this \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userInput": "Slide 1: 5 onboarding emails every SaaS should send ... Slide 7: Save this carousel",
"referenceImageUrl": "https://assets.yourbrand.com/carousel-style-reference.png",
"aspectRatio": "4:5",
"resolution": "2K",
"page": 7,
"contentDetail": "concise",
"mode": "async"
}'参照画像は公開URLである必要があります。CDN、公開読み取り可能なS3やR2バケット、ログイン不要の共有リンクなど。トピックシートの列にブランドごとに1つの参照を保持し、Codeノードで行ごとに選択してください。
ブランドスライドがまだない場合は、2Slidesギャラリーに実際のデッキがあり、デザインのインスピレーションや referenceImageUrl として直接使えます。以下の画像はギャラリーの2つのデッキからのものです。API出力ではなく、APIに参照させるスタイル例です。



見出しが1つ明確で、背景がシンプル、ブランドマークが見える参照を選びましょう。写真や複数チャートが多いとスマホサイズで読みづらいカルーセルになります。
費用について
7ページ2Kカルーセルは企画10クレジット+7×100クレジット=710クレジットです。クレジット単価は$5パック(2,000クレジット)で0.0025ドル、$80パック(40,000クレジット)で0.002ドル。PNGダウンロードとポーリングは無料です。
| ボリューム | 月間クレジット | 適合パック | 月額USD | 1カルーセルあたりUSD |
|---|---|---|---|---|
| 20カルーセル、7ページ、2K、ナレーションなし | 14,200 | 20,000クレジット $42.50 | 約30.18ドル | 約1.51ドル |
| 500カルーセル、7ページ、2K、ナレーションなし | 355,000 | 40,000クレジット $80 ×9 | 約710ドル(1クレジット0.002ドル) | 約1.42ドル |
| 7ページカルーセル1件にナレーション追加 | +1,470 | 約2.94~3.68ドル | ||
| 7ページカルーセル1件にWorkspace動画エクスポート追加 | +140 | 約0.28~0.35ドル |
オプションのProサブスクリプションは月10,000クレジット(プロモ価格12.50ドル、定価25ドル)を含み、月14カルーセル分をカバーします。500無料クレジットは7ページフルデッキに足りないため、まず3ページ(310クレジット)でテストしてください。複数ブランド向けのサイズ感はマーケティングチーム向けバッチプレイブックを参照。
Fast PPTと画像設計スライド、どちらを使うべき?
| ニーズ | 使用するAPI | 理由 |
|---|---|---|
| 4:5または9:16出力、ページごとのPNG、ナレーション、MP4 | create-pdf-slides または create-like-this | 画像設計パイプラインは aspectRatio を受け付けナレーション可能。Fast PPTは不可。 |
| 同じトピックのウェビナーや営業用デッキに編集可能なPPTX | generate(Fast PPT) | 1ページ10クレジット、1,500以上のテンプレートからネイティブPPTXを生成。 |
| 数百カルーセルで1つのブランドルックを固定したい | create-like-this + referenceImageUrl | 1枚の画像からデザインシステムを派生させるため、文章解釈より安定。 |
| デザインレビュー前の社内ドラフトを素早く作成 | create-pdf-slides の resolution: "512px" | 2Kと同じページあたり100クレジット。承認後に2Kで再生成可能。 |
よくある落とし穴
- 30行一括送信で429エラーが出る。 生成系エンドポイントは1キー6リクエスト/分、
jobs/{id}は10リクエスト/分制限。送信間にWaitノードを入れ、ポーリングは5秒以上空ける。 - APIキーをSheetやクライアント側スクリプトに保存する。 キーはクレジットを消費するので、n8nやMakeの認証情報、サーバー環境変数に保管し、ブラウザに漏れたら即ローテーションする。
- Fast PPTジョブにナレーションを付けようとする。
generate-narrationはgenerateジョブを拒否。ナレーション可能なのはcreate-pdf-slidesとcreate-like-thisのみ。 page: 0を指定して7スライドを期待する。page: 0は内容から自動判定し4~12ページになることも。コストとレイアウトを予測可能にするため明示的にpage: 7を指定。- 言語コードを渡す。
responseLanguageは"Spanish"や"Simplified Chinese"のような言語名を渡し、"es"や"zh-CN"は不可。 - 2,000語の記事を
userInputに入れる。 画像モデルは詰め込もうとするため、LLMステップで7つの見出し+1行に要約してから送信する。
よくある質問
デザイナーなしでソーシャルメディアカルーセルを自動化できますか?
はい。最初のドラフトや多くの定型フォーマットは可能です。LLMが7枚スライドのアウトラインを作成し、create-pdf-slides が designStyle または referenceImageUrl からスライドを描画し、n8nがPNGをレビュー用チャンネルに配信します。投稿前に人が承認しますが、デザインとレイアウトはその時点で完成しています。
LinkedInとInstagramカルーセルでどのアスペクト比を使うべきですか?
LinkedInフィードとInstagramフィードカルーセルは縦長カードを4:5比率で表示するため、aspectRatio: "4:5" を使います。Instagram Stories、Reelsカバー、TikTokスライドショーは "9:16"。すべてのプラットフォームで使う正方形セットが必要なら "1:1" も可能です。パラメータは任意の w:h 文字列を受け付けるので、後から比率を追加してもワークフローを変えずに済みます。
AIカルーセルメーカーAPIの1カルーセルあたりのコストは?
7ページ2K解像度で710クレジット(企画10+ページあたり100)。$5パックで約1.78ドル、$80パックで約1.42ドル。ポーリングとPNGダウンロードは無料。ナレーションはページあたり210クレジット、Workspaceでの動画レンダリングはページあたり20クレジット。
ナレーション付き動画版のカルーセルも作れますか?
はい。カルーセルの jobId で generate-narration を呼び出し、30種類の声から選択し、完了までポーリングします。完了後、download-slides-pages-voices からPNGとWAVのZIPをダウンロードしてFFmpegで結合するか、2Slides Workspaceでジョブを開きエクスポート → ビデオ生成で1080×1920 MP4を作成可能。ナレーションは create-pdf-slides と create-like-this ジョブのみ対応。
Instagramカルーセル自動化はn8n以外のMakeやZapierでも使えますか?
はい。すべてのステップはBearerトークン付きのHTTPS呼び出しなので、MakeのHTTPモジュールやZapierのWebhookアクションで同様に送信、ポーリング、ダウンロード可能です。唯一の要件は jobs/{id} チェック間に5~10秒の待機ループが必要なこと。n8nやMakeはネイティブに対応していますが、ZapierではDelayステップとポーリング用の別Zapを使うのがおすすめです。
次のステップ
- 2slides.com/api でAPIキーを作成。新規アカウントは500無料クレジット付きで3ページカルーセルのテストに十分。サブスクリプション不要で使えます。
- AIプレゼンAPIのチーム別ユースケースのハブ記事を読み、同じ送信・ポーリング・ダウンロードループが営業、人事、教育デッキを支えている様子を確認。
- 他のデッキと並行してソーシャルメディアカルーセルを自動化するには、無料のn8n + 2Slidesワークフローチュートリアルとマーケティングチーム向けバッチプレイブックから始め、Reels用ナレーションはナレーション&動画ベストプラクティスを追加してください。
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free