概要
Content Farmingワークフローのステップ8,9では、画像生成とWordPress記事投稿を自動化します。このフェーズは21個のノードで構成され、Leonardo AIまたはOpenAI DALL-Eを使った画像生成から、WordPress REST APIを使った記事公開までを完全自動化します。
ステップ8,9の全体構成
ワークフローは3つの主要フェーズに分かれています:

1. 画像生成フェーズ(ステップ8前半)
- MongoDBからステップ7完了済みの記事データを取得
- AI Agent4がLeonardo AI用の画像プロンプトを生成
- Leonardo AI APIで1472×832pxのアイキャッチ画像を生成
代替としてOpenAI DALL-Eも利用可能
2. 画像アップロードフェーズ(ステップ8後半)
- 生成された画像をWordPressメディアライブラリにアップロード
- MongoDBに画像URLと完了ステータスを保存
3. 記事投稿フェーズ(ステップ9)
- Markdown形式の記事をHTML形式に変換
- WordPressにドラフト記事を作成
- アイキャッチ画像を設定
- YOAST SEOメタデータを設定
- 記事を公開
- MongoDBに最終ステータスを保存
各ノードの詳細解説
ノード1: Get Articles Daily1(スケジュールトリガー)
2時間ごとの20分にワークフローを自動実行するトリガーです。ステップ8,9は前のステップ(1〜7)とは独立して動作し、MongoDBに保存されている「completed_step:7」の記事を処理します。

ノード2: MongoDB8(データベースクエリ)
MongoDBの「blog」コレクションから、completed_stepが7の記事を1件取得します。取得されるデータには、ブログタイトル、メインキーワード、画像のAltテキスト、記事本文(Markdown)、URLスラグ、SEOメタデータなどが含まれます。

ノード3: Code9(プロンプト前処理)
MongoDBから取得したimage_alt_textをクリーニングします。改行とダブルクォートを除去し、”A cinematic, emotionally compelling scene…”のような説明的なプレフィックスを追加します。Leonardo AI APIは長いプロンプトに対応していますが、改行や特殊文字があるとエラーになることがあるため、この前処理が重要です。

ノード4: AI Agent4(画像プロンプト生成)
OpenAI GPT-4o-miniを使って、画像生成用の詳細プロンプトを作成します。ブログタイトル、メインキーワード、画像Altテキストを組み合わせて、人間中心のシーンを描写するプロンプトを生成します。
重要な指示として、抽象的な回路やネットワーク図ではなく、感情的なストーリーを持つシーンを作成すること、画像内に文字を含めないこと、象徴的でシネマティックな雰囲気にすることが求められます。
ノード5: OpenAI Chat Model5(LLMモデル)
AI Agent4のバックエンドとしてGPT-4o-miniモデルを提供します。このモデルはコスト効率が高く(GPT-4の約1/10)、応答時間が短く、プロンプト生成には十分な品質を持っています。
ノード6: HTTP Request1(Leonardo AI画像生成リクエスト)
Leonardo AI APIに画像生成をリクエストします。パラメータには、モデルID、コントラスト値(3.5)、プロンプト、画像数(1枚)、サイズ(1472×832px)、スタイルUUIDが含まれます。
重要な認証設定: Bearer認証を使用し、Authorization: Bearer YOUR_API_KEYの形式で設定します。⚠️ “Bearer”と”YOUR_API_KEY”の間に必ずスペースを1つ入れてください。スペースがないと認証エラーになります。
このリクエストは即座に画像を返すのではなく、generationId(生成ジョブID)を返します。

ノード7: Structured Output Parser5(構造化出力パーサー)
AI Agent4が生成したテキスト形式のプロンプトをJSON形式に変換します。これにより、次のノード(HTTP Request1)でプロンプトを{{$json.prompt}}として参照できます。
ノード8: Wait(待機)
Leonardo AIの画像生成完了を待つため、1分間待機します。Leonardo AIは通常30秒〜2分、混雑時は2〜5分かかります。より確実な方法として、Webhook + Pollingパターン(30秒ごとに生成状況をチェック)も検討できますが、シンプルさを優先して1分待機する方法が採用されています。

ノード9: OpenAI(代替画像生成)
DALL-E 3による画像生成の代替パスです。Leonardo AIが利用できない場合やコスト削減したい場合に使用します。サイズは1792×1024px(横長)で、コストは約$0.04〜0.08/画像です。
Leonardo AIはスタイル統一とコスト予測可能性($0.30〜0.50/画像)、DALL-Eは高品質と柔軟性という特徴があります。
ノード10: HTTP Request2(生成状況確認)
HTTP Request1で取得したgenerationIdを使って、画像生成の進捗をチェックします。レスポンスには生成状況(PENDINGまたはCOMPLETE)と、完了時には画像URLが含まれます。

