【Dify中級】旅行写真を撮るだけ!Instagram投稿文+ブログ旅行記+おすすめ情報を全自動生成するアプリの作り方

Dify中級編として、旅行写真をスマートフォンで撮影するだけで、Instagram投稿文、ブログ旅行記、スポットのおすすめ情報(5選)、X(Twitter)投稿文を全自動生成するアプリの作り方を解説した第151話のアイキャッチ画像。作業着姿の49歳男性がスマホと旅行写真(橋の風景)を手に持ち、前方にはInstagram、ブログ、Xの投稿画面、おすすめポイントのリストがネオンブルーのデジタルパネルで浮かび上がっている近未来的なデザイン。背景には、写真と同じベイブリッジのような大橋が見える。 Difyワークフロー

皆さんこんにちは、横浜で清掃業をしているヤスです。

前回は【Dify中級】ニュース記事を貼るだけ!X・Instagram・LinkedIn用SNS投稿文を全自動生成

のアプリを作りましたね。今回はこちらです。

1. 旅行後の「写真は100枚あるのに投稿できない」問題を解決します

旅行から帰ってきたとき、こんな経験はありませんか?「写真はたくさん撮ったのにInstagramになかなか投稿できない」「ブログを書こうと思っているけど文章にまとめる時間がない」「結局写真がスマホに眠ったまま…」

旅行好きな人なら誰もが経験するこの問題を、今回紹介する「旅行写真→SNS投稿文+旅行記自動生成くん」が丸ごと解決します。旅行写真を1枚アップロードするだけで以下が全自動生成されます。

  • 写真の場所・雰囲気・見どころの詳細分析
  • Instagramキャプション(日本語タグ10個+英語タグ10個付き)
  • ブログ用旅行記(タイトル3案+500〜800文字の本文)
  • X用投稿文(140文字以内)
  • おすすめポイント5つ+旅行者アドバイス(時間帯・季節・混雑・所要時間)

実際に横浜・山下公園の写真でテストしたところ、バラ・ベイブリッジ・氷川丸の特徴を正確に把握し、「海風・バラの香り・アイスの冷たさ」という五感を使ったブログ旅行記が生成されました。しかも入力した旅のエピソード(港でアイスを食べた・友人と訪れた)がそのまま本文に自然に溶け込んでいます。

2. 実際の出力サンプル(横浜・山下公園)

✈️ 旅行コンテンツ 一括生成 旅行先:神奈川県横浜市 山下公園 スタイル:観光・グルメ旅 📷 STEP 1|写真解析 場所:屋外・横浜港沿い 被写体:鮮やかな赤いバラ×横浜ベイブリッジ×青空 雰囲気:都市と自然が調和した開放的な海辺の景観 魅力ポイント①:バラと青い海・空のコントラスト 魅力ポイント②:横浜ベイブリッジが見える絶好フォトスポット 魅力ポイント③:観光・グルメ旅にぴったりの開放感 📸 STEP 2|Instagram キャプション(234字) 「息をのむ美しさだった🌹✨ 横浜市の山下公園で、鮮やかな赤いバラと 青い空、そして横浜ベイブリッジの絶景が 広がる場所。晴れた日には海風を感じながら この美しいコントラストを楽しめます…」 #山下公園 #横浜観光 #バラの庭 …(日英20個) 📝 STEP 3|ブログ旅行記 タイトル①:バラ色の横浜散策!心が踊る氷川丸とベイブリッジ タイトル②:心地よい海風とバラの香りに包まれて タイトル③:横浜港で満喫する山下公園の魅力をレポート 本文:五感を使った描写・エピソード込み(約600字) ✨ STEP 4|おすすめポイント5つ+X投稿136字

💡 travel_memoに「港でアイスを食べた」「友人と訪れた」と入力したエピソードがブログ本文に自然に組み込まれました。

3. このアプリが旅行好きに刺さる理由

旅行後の悩み今までこのアプリ
Instagram投稿文を考える15〜30分自動生成
ハッシュタグを調べる10〜15分日英20個が自動
ブログ旅行記を書く1〜3時間自動生成
X投稿文を考える5〜10分自動生成
おすすめ情報をまとめる30〜60分自動生成
合計約2〜4時間数分

4. 全体のブロック構成

#ブロック名種類役割
1ユーザー入力開始写真・旅行先・メモ・言語・スタイルを入力
2写真解析LLM①(ビジョンON)場所・雰囲気・魅力ポイントを分析
3Instagram投稿文生成LLM②キャプション+日英ハッシュタグを生成
4ブログ旅行記生成LLM③タイトル3案+500〜800字の旅行記を生成
5おすすめポイント生成LLM④5ポイント+旅行アドバイス+X投稿文を生成
6最終出力整形テンプレート変換全情報を1ドキュメントにまとめる
7出力終了最終結果を出力する

