<div dir="rtl">

# 📸 ساخت خودکار عکس‌های حرفه‌ای فارسی با هوش مصنوعی + انتشار در اینستاگرام — نسخه 3.1

ورکفلوی آماده‌ی **n8n** که با هوش مصنوعی **GPT Image 2** عکس‌های حرفه‌ای با **متن فارسی** می‌سازد یا عکس شما را حرفه‌ای ویرایش می‌کند، **کپشن حرفه‌ای** می‌نویسد و به‌صورت پست یا استوری در اینستاگرام منتشر می‌کند. سه بخش دارد:

1. **انتشار فایل آماده** — با یک فرم و فقط **لینک فایل + کپشن**، پست عکس، ریلز، استوری عکس و استوری ویدیو را از طریق API رسمی متا منتشر می‌کند.
2. **ساخت عکس حرفه‌ای فارسی** — موضوع و اطلاعات برند را می‌دهید؛ **GPT Image 2** از طریق **OpenRouter** یک تصویر حرفه‌ای با نوشته‌ی فارسی می‌سازد، کپشن هم نوشته می‌شود و به‌صورت پست یا استوری منتشر می‌شود (یا فقط پیش‌نمایش).
3. **ویرایش عکس شما** — یک عکس ساده (مثلاً عکس محصول با گوشی) می‌دهید و می‌گویید چه تغییری بخواهد؛ هوش مصنوعی آن را حرفه‌ای می‌کند، متن فارسی اضافه می‌کند، کپشن می‌نویسد و منتشر می‌کند.

## ✨ قابلیت‌ها

- 🖼 پست عکس · 🎬 ریلز · 📱 استوری عکس · 📱 استوری ویدیو
- 🔗 تبدیل خودکار لینک **Google Drive** و **Dropbox** به لینک دانلود مستقیم
- ⏳ **صبر هوشمند**: هر ۱۵ ثانیه وضعیت پردازش را چک می‌کند و دقیقاً وقتی فایل آماده شد منتشر می‌کند
- ✅ بررسی کپشن قبل از ارسال: حداکثر ۲۲۰۰ کاراکتر و ۳۰ هشتگ
- ❌ پیام خطای فارسی و واضح اگر اینستاگرام فایل را رد کند
- 🔗 بعد از انتشار، لینک پست را برمی‌گرداند
- 🔒 همکاران فقط لینک فرم را دارند، نه رمز پیج

## ✨ بخش ۲: ساخت تصویر با هوش مصنوعی

فرم **AI Content Form** این فیلدها را دارد:

| فیلد | توضیح |
|---|---|
| قالب | پست (مربع ۱:۱) یا استوری (عمودی ۹:۱۶) |
| موضوع و پیام اصلی | مثلاً «جشنواره ۳۰٪ تخفیف کفش‌های پاییزه تا پایان هفته» |
| متن دقیق روی تصویر | اختیاری؛ اگر خالی باشد، هوش مصنوعی تیتر کوتاه می‌نویسد |
| اطلاعات برند | اختیاری؛ نام برند، رنگ‌ها، شماره تماس، سایت |
| سبک تصویر | مینیمال و مدرن، عکس محصول واقعی، تایپوگرافی پررنگ، تصویرسازی رنگی، لوکس و تیره |
| زبان متن تصویر | فارسی یا English |
| بعد از ساخت | فقط پیش‌نمایش، یا منتشر شود |

**مسیر:**
```
فرم → GPT-5.4 mini (بریف طراحی + تیتر + کپشن) → GPT Image 2 (تصویر JPEG با کیفیت high)
   → آپلود موقت در ImgBB (لینک عمومی برای اینستاگرام، حذف خودکار بعد از ۲۴ ساعت)
   → پیش‌نمایش؟ صفحه‌ی پیش‌نمایش با تصویر و کپشن
   → انتشار؟ همان مسیر انتشار بخش ۱ (کانتینر → صبر هوشمند → انتشار) → صفحه‌ی «منتشر شد» با تصویر و لینک
```

**چرا ImgBB؟** API اینستاگرام فایل را آپلود نمی‌گیرد؛ فقط از یک **لینک عمومی** دانلود می‌کند. تصویر ساخته‌شده باید جایی موقتاً عمومی شود. ImgBB رایگان است، فقط یک کلید می‌خواهد و تصویر را بعد از ۲۴ ساعت خودکار پاک می‌کند.