ノード11: HTTP Request3(画像ダウンロード)
HTTP Request2のレスポンスから画像URLを抽出し、画像データをバイナリ形式でダウンロードします。Leonardo AIがホストする画像の一時URL(通常24〜48時間有効)からデータを取得します。

ノード12: Upload image2(WordPress画像アップロード)
WordPress REST API(/wp/v2/media)を使って画像をアップロードします。
重要なパラメータ:
- Content-Disposition:
img-{{ slug }}.jpg形式でファイル名を設定(例:img-ai-code-review-tools.jpg) - contentType: “binaryData”: HTTP Request3でダウンロードしたバイナリデータを送信
- WordPress認証: Basic認証またはアプリケーションパスワード
APIレスポンスには、メディアID(id)と画像URL(source_url)が含まれます。このメディアIDは後でアイキャッチ画像として設定する際に使用します。

ノード13: Code12(画像URL保存準備)
Upload image2のレスポンスからsource_urlを抽出し、MongoDBに保存する準備をします。ドキュメントID(_id)、画像URL(blog_image_url)、完了ステップ(8)を含むオブジェクトを返します。

ノード14: MongoDB15(画像情報更新)
Code12で準備したデータをMongoDBの「blog」コレクションに保存します。これでステップ8(画像生成)が完了し、次のステップ9(記事投稿)に進みます。

ノード15: Code8(Markdown→HTML変換)
ステップ6で生成されたMarkdown形式の記事本文を、WordPressが受け付けるHTML形式に変換します。
変換ルール:
### 見出し→<h3>見出し</h3>## 見出し→<h2>見出し</h2># 見出し→<h1>見出し</h1>**太字**→<strong>太字</strong>*斜体*→<em>斜体</em>- 改行 →
<br>
このコードは基本的なMarkdownのみ対応しています。より高度な変換が必要な場合は、markdown-itライブラリや外部APIサービス(Markdownly APIなど)の使用を検討してください。

ノード16: WordPress1(記事ドラフト作成)
WordPress REST APIを使って新規記事をドラフト状態で作成します。
主要フィールド:
- title: ブログタイトル
- slug: URLスラグ
- status: “draft”(下書き)
- content: HTML形式の記事本文
- authorId: 著者ID
- categories: カテゴリーID
- commentStatus: “closed”(コメント無効)
いきなり公開すると、アイキャッチ画像やYOAST SEOメタデータが設定される前に公開されてしまうため、まずドラフトを作成し、その後に画像とメタデータを設定してから公開します。

ノード17: Set Image(アイキャッチ画像設定)
WordPress REST APIのfeatured_mediaパラメータを使って、ドラフト記事にアイキャッチ画像を設定します。Wordpress1で作成した記事IDとUpload image2でアップロードした画像のメディアIDを使用します。

ノード18: Set metatag1(YOAST SEOメタデータ設定)
YOAST SEOプラグインのカスタムフィールドにメタデータを設定します:
- _yoast_wpseo_title: SEOタイトル(60文字以内)
- _yoast_wpseo_metadesc: メタディスクリプション(160文字以内)
これらの値はステップ7(AI Agent7)で生成されています。⚠️ YOAST SEOプラグインがインストールされていない場合、このリクエストは失敗します。代替として、All in One SEOプラグインや独自のカスタムフィールドを使用できます。

ノード19: WordPress2(記事公開)
WordPress1で作成したドラフト記事のstatusを”draft”から”publish”に変更します。アイキャッチ画像とYOAST SEOメタデータの設定が完了してから公開することで、完全な状態で記事が公開されます。

ノード20: Code14(最終ステータス準備)
MongoDBに保存する最終ステータス情報を準備します:
- _id: 更新対象のドキュメントID
- blog_status: “Publish”(公開済み)
- blog_link: 公開された記事のURL
- completed_step: 9(完了マーク)

ノード21: MongoDB16(最終ステータス保存)
Code14で準備したデータをMongoDBに保存します。これでステップ9が完了し、1つのブログ記事が完全に自動生成・公開されました。

コストと重要ポイント
1記事あたりのコスト
- Leonardo AI: $0.30〜0.50(画像1枚)
- OpenAI: $0.10〜0.20(プロンプト生成)
- 合計: 約$0.40〜0.70/記事
1日10記事の場合、ステップ8,9のコストは月額$120〜210程度です。
重要なポイント
- Leonardo AI認証: “Bearer YOUR_API_KEY”のスペースに注意
- 非同期処理: 画像生成は時間がかかるため、Waitノードで待機
- 段階的公開: draft → 画像設定 → メタデータ設定 → publish
- MongoDBでの進捗管理:
completed_stepで各ステップの完了状態を追跡
まとめ
ステップ8,9では、21個のノードを使って画像生成からWordPress投稿までを完全自動化しています。Leonardo AIまたはDALL-Eで生成されたアイキャッチ画像、HTML形式に変換された記事本文、YOAST SEOメタデータを組み合わせて、SEO最適化された高品質な記事が自動的に公開されます。