5. 事前準備|必要なものはこれだけ

  • Difyのアカウント(無料プランOK)
  • OpenAIのAPIキー(GPT-4oが使えるプラン)← ビジョン機能に必須
  • テスト用の旅行写真(スマホで撮った写真でOK)
  • 所要時間:20〜30分

⚠️ ビジョン機能はGPT-4oが必要です。GPT-3.5・gpt-4o-miniでは画像認識ができません。

6. 【作り方】ステップごとに丁寧に解説

STEP 1|新しいワークフローアプリを作成する

  1. Difyにログインして「アプリを作成」をクリック
  2. 種類は「ワークフロー」を選ぶ
  3. アプリ名に「旅行写真→SNS投稿文+旅行記自動生成くん」と入力
  4. 「作成する」をクリック

STEP 2|開始ブロックを設定する(変数5つ)

変数名表示名種類必須
travel_photo旅行写真ファイル✅ 必須
destination旅行先(任意)テキスト(短文)任意
travel_memo旅の思い出・エピソードテキスト(長文)任意
output_lang出力言語セレクトボックス✅ 必須
travel_style旅のスタイルセレクトボックス✅ 必須

【output_lang】選択肢:日本語/English/日本語+English

【travel_style】選択肢:観光・グルメ旅/自然・アドベンチャー旅/歴史・文化探訪/リゾート・のんびり旅/バックパック・一人旅/ファミリー旅行

💡 travel_memoは任意ですが入力すると旅のエピソードがブログ旅行記に自然に組み込まれます。「港でアイスを食べた」「朝早く行ったら人が少なかった」などの短いメモでもOKです。

STEP 3|LLM①(ビジョンON)写真解析を設定する

このブロックが今回のアプリの核心です。ビジョン機能をONにする手順は名刺アプリ・商品写真アプリと同じです。

💡 画像認識を支えているのがDifyの「ビジョン機能」。有効化の手順はこちら→[第11話]

  1. LLMブロックを追加して「写真解析」と名前をつける
  2. モデルを「GPT-4o」に設定する
  3. 「ビジョン」のトグルをONにする
  4. 画像ソースに「{{開始.travel_photo}}」を設定する
  5. temperature:0.4に設定する

プロンプト設計の核心は「視覚情報と推測情報を明確に区別させる」ことと「次のLLMへの引き継ぎメモを3点で出力させる」ことです。商品写真アプリと同じ設計思想です。

STEP 4|LLM②(Instagram投稿文)を設定する

Instagramに最適化したキャプションを生成します。temperature:0.8(SNS投稿は創造性重視)に設定してください。

プロンプト設計で特に重要な点が2つあります。

  • 書き出しのフックは1種類の型のみ使う:感情型・問いかけ型・体験型から1つを選んで統一する(2つの型を混在させない)
  • output_langで出力言語を自動切り替え:「日本語」なら日本語のみ・「English」なら英語のみ・「日本語+English」なら両方生成

💡 テスト結果では日本語タグ10個+英語タグ10個の計20個が正確に出力されました。旅行Instagramで国際的なリーチを狙う場合は「日本語+English」設定が効果的です。

STEP 5|LLM③(ブログ旅行記)を設定する

読者が「行きたい!」と思う旅行記を生成します。temperature:0.8・最大トークン:1500に設定してください。

プロンプト設計で特に重要な点が2つあります。

  • 五感を使った描写を最低2箇所入れる:視覚だけでなく「海風が頬を撫でる」「バラの香りが漂う」「アイスの冷たさが口に広がる」など五感で臨場感を出す
  • travel_memoを必ず本文に組み込む:「ただの旅行記」ではなく「その人の旅」になることで読者との共感が生まれる

タイトルは必ず3案出力させます。SEO重視・感情訴求・クリック重視と異なるアプローチで3つ提案されるので、ブログのスタイルに合わせて選べます。

STEP 6|LLM④(おすすめポイント)を設定する

実用的な旅行情報をまとめます。temperature:0.4(情報系は正確性重視)に設定してください。

  • おすすめポイント5つ:travel_styleに合った視点で選定
  • 旅行者アドバイス:おすすめ時間帯・季節・混雑状況・所要時間の4項目
  • 注意点:旅行者が知っておくべき情報
  • X投稿文:140文字以内・ハッシュタグ付き

⚠️ 確認できない具体的な営業時間・料金・アクセス情報は「要確認」と明記するルールを入れています。存在しない情報を断言しないのがこのブロックの安全設計です。

STEP 7|テンプレート変換+終了ブロックを設定する