**اعتبارنامه‌های اضافه:**

| اعتبارنامه | گره‌ها | مقدار |
|---|---|---|
| **Header Auth** با نام «OpenRouter» | AI – Write Brief، AI – Generate Image، AI – Write Edit Brief و AI – Edit Image | Name: `Authorization` / Value: `Bearer sk-or-...` (کلید از [openrouter.ai/keys](https://openrouter.ai/keys)) |
| **Query Auth** با نام «ImgBB» | Upload to ImgBB | Name: `key` / Value: کلید رایگان از [api.imgbb.com](https://api.imgbb.com/) |

> ⚠️ **متن فارسی روی تصویر:** مدل‌های تصویرساز در خط فارسی هنوز گاهی اشتباه می‌کنند. متن کوتاه (۲ تا ۶ کلمه) بدهید و اول با «فقط پیش‌نمایش» امتحان کنید.
>
> 💰 **هزینه:** ساخت تصویر از اعتبار OpenRouter کم می‌شود. هزینه‌ی دقیق هر تصویر در خروجی گره `AI – Generate Image` در فیلد `usage.cost` (دلار) دیده می‌شود.
>
> 🔁 **مدل دیگر:** نام مدل در بدنه‌ی گره‌های AI قابل تغییر است؛ مثلاً اگر مدل جدیدتری از OpenAI در OpenRouter آمد.

## 🪄 بخش ۳: ویرایش عکس با هوش مصنوعی

فرم **AI Edit Form**:

| فیلد | توضیح |
|---|---|
| قالب | پست (۱:۱) یا استوری (۹:۱۶) |
| عکس اولیه | JPG، PNG یا WEBP تا ۲۰ مگابایت |
| چه تغییری می‌خواهید؟ | مثلاً «پس‌زمینه را استودیویی سفید کن، نور حرفه‌ای بده و بالای عکس بنویس ۲۰٪ تخفیف» |
| متن دقیق روی تصویر، اطلاعات برند، زبان متن | اختیاری |
| بعد از ساخت | فقط پیش‌نمایش، یا منتشر شود |

**مسیر:**
```
فرم → تبدیل عکس به Base64 → GPT-5.4 mini (خود عکس را می‌بیند؛ دستور ویرایش دقیق + کپشن)
   → GPT Image 2 با input_references (ویرایش همان عکس، high، JPEG)
   → ImgBB → پیش‌نمایش یا انتشار
```

💡 در دستور بگویید چه چیزی **نباید** عوض شود (مثلاً لوگو، رنگ یا شکل محصول). دستورالعمل داخلی هم به مدل می‌گوید محصول و چهره‌ها را دست نزند.

## 🔁 تفاوت با نسخه‌ی قبلی

| قبل | حالا |
|---|---|
| سؤال «Google Drive هست؟» در فرم | تشخیص خودکار لینک Drive و Dropbox |
| دو مسیر جدا برای پست و ریلز (۱۳ گره) | یک مسیر برای همه‌ی انواع (۱۰ گره) |
| صبر ثابت ۳۰ و ۶۰ ثانیه؛ ریلز طولانی خطا می‌داد | بررسی وضعیت تا آماده شدن (حداکثر ۱۰ دقیقه) |
| شناسه‌ی حساب در ۴ گره جدا | فقط یک جا: گره ⚙️ Settings |
| توکن تکراری داخل پارامترها | فقط در اعتبارنامه |
| فقط پست و ریلز | + استوری عکس و ویدیو |

## 🧭 مسیر ورکفلو

```
فرم → ⚙️ تنظیمات → آماده‌سازی (تبدیل لینک + بررسی)
   → ساخت کانتینر
   → صبر ۱۵ ثانیه → بررسی وضعیت ─┐
        ↑   هنوز آماده نیست ────────┘
        آماده شد → انتشار → لینک پست ✅
        خطا / بیش از ۱۰ دقیقه → پیام خطا ❌
```

---

## 🚀 راه‌اندازی

### ۱. حساب اینستاگرام
حساب باید **Business** یا **Creator** باشد و به یک **Facebook Page** وصل باشد (تنظیمات اینستاگرام ← Account type and tools).

### ۲. اپ متا و توکن
1. در [developers.facebook.com/apps](https://developers.facebook.com/apps) یک اپ از نوع **Business** بسازید و محصول **Instagram** را اضافه کنید.
2. در [Graph API Explorer](https://developers.facebook.com/tools/explorer) اپ را انتخاب کنید و این دسترسی‌ها را بدهید:
   `instagram_basic` · `instagram_content_publish` · `pages_show_list` · `pages_read_engagement` · `business_management`
3. **Generate Access Token** را بزنید.
4. توکن معمولی چند ساعت اعتبار دارد. آن را در [Access Token Debugger](https://developers.facebook.com/tools/debug/accesstoken) با **Extend Access Token** به توکن بلندمدت تبدیل کنید. برای استفاده‌ی دائمی، توکن **System User** در Business Settings بهترین گزینه است.

### ۳. شناسه‌ی حساب اینستاگرام
در Graph API Explorer این درخواست را اجرا کنید:
```
me/accounts?fields=instagram_business_account{id,username}
```
عدد `id` داخل `instagram_business_account` همان شناسه است (معمولاً با 1784 شروع می‌شود).

### ۴. Import و تنظیم
1. فایل `Instagram-Auto-Publisher.json` را در n8n Import کنید.
2. یک اعتبارنامه‌ی **Facebook Graph API** بسازید، توکن را بگذارید و در هر ۴ گره Graph (Create Container، Check Status، Publish و Get Permalink) انتخابش کنید.
3. در گره **⚙️ Settings** مقدار `ig_user_id` را با شناسه‌ی قدم ۳ عوض کنید.

### ۵. فعال‌سازی
ورکفلو را **Active** کنید و **Production URL** هر سه فرم را بوکمارک کنید یا به همکاران بدهید. بعد از ارسال فرم، صفحه تا پایان کار باز می‌ماند و در آخر لینک پست (یا پیش‌نمایش تصویر) را نشان می‌دهد.

---

## 📎 قواعد فایل

| نوع | فرمت | نکته |
|---|---|---|
| پست عکس / استوری عکس | فقط **JPEG** | PNG قبول نمی‌شود |
| ریلز / استوری ویدیو | **MP4** یا **MOV** | ریلز و استوری بهتر است عمودی ۹:۱۶ باشد |
| لینک Google Drive | Anyone with the link | در غیر این صورت اینستاگرام نمی‌تواند فایل را دانلود کند |

## 🛠 عیب‌یابی

| مشکل | راه‌حل |
|---|---|
| «شناسه‌ی حساب اینستاگرام را وارد کنید» | گره ⚙️ Settings را پر کنید. |
| خطای 190 / توکن نامعتبر | توکن منقضی شده؛ توکن جدید بلندمدت یا System User بسازید. |
| خطای 10 یا 200 (Permission) | دسترسی `instagram_content_publish` را به توکن نداده‌اید. |
| «اینستاگرام فایل را قبول نکرد» | فرمت (JPEG / MP4)، عمومی بودن لینک Drive، ابعاد یا حجم فایل را بررسی کنید. |
| فایل Drive دانلود نمی‌شود | اشتراک‌گذاری را روی Anyone with the link بگذارید. |
| بیش از ۱۰ دقیقه طول کشید | ویدیو خیلی سنگین است یا سرور فایل کند است؛ دوباره امتحان کنید. |
| خطای 401 / 402 در گره‌های AI | کلید OpenRouter اشتباه است یا اعتبار حساب OpenRouter تمام شده. |
| متن فارسی روی تصویر خراب است | متن را کوتاه‌تر کنید یا متن روی تصویر را انگلیسی بگذارید و فارسی را در کپشن بنویسید. |
| خطا در Upload to ImgBB | کلید ImgBB را بررسی کنید (Query Auth با نام `key`). |

---

طراحی و آموزش: **مرتضی عظیمی** · [mortezaazimi.ir](https://mortezaazimi.ir) · [اینستاگرام](https://www.instagram.com/mortezaazimi.ir/) · [تلگرام](https://t.me/mortezaazimi75)

</div>
