AutomationFlowsSlack & Telegram › Create Photorealistic Social Media Images with Flux Realism, Lora Models &…

Create Photorealistic Social Media Images with Flux Realism, Lora Models &…

Original n8n title: Create Photorealistic Social Media Images with Flux Realism, Lora Models & Airtable

ByRobert Schröder @saits on n8n.io

This n8n workflow automates the creation of photorealistic AI-generated images for social media content. The workflow uses RunComfy (ComfyUI cloud service) combined with Airtable for data management to create high-quality images based on custom prompts and LoRa models.

Event trigger★★★★☆ complexity24 nodesHTTP RequestAirtableTelegram
Slack & Telegram Trigger: Event Nodes: 24 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #7578 — we link there as the canonical source.

This workflow follows the Airtable → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "nodes": [
    {
      "id": "487b3efd-b3ae-4a8d-aaf9-e98674172c86",
      "name": "Status Check2",
      "type": "n8n-nodes-base.if",
      "position": [
        2512,
        304
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "status-check",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ Object.keys($json)[0] && $json[Object.keys($json)[0]].status ? $json[Object.keys($json)[0]].status.status_str : 'processing' }}",
              "rightValue": "success"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "5eba717a-9415-449c-91b6-97845ccab7c6",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1392,
        304
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "0822b74c-3e44-4da1-84c0-6b8c9020c2ab",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        1168,
        304
      ],
      "parameters": {
        "jsCode": "// Server ID aus dem RunComfy Start Server FluxRealism2 Node abrufen\nconst serverData = $node[\"RunComfy Start Server\"].json;\nconst serverId = serverData.server_id;\n\n// Loop \u00fcber alle gefilterten Items und server_id hinzuf\u00fcgen\nfor (const item of $input.all()) {\n  item.json.server_id = serverId;\n}\n\nreturn $input.all();"
      },
      "typeVersion": 2
    },
    {
      "id": "b17b3784-6e7b-4761-8535-843b04b8c5a9",
      "name": "ComfyUI Actual Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2288,
        224
      ],
      "parameters": {
        "url": "=https://{{ $('Set RunComfy Parameter').item.json.server_id }}-comfyui.runcomfy.com/history/{{ $('RunComfyFluxRealism').item.json.prompt_id }}",
        "options": {
          "timeout": 30000
        },
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "2ae7dd46-77e6-4545-a301-675cdfa515bd",
      "name": "RunComfyFluxRealism",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1840,
        304
      ],
      "parameters": {
        "url": "=https://{{ $json.server_id }}-comfyui.runcomfy.com/prompt",
        "options": {
          "timeout": 300000
        },
        "requestMethod": "POST",
        "authentication": "genericCredentialType",
        "jsonParameters": true,
        "genericAuthType": "httpHeaderAuth",
        "bodyParametersJson": "={\n  \"prompt\": {\n    \"12\": {\n      \"inputs\": {\n        \"unet_name\": \"flux/flux1-dev.sft\",\n        \"weight_dtype\": \"fp8_e4m3fn\"\n      },\n      \"class_type\": \"UNETLoader\"\n    },\n    \"11\": {\n      \"inputs\": {\n        \"clip_name1\": \"sd3m/t5xxl_fp16.safetensors\",\n        \"clip_name2\": \"sd3m/clip_l.safetensors\",\n        \"type\": \"flux\"\n      },\n      \"class_type\": \"DualCLIPLoader\"\n    },\n    \"10\": {\n      \"inputs\": {\n        \"vae_name\": \"flux/ae.safetensors\"\n      },\n      \"class_type\": \"VAELoader\"\n    },\n    \"70\": {\n      \"inputs\": {\n        \"int\": 832\n      },\n      \"class_type\": \"Int Literal\"\n    },\n    \"71\": {\n      \"inputs\": {\n        \"int\": 1216\n      },\n      \"class_type\": \"Int Literal\"\n    },\n    \"5\": {\n      \"inputs\": {\n        \"width\": [\"70\", 0],\n        \"height\": [\"71\", 0],\n        \"batch_size\": 1\n      },\n      \"class_type\": \"EmptyLatentImage\"\n    },\n    \"25\": {\n      \"inputs\": {\n        \"noise_seed\": {{ Math.floor(Math.random() * 9999999999) }}\n      },\n      \"class_type\": \"RandomNoise\"\n    },\n    \"28\": {\n      \"inputs\": {\n        \"string\": \"{{ $json.positive_prompt }}\"\n      },\n      \"class_type\": \"String Literal\"\n    },\n    \"73\": {\n  \"inputs\": {\n    \"PowerLoraLoaderHeaderWidget\": {\n      \"type\": \"PowerLoraLoaderHeaderWidget\"\n    },\n    \"lora_1\": {\n      \"on\": true,\n      \"lora\": \"flux/realism_lora.safetensors\",\n      \"strength\": 1\n    },\n    \"lora_2\": {\n      \"on\": true,\n      \"lora\": \"{{ $json.lora_name }}\",\n      \"strength\": 1\n    },\n    \"\u2795 Add Lora\": \"\",\n    \"model\": [\"12\", 0]\n  },\n  \"class_type\": \"Power Lora Loader (rgthree)\"\n},\n    \"6\": {\n      \"inputs\": {\n        \"text\": [\"28\", 0],\n        \"clip\": [\"11\", 0]\n      },\n      \"class_type\": \"CLIPTextEncode\"\n    },\n    \"60\": {\n      \"inputs\": {\n        \"conditioning\": [\"6\", 0],\n        \"guidance\": 2\n      },\n      \"class_type\": \"FluxGuidance\"\n    },\n    \"61\": {\n      \"inputs\": {\n        \"model\": [\"73\", 0],\n        \"width\": [\"70\", 0],\n        \"height\": [\"71\", 0],\n        \"shift\": 0.5,\n        \"base_shift\": 0.3,\n        \"max_shift\": 1.15\n      },\n      \"class_type\": \"ModelSamplingFlux\"\n    },\n    \"16\": {\n      \"inputs\": {\n        \"sampler_name\": \"euler\"\n      },\n      \"class_type\": \"KSamplerSelect\"\n    },\n    \"17\": {\n      \"inputs\": {\n        \"model\": [\"61\", 0],\n        \"scheduler\": \"simple\",\n        \"steps\": 35,\n        \"denoise\": 1\n      },\n      \"class_type\": \"BasicScheduler\"\n    },\n    \"22\": {\n      \"inputs\": {\n        \"model\": [\"61\", 0],\n        \"conditioning\": [\"60\", 0]\n      },\n      \"class_type\": \"BasicGuider\"\n    },\n    \"13\": {\n      \"inputs\": {\n        \"noise\": [\"25\", 0],\n        \"guider\": [\"22\", 0],\n        \"sampler\": [\"16\", 0],\n        \"sigmas\": [\"17\", 0],\n        \"latent_image\": [\"5\", 0]\n      },\n      \"class_type\": \"SamplerCustomAdvanced\"\n    },\n    \"8\": {\n      \"inputs\": {\n        \"samples\": [\"13\", 0],\n        \"vae\": [\"10\", 0]\n      },\n      \"class_type\": \"VAEDecode\"\n    },\n    \"9\": {\n      \"inputs\": {\n        \"filename_prefix\": \"{{ $json.Filename }}\",\n        \"images\": [\"8\", 0]\n      },\n      \"class_type\": \"SaveImage\"\n    }\n  },\n  \"client_id\": \"{{ $json.server_id }}\"\n}",
        "headerParametersJson": "{\n  \"Content-Type\": \"application/json\"\n}"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "2531cb53-4be4-4d11-bd53-3eee1830b6aa",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -176,
        -112
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "778c2ee6-96ac-43b6-b841-ffeab3c7d167",
      "name": "Get RunComfy Workflows",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        256,
        -112
      ],
      "parameters": {
        "url": "=https://beta-api.runcomfy.net/prod/api/users/{{ $json.user_id }}/workflows ",
        "options": {},
        "authentication": "genericCredentialType",
        "jsonParameters": true,
        "genericAuthType": "httpHeaderAuth",
        "headerParametersJson": "="
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "aac8df53-db0b-4857-8fe5-0888db7062f3",
      "name": "RunComfy Start Server",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        48,
        304
      ],
      "parameters": {
        "url": "=https://beta-api.runcomfy.net/prod/api/users/{{ $json.user_id }}/servers",
        "options": {},
        "requestMethod": "POST",
        "authentication": "genericCredentialType",
        "jsonParameters": true,
        "genericAuthType": "httpHeaderAuth",
        "bodyParametersJson": "={\n    \"estimated_duration\": 600,\n    \"server_type\": \"large\",\n    \"workflow_version_id\": \"{{ $json.workflow_version_id }}\"\n}"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "56162819-dbab-4821-907e-11599aa5874d",
      "name": "Check Server Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        496,
        224
      ],
      "parameters": {
        "url": "=https://beta-api.runcomfy.net/prod/api/users/{{ $('User and Workflow Version ID').item.json.user_id }}/servers/{{ $('RunComfy Start Server').item.json.server_id }}",
        "options": {},
        "authentication": "genericCredentialType",
        "jsonParameters": true,
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "8e83f9cb-56c9-49b5-8da6-ccff242e4a46",
      "name": "Search All Records from Airtable",
      "type": "n8n-nodes-base.airtable",
      "position": [
        944,
        304
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appwOUIeUYM3o14eJ",
          "cachedResultUrl": "https://airtable.com/appwOUIeUYM3o14eJ",
          "cachedResultName": "BYF "
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblqZvzWYj6TFVjmi",
          "cachedResultUrl": "https://airtable.com/appwOUIeUYM3o14eJ/tblqZvzWYj6TFVjmi",
          "cachedResultName": "Social Media Content Rep"
        },
        "options": {},
        "operation": "search"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "e95b310a-7537-495c-8270-295be3e3b6be",
      "name": "Server Ready Check",
      "type": "n8n-nodes-base.if",
      "position": [
        720,
        304
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "604e2e7a-cb8b-428c-bbc2-d2455c378d62",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.current_status }}",
              "rightValue": "Ready"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "dcf3d565-6141-42e7-9211-4d5c70b7815c",
      "name": "Wait for Server",
      "type": "n8n-nodes-base.wait",
      "position": [
        272,
        304
      ],
      "parameters": {
        "amount": 50
      },
      "typeVersion": 1.1
    },
    {
      "id": "3f8f49a2-7a25-484d-86b2-8ebf39b13bea",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        80
      ],
      "parameters": {
        "width": 288,
        "height": 608,
        "content": "## Server-Node\n\nPlease put in the body parameter:\n1. WOKFLOW SERVER ID\n2. TIME to RUN (length) in seconds\n3. Size of the server: minimum medium: select better large or bigger"
      },
      "typeVersion": 1
    },
    {
      "id": "82f8f379-b7c3-4634-9c61-75f967879e3e",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        80
      ],
      "parameters": {
        "height": 608,
        "content": "## Link your Airtable database\n1. necessary input data: pose_1 - Tell here what the picture is about\n2. exact Character LoRa Name for Flux Realism (must be uploaded to RunComfy)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e1c5b201-11af-469c-a216-8e21c44baa32",
      "name": "Delete RunComfy Server",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1616,
        112
      ],
      "parameters": {
        "url": "=https://beta-api.runcomfy.net/prod/api/users/{{ $('User and Workflow Version ID').item.json.user_id }}/servers/{{ $('Collect Drive Links').first().json.server_id }}",
        "options": {},
        "requestMethod": "DELETE",
        "authentication": "genericCredentialType",
        "jsonParameters": true,
        "genericAuthType": "httpHeaderAuth",
        "headerParametersJson": "{\n  \"x-api-key\": \"498aaaec-fb91-4a76-b479-0dbcd20dbdba\"\n}"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "bc256518-d236-4002-9d4b-35f24368964f",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1008,
        64
      ],
      "parameters": {
        "color": 4,
        "width": 448,
        "height": 608,
        "content": "## Informormation RUNCOMFY Workflow to create Photorealistic \n\nSet up:\n1. RunComfy Membership \n2. Airtable Account\n\nATTENTION:\n\nPlease make sure to have an eye on the Server. \nDelete the server manually to save money, if the workflow is not running smoothly in the beginning.\n\nIf you need help, feel free to ask me:\nhello@saits.ai\nI can implement for you every workflow you want with runcomfy. Also multi LoRa model bases and much more. This here is the easiest way to create Photos of your character. \n\nAsk me also for Videos, Carousels and so on.\n\nTake Flux Realism for this workflow from RunComfy and safe it to you Workflow library, also add the node rgthree to the Workflow, otherwise the workflow will crash. Make sure to upload your LoRa to runcomfy as well.\n\nPlease link your Credentials for RunComfy, Airtable and Telegram in every node. \n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "08b085fb-07d3-4305-9c95-b1ac81436f17",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -432,
        304
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "df89aae7-9437-4eb6-a6fe-d78b0f8c9764",
      "name": "Update Airtable Record",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2960,
        368
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appwOUIeUYM3o14eJ",
          "cachedResultUrl": "https://airtable.com/appwOUIeUYM3o14eJ",
          "cachedResultName": "BYF "
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblqZvzWYj6TFVjmi",
          "cachedResultUrl": "https://airtable.com/appwOUIeUYM3o14eJ/tblqZvzWYj6TFVjmi",
          "cachedResultName": "Social Media Content Rep"
        },
        "columns": {
          "value": {
            "id": "={{ $('Switch6').item.json.id }}",
            "Model": "=",
            "Bilder erstellt": "BIld 1 erstellt",
            "pose_1_drive_fotolink": "={{ $json.pose_1_drive_fotolink }}",
            "pose_2_drive_fotolink": "=",
            "pose_3_drive_fotolink": "=",
            "reel_concept_drive_fotolink": "="
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "topic",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "topic",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Model",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Claire Valentines",
                  "value": "Claire Valentines"
                },
                {
                  "name": "Lady Linn",
                  "value": "Lady Linn"
                },
                {
                  "name": "Chloe",
                  "value": "Chloe"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Model",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Zeitpunkt der Erstellung",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "Zeitpunkt der Erstellung",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "pose_1",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "pose_1",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "pose_2",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "pose_2",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "pose_3",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "pose_3",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "reel_concept",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "reel_concept",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "caption_bait",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "caption_bait",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Drive Ordnerlink",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Drive Ordnerlink",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "pose_1_drive_fotolink",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "pose_1_drive_fotolink",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "pose_2_drive_fotolink",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "pose_2_drive_fotolink",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "pose_3_drive_fotolink",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "pose_3_drive_fotolink",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "reel_concept_drive_fotolink",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "reel_concept_drive_fotolink",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "pose_1_foto",
              "type": "array",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "pose_1_foto",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "pose_2_foto",
              "type": "array",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "pose_2_foto",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "pose_3_foto",
              "type": "array",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "pose_3_foto",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "reel_concept_video",
              "type": "array",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "reel_concept_video",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Bilder erstellt",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Zusatzbilder erstellt",
                  "value": "Zusatzbilder erstellt"
                },
                {
                  "name": "BIld 1 erstellt",
                  "value": "BIld 1 erstellt"
                },
                {
                  "name": "Alle Bilder + Reel erstellt",
                  "value": "Alle Bilder + Reel erstellt"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Bilder erstellt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Pr\u00fcfung",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "1. Pr\u00fcfung Robert Bilder",
                  "value": "1. Pr\u00fcfung Robert Bilder"
                },
                {
                  "name": "2. Pr\u00fcfung Patrizia",
                  "value": "2. Pr\u00fcfung Patrizia"
                },
                {
                  "name": "3. Pr\u00fcfung Patrizia inkl. Insta",
                  "value": "3. Pr\u00fcfung Patrizia inkl. Insta"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Pr\u00fcfung",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "instagram_content",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "instagram_content",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "status_publish",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "ready_to_publish",
                  "value": "ready_to_publish"
                },
                {
                  "name": "published",
                  "value": "published"
                },
                {
                  "name": "Reel Post Only",
                  "value": "Reel Post Only"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "status_publish",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Publish Date",
              "type": "dateTime",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Publish Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "e85803a8-ccb5-4c2d-aed4-ec7de368b84e",
      "name": "Download Generated Image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2736,
        304
      ],
      "parameters": {
        "url": "=https://{{ $('Set RunComfy Parameter').item.json.server_id }}-comfyui.runcomfy.com/view?filename={{ Object.values(Object.values($json)[0].outputs)[0].images[0].filename }}&subfolder=&type=output",
        "options": {},
        "authentication": "genericCredentialType",
        "responseFormat": "file",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "6bc1be41-44dc-43f9-9a52-7b1eea270969",
      "name": "Wait for Prompt",
      "type": "n8n-nodes-base.wait",
      "position": [
        2064,
        304
      ],
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "947e2b4b-6f02-494b-a273-9c35831e2e94",
      "name": "Set RunComfy Parameter",
      "type": "n8n-nodes-base.set",
      "position": [
        1616,
        304
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "param-positive-prompt",
              "name": "positive_prompt",
              "type": "string",
              "value": "={{ $json.Prompt }}. {{ $('Switch6').item.json.pose_1 }}"
            },
            {
              "id": "param-lora-name",
              "name": "lora_name",
              "type": "string",
              "value": "={{ $json['LoRa Name Flux'] }}"
            },
            {
              "id": "bc6fcfc3-2cda-4132-b4e7-8092dddfb7c8",
              "name": "server_id",
              "type": "string",
              "value": "={{ $('Code').item.json.server_id }}"
            },
            {
              "id": "695e9164-0d86-4905-9439-108af6d50396",
              "name": "Model",
              "type": "string",
              "value": "={{ $json.Name }}"
            },
            {
              "id": "94cc10ef-dcec-4ac9-bc99-c6d62df0ddac",
              "name": "Filename",
              "type": "string",
              "value": "={{ $json.Name.trim().split(/\\s+/).length > 1 ? $json.Name.trim().split(/\\s+/).slice(0, 2).join('_') : $json.Name.trim() }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "d863933e-a0fb-4daa-b6a2-61e65062318f",
      "name": "Final message",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1840,
        112
      ],
      "parameters": {
        "text": "=BILDER ERSTELLT: {{ $('Limit 1').item.json.fields.topic }} ",
        "chatId": "123456789",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "f1c7b116-e716-42f1-8d0e-83f673b7fcda",
      "name": "User ID",
      "type": "n8n-nodes-base.set",
      "position": [
        32,
        -112
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "9bb5699c-eb56-4be8-a881-015aa5a7f3d1",
              "name": "user_id",
              "type": "string",
              "value": "< User ID>"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "36525d85-ecff-4bad-9132-04d5d1b9418c",
      "name": "User and Workflow Version ID",
      "type": "n8n-nodes-base.set",
      "position": [
        -208,
        304
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "9bb5699c-eb56-4be8-a881-015aa5a7f3d1",
              "name": "user_id",
              "type": "string",
              "value": "< User ID>"
            },
            {
              "id": "0de00e1a-5ded-4378-8a26-85f6543c47e4",
              "name": "workflow_version_id",
              "type": "string",
              "value": "<Version ID>"
            }
          ]
        }
      },
      "typeVersion": 3.4
    }
  ],
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "User ID": {
      "main": [
        [
          {
            "node": "Get RunComfy Workflows",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Status Check2": {
      "main": [
        [
          {
            "node": "Download Generated Image",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait for Prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Delete RunComfy Server",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set RunComfy Parameter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait for Prompt": {
      "main": [
        [
          {
            "node": "ComfyUI Actual Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait for Server": {
      "main": [
        [
          {
            "node": "Check Server Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "User and Workflow Version ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Server Ready Check": {
      "main": [
        [
          {
            "node": "Search All Records from Airtable",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait for Server",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Server Status": {
      "main": [
        [
          {
            "node": "Server Ready Check",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RunComfyFluxRealism": {
      "main": [
        [
          {
            "node": "Wait for Prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ComfyUI Actual Status": {
      "main": [
        [
          {
            "node": "Status Check2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RunComfy Start Server": {
      "main": [
        [
          {
            "node": "Wait for Server",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Delete RunComfy Server": {
      "main": [
        [
          {
            "node": "Final message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set RunComfy Parameter": {
      "main": [
        [
          {
            "node": "RunComfyFluxRealism",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Airtable Record": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Generated Image": {
      "main": [
        [
          {
            "node": "Update Airtable Record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "User and Workflow Version ID": {
      "main": [
        [
          {
            "node": "RunComfy Start Server",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search All Records from Airtable": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "User ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This n8n workflow automates the creation of photorealistic AI-generated images for social media content. The workflow uses RunComfy (ComfyUI cloud service) combined with Airtable for data management to create high-quality images based on custom prompts and LoRa models.

Source: https://n8n.io/workflows/7578/ — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

This n8n workflow receives files sent in a Telegram chat, uploads them to Google Drive, extracts text using OCR (for images and PDFs), and stores the extracted content in Airtable for quick search and

Telegram Trigger, Telegram, Google Drive +2
Slack & Telegram

N8N Complete Final. Uses telegramTrigger, dataTable, telegram, mqtt. Event-driven trigger; 58 nodes.

Telegram Trigger, Data Table, Telegram +3
Slack & Telegram

TextMain. Uses telegramTrigger, stopAndError, telegram, httpRequest. Event-driven trigger; 56 nodes.

Telegram Trigger, Stop And Error, Telegram +2
Slack & Telegram

Pede Ai. Uses httpRequest, telegram, postgres, telegramTrigger. Event-driven trigger; 53 nodes.

HTTP Request, Telegram, Postgres +1
Slack & Telegram

📄 Documentation: Notion Guide

Telegram Trigger, @Blotato/N8N Nodes Blotato, Telegram +1