変数名(左)参照先(右)内容
arg1LLM①.text写真解析
arg2LLM②.textInstagram投稿文
arg3LLM③.textブログ旅行記
arg4LLM④.textおすすめポイント
arg5開始.destination旅行先
arg6開始.travel_style旅のスタイル
arg7開始.output_lang出力言語
Difyで構築した「旅行写真から各種コンテンツを一括生成するアプリ」のワークフロー設計図とテスト実行結果。左側にはユーザー入力から「写真解析(gpt-4o)」ノードを経て、「INSTAGRAM投稿文生成」「ブログ用旅行記生成」「おすすめポイント・旅行情報生成」へと繋がる並列処理フローが表示されている。右側のプレビュー画面には、入力された横浜山下公園の写真を基に、おすすめスポット5選や旅行者へのアドバイス、140文字以内のX(旧Twitter)投稿文が自動生成されている様子。

7. テスト実行と確認ポイント

横浜・山下公園の写真でテストした場合の確認内容です。

項目入力内容
旅行写真山下公園・バラ×ベイブリッジの写真
旅行先神奈川県横浜市 山下公園
旅の思い出朝早く行ったら人が少なくて最高だった。バラが咲いていて写真を撮りまくった。港を見ながらアイスを食べた
出力言語日本語
旅のスタイル観光・グルメ旅
  • 写真から場所・雰囲気が正確に読み取れているか
  • Instagram本文が150〜250字になっているか
  • 日本語タグ10個・英語タグ10個が揃っているか
  • ブログタイトルが3案出ているか
  • 五感を使った描写が2箇所以上あるか
  • travel_memoのエピソードが本文に溶け込んでいるか
  • X投稿が140文字以内になっているか
  • おすすめポイントが5つ・旅行アドバイス4項目が揃っているか

8. さらに便利にする3つのカスタマイズ

① 多言語対応でインバウンド向けに活用する

output_langに「中国語」「韓国語」を追加することで訪日外国人向けの旅行情報コンテンツを生成できます。観光地・ホテル・飲食店のSNSアカウント運用に最適です。

② 複数写真でアルバム旅行記を生成する

ファイル変数を複数対応にして旅行アルバム全体を分析することで「1日の旅行記」ではなく「旅行全体のまとめ記事」を生成できます。

③ Noteに自動投稿する

Note APIと連携することでブログ旅行記を生成した瞬間に自動でNote記事として下書き保存できます。投稿作業が完全に自動化されます。

9. よくある質問(FAQ)

Q1. どんな旅行写真でも使えますか?

明るく鮮明な写真であれば基本的に何でも使えます。風景・食事・建物・乗り物・人物(顔が写っていないもの)など幅広く対応しています。暗い・ぼやけている写真は解析精度が下がります。

Q2. 旅行先を入力しなくても使えますか?

使えます。destinationが空欄の場合でもAIが写真から場所を推測して分析します。ただし正確な地名を入力した方がより具体的な旅行情報が生成されます。

Q3. ブログ旅行記の文字数を変えられますか?

LLM③のプロンプトの「500〜800文字」の部分を変更するだけで調整できます。短めのコンテンツを作りたい場合は「200〜300文字」・長めの記事を作りたい場合は「1000〜1500文字」に変更してください。

Q4. 英語版の投稿文も同時に生成できますか?

output_langで「日本語+English」を選ぶと日本語と英語の両方が同時に生成されます。国際的なフォロワーを持つ旅行インフルエンサーの方に特に便利です。

10. まとめ

  • 旅行写真1枚でInstagramキャプション・ブログ旅行記・X投稿文・おすすめ5ポイントを全自動生成
  • travel_memoに旅のエピソードを入力するとブログ本文にそのまま自然に溶け込む
  • 五感を使った描写で「行きたい!」と思わせるブログ旅行記が自動生成される
  • 日本語+英語の2言語対応でインバウンド・海外向けSNS発信にも使える
  • 6ブロック構成。手順通りに進めれば20〜30分で完成

旅行後の「写真を投稿できないまま時間が経つ」問題は今日から解決できます。写真を1枚アップして旅の思い出を一言メモするだけで、Instagramにもブログにも投稿できるコンテンツが数分で完成します。
テストで先日行った山下公園の写真をアップしたんですけど、

結構いい出来栄えでビックリしました!アプリ作るのも簡単だったしおすすめです!

次におすすめの記事

【Dify脱エージェント】第21話のGoogle検索と何が違う?Tavilyで作る「全自動ニュース検索マシーン」

xもやってるので良かったら見に来てください

私のエックスです。

次回も是非お楽しみに!

コメント

タイトルとURLをコピーしました