Crear historias emocionales usando Gemini AI: generar imágenes y prompts JSON de Veo3

Avanzado

Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 35 nodos.Utiliza principalmente nodos como If, Set, Code, Wait, Limit. Usar Gemini AI para crear historias con emociones: generar imágenes y indicaciones JSON para Veo3

Requisitos previos
  • Credenciales de API de Google Drive
  • Credenciales de API de Google Sheets
  • Clave de API de Google Gemini
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "meta": {
    "instanceId": "aa8f1cf0c4d8087e25a2eea962da249799481d2fb992314793977a97a5e71d77"
  },
  "nodes": [
    {
      "id": "8f6d83d3-4eb2-4331-b1d7-54b083c91221",
      "name": "Nota adhesiva7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -928,
        -80
      ],
      "parameters": {
        "color": 5,
        "width": 528,
        "height": 640,
        "content": "## Muhammad Farooq Iqbal - Automation Expert & n8n Creator\n\nI am a passionate automation expert and recognized n8n Creator specializing in intelligent workflow automation. With extensive experience in n8n, AI automation, Zapier, and Make.com, I have created innovative workflow templates with 500+ downloads across the global automation community\n\n### Expertise\n- **Workflow Automation**: n8n, Zapier, Make.com, AI automation\n- **AI Integration**: Gemini AI, API integration, data processing\n- **Platform Mastery**: Google Sheets, Google Drive, custom scripts\n\n## Need Help with This Workflow?\n\nIf you face any issues with this workflow or need customization support, feel free to reach out:\n\n**📧 Email**: mfarooqiqbal143@gmail.com  \n**📱 Phone**: +923036991118  \n**💼 LinkedIn**: [Connect with me](https://linkedin.com/in/muhammadfarooqiqbal)  \n**🌐 Portfolio**: [View my work](https://mfarooqone.github.io/n8n/)\n\n*I'm always excited to help with automation challenges and workflow optimization!*\n"
      },
      "typeVersion": 1
    },
    {
      "id": "d57e5004-7c16-4159-ba6f-8144da450e6c",
      "name": "Al hacer clic en 'Ejecutar flujo de trabajo'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        208,
        32
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "c266998e-0003-4ca7-af61-f081d109ecef",
      "name": "Si3",
      "type": "n8n-nodes-base.if",
      "position": [
        384,
        912
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "bc74b0c2-aa46-4bcd-91f3-1eb6b0720167",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.Status }}",
              "rightValue": "pending"
            }
          ]
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2
    },
    {
      "id": "ee5e4ada-04e7-409d-8e83-a816b7aafea2",
      "name": "Crear carpeta",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        816,
        32
      ],
      "parameters": {
        "name": "={{ $json.output.folder_name }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1GND1exvlAXTzESNvWmFs6FFMx90KLzlC",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1GND1exvlAXTzESNvWmFs6FFMx90KLzlC",
          "cachedResultName": "prompt"
        },
        "resource": "folder"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "1Bnhm02w1dxE4FO6",
          "name": "Farooq Google Drive account"
        }
      },
      "retryOnFail": true,
      "typeVersion": 3
    },
    {
      "id": "c4a016f9-cbe2-4d5a-8b69-1af4fd66da8d",
      "name": "Json parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        624,
        160
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"folder_name\": \"folder name\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "871f8261-49ff-4174-836c-9e4331b59c30",
      "name": "Nombre de la carpeta",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        480,
        -16
      ],
      "parameters": {
        "text": "=",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=Act as a folder name suggistions \nSuggest a folder name for a emotional story\nalways give rendom name with time stamp"
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 1.7
    },
    {
      "id": "6031fed3-e65b-489c-8cfa-efa85a9df4bb",
      "name": "Actualizar fila en hoja",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1808,
        912
      ],
      "parameters": {
        "columns": {
          "value": {
            "Status": "created",
            "Image Url": "={{ $json.id }}",
            "row_number": "={{ $('Rows in sheet').item.json.row_number }}",
            "Updated Prompt": "={{ $('Prompt converter1').item.json.output }}"
          },
          "schema": [
            {
              "id": "Scene",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Scene",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Character Prompt",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Character Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Action Prompt",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Action Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Voice Line (Roman Urdu)",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Voice Line (Roman Urdu)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Updated Prompt",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Updated Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image Url",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Image Url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create sheet').item.json.sheetId }}"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1k_0n-hFW8WRvNSW4izC5UdTA8KtO0VAOvuwlWkRsdPo",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1k_0n-hFW8WRvNSW4izC5UdTA8KtO0VAOvuwlWkRsdPo/edit?usp=drivesdk",
          "cachedResultName": "Scenes Yusra"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "bAnK8T185A3Wr7Kj",
          "name": "Google Sheets account"
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.7
    },
    {
      "id": "9f210c25-961b-4a46-9c47-1c02f6c8d716",
      "name": "Generar una imagen",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        1328,
        912
      ],
      "parameters": {
        "prompt": "={{ $json.output.prompt }} {{ $json.output.negative_prompt }} {{ $json.output.aspect_ratio }} {{ $json.output.camera_movement }} {{ $json.output.style }} {{ $json.output.quality }} {{ $json.output.seed }} {{ $json.output.fps }} {{ $json.output.resolution }} {{ $json.output.lighting }} {{ $json.output.mood }} {{ $json.output.mood }} {{ $json.output.color_palette }} {{ $json.output.subject_focus }} {{ $json.output.background }} {{ $json.output.effects }} ",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.0-flash-exp-image-generation",
          "cachedResultName": "models/gemini-2.0-flash-exp-image-generation"
        },
        "options": {},
        "resource": "image"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "qzXOJEaYeexWZRUf",
          "name": "new key"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1
    },
    {
      "id": "4fc42e92-5ab7-4ddc-a263-8242137dc50f",
      "name": "Subir archivo",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1536,
        912
      ],
      "parameters": {
        "name": "=s_{{ $('Rows in sheet').item.json.Scene }}.{{ $json.fileExtension || 'png' }}\n\n",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive",
          "cachedResultUrl": "https://drive.google.com/drive/my-drive",
          "cachedResultName": "My Drive"
        },
        "options": {
          "simplifyOutput": true
        },
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1GND1exvlAXTzESNvWmFs6FFMx90KLzlC",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1GND1exvlAXTzESNvWmFs6FFMx90KLzlC",
          "cachedResultName": "prompt"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "1Bnhm02w1dxE4FO6",
          "name": "Farooq Google Drive account"
        }
      },
      "retryOnFail": true,
      "typeVersion": 3
    },
    {
      "id": "1a8ed5d0-1d5f-4010-9377-7ff890ddaf77",
      "name": "Límite",
      "type": "n8n-nodes-base.limit",
      "position": [
        608,
        896
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 1
    },
    {
      "id": "b755de9c-57aa-441c-b1c3-a13b52596677",
      "name": "Json parser2",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1168,
        976
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"prompt\": \"detailed scene description\",\n  \"negative_prompt\": \"elements to avoid\",\n  \"aspect_ratio\": \"width:height ratio\",\n  \"camera_movement\": \"camera motion type\",\n  \"style\": \"visual style/genre\",\n  \"quality\": \"output quality setting\",\n  \"motion_intensity\": \"low/medium/high\",\n  \"seed\": \"random seed for reproducibility\",\n  \"fps\": \"frames per second\",\n  \"resolution\": \"video resolution\",\n  \"lighting\": \"lighting conditions\",\n  \"mood\": \"overall mood/atmosphere\",\n  \"color_palette\": \"dominant colors\",\n  \"subject_focus\": \"main subject details\",\n  \"background\": \"background description\",\n  \"effects\": \"special effects to include\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "4e5d22f1-f548-4731-bc4a-9241806096b6",
      "name": "Convertidor de prompt1",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1024,
        816
      ],
      "parameters": {
        "text": "={{ $json[\"Character Prompt\"] }} - {{ $json[\"Action Prompt\"] }}",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=# Veo 3 Video Generation JSON Converter System Prompt\n\nYou are a specialized AI assistant that converts natural language descriptions into structured JSON format optimized for Veo 3 video generation. Your primary function is to transform user input into a comprehensive JSON prompt that maximizes the quality and accuracy of generated videos.\n\n## Core Instructions\n\n1. **Always respond in valid JSON format only**\n2. **Never include explanatory text outside the JSON structure**\n3. **Extract and structure all relevant video generation parameters from user input**\n4. **Fill in reasonable defaults for missing parameters**\n5. **Ensure all JSON keys and values follow Veo 3 specifications**\n\n## JSON Structure Template\n\n```json\n{\n  \"prompt\": \"detailed scene description\",\n  \"negative_prompt\": \"elements to avoid\",\n  \"aspect_ratio\": \"width:height ratio\",\n  \"camera_movement\": \"camera motion type\",\n  \"style\": \"visual style/genre\",\n  \"quality\": \"output quality setting\",\n  \"motion_intensity\": \"low/medium/high\",\n  \"seed\": \"random seed for reproducibility\",\n  \"fps\": \"frames per second\",\n  \"resolution\": \"video resolution\",\n  \"lighting\": \"lighting conditions\",\n  \"mood\": \"overall mood/atmosphere\",\n  \"color_palette\": \"dominant colors\",\n  \"subject_focus\": \"main subject details\",\n  \"background\": \"background description\",\n  \"effects\": \"special effects to include\"\n}\n```\n\n## Parameter Guidelines\n\n### Prompt Construction\n- Create detailed, cinematic descriptions\n- Include specific visual elements, actions, and compositions\n- Use descriptive adjectives for style and mood\n- Specify camera angles and movements when relevant\n- Include temporal elements (time of day, season, etc.)\n\n### Default Values\n- **duration**: \"5\" (seconds)\n- **aspect_ratio**: \"16:9\"\n- **quality**: \"high\"\n- **fps**: \"24\"\n- **resolution**: \"1080p\"\n- **motion_intensity**: \"medium\"\n\n### Camera Movements\n- static, pan_left, pan_right, tilt_up, tilt_down, zoom_in, zoom_out, dolly_forward, dolly_backward, orbit, handheld, smooth_tracking\n\n### Style Options\n- cinematic, documentary, animation, vintage, modern, artistic, realistic, stylized, noir, vibrant, minimalist\n\n### Aspect Ratios\n- 16:9 (landscape), 9:16 (portrait), 1:1 (square), 21:9 (ultra-wide), 4:3 (classic)\n\n## Processing Rules\n\n1. **Analyze Input**: Extract key elements like subjects, actions, settings, mood, style preferences\n2. **Enhance Description**: Expand brief descriptions into detailed, cinematic prompts\n3. **Set Parameters**: Choose appropriate technical settings based on content type\n4. **Optimize for Veo 3**: Structure prompt for maximum model comprehension\n5. **Include Negatives**: Add relevant negative prompts to avoid unwanted elements\n\n## Example Transformations\n\n**User Input**: \"A cat playing in the garden\"\n**Output**:\n```json\n{\n  \"prompt\": \"A playful orange tabby cat chasing a butterfly in a sunlit garden, lush green grass, colorful flowers blooming, warm golden hour lighting, shallow depth of field, natural movement\",\n  \"negative_prompt\": \"blurry, low quality, distorted, unnatural movement\",\n  \"aspect_ratio\": \"16:9\",\n  \"camera_movement\": \"smooth_tracking\",\n  \"style\": \"cinematic\",\n  \"quality\": \"high\",\n  \"motion_intensity\": \"medium\",\n  \"fps\": \"24\",\n  \"resolution\": \"1080p\",\n  \"lighting\": \"golden_hour\",\n  \"mood\": \"cheerful\",\n  \"color_palette\": \"warm_natural_tones\"\n}\n```\n\n## Important Notes\n\n- Always output valid JSON only\n- Never explain your reasoning outside the JSON\n- If input is unclear, make reasonable assumptions\n- Prioritize visual storytelling in prompt construction\n- Consider technical limitations of video generation\n- Optimize for realistic and achievable results\n\n## Quality Checklist\n\nBefore outputting JSON, ensure:\n- [ ] Prompt is detailed and descriptive\n- [ ] All technical parameters are appropriate\n- [ ] Negative prompt prevents common issues\n- [ ] JSON syntax is valid\n- [ ] All required fields are present\n- [ ] Values match expected formats"
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 1.7
    },
    {
      "id": "d9094fa4-f4aa-4f9a-9948-a8cea2213f21",
      "name": "Mover archivo",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        640,
        1328
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json['Image Url'] }}"
        },
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive",
          "cachedResultUrl": "https://drive.google.com/drive/my-drive",
          "cachedResultName": "My Drive"
        },
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create folder').item.json.id }}"
        },
        "operation": "move"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "1Bnhm02w1dxE4FO6",
          "name": "Farooq Google Drive account"
        }
      },
      "retryOnFail": true,
      "typeVersion": 3
    },
    {
      "id": "eb8dc23f-757a-4edc-83f8-e68d3cb0b010",
      "name": "Si",
      "type": "n8n-nodes-base.if",
      "position": [
        400,
        1344
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "bc74b0c2-aa46-4bcd-91f3-1eb6b0720167",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.Status }}",
              "rightValue": "created"
            }
          ]
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2
    },
    {
      "id": "4eed5ff1-d6f7-48fb-9a97-5dd38204deab",
      "name": "Actualizar movimiento",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        816,
        1328
      ],
      "parameters": {
        "columns": {
          "value": {
            "Status": "moved",
            "row_number": "={{ $('Rows in sheet').item.json.row_number }}"
          },
          "schema": [
            {
              "id": "Scene",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Scene",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Character Prompt",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Character Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Action Prompt",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Action Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Voice Line (Roman Urdu)",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Voice Line (Roman Urdu)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Updated Prompt",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Updated Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image Url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Image Url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create sheet').item.json.sheetId }}"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1k_0n-hFW8WRvNSW4izC5UdTA8KtO0VAOvuwlWkRsdPo",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1k_0n-hFW8WRvNSW4izC5UdTA8KtO0VAOvuwlWkRsdPo/edit?usp=drivesdk",
          "cachedResultName": "Scenes Yusra"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "bAnK8T185A3Wr7Kj",
          "name": "Google Sheets account"
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.7
    },
    {
      "id": "239f6485-6e0f-43bf-bc93-b1e9bf660b33",
      "name": "Creador de historias",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        384,
        432
      ],
      "parameters": {
        "text": "=",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=You act like a emotional story creator \nstory contains 5 scenes \nand a character which should be a pakistani girl age between 20 to 25 years old, in desi dress, named Yusra"
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": false,
      "typeVersion": 1.7
    },
    {
      "id": "d3aca0c9-b547-4489-a28a-4489c370b022",
      "name": "Json parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        608,
        608
      ],
      "parameters": {
        "jsonSchemaExample": " [\n    {\n      \"character_prompt\": \"character according to scene 1\",\n      \"action_prompt\": \"Scene 1\"\n    },\n    {\n      \"character_prompt\": \"character according to scene 2\",\n      \"action_prompt\": \"Scene 2\"\n    },\n    {\n      \"character_prompt\": \"character according to scene 3\",\n      \"action_prompt\": \"Scene 3\"\n    },\n    {\n      \"character_prompt\": \"character according to scene 4\",\n      \"action_prompt\": \"Scene 4\"\n    },\n    {\n      \"character_prompt\": \"character according to scene 5\",\n      \"action_prompt\": \"5\"\n    }\n  ]\n\n"
      },
      "typeVersion": 1.3
    },
    {
      "id": "f41101ea-1774-4560-96a4-9033b10292ae",
      "name": "Añadir fila en hoja",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1232,
        480
      ],
      "parameters": {
        "columns": {
          "value": {
            "Scene": "Scene",
            "Status": "pending",
            "Action Prompt": "={{ $json.scene.action_prompt }}",
            "Character Prompt": "={{ $json.scene.character_prompt }}"
          },
          "schema": [
            {
              "id": "Scene",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Scene",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Character Prompt",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Character Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Action Prompt",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Action Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Updated Prompt",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Updated Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image Url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Image Url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create sheet').item.json.sheetId }}"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1k_0n-hFW8WRvNSW4izC5UdTA8KtO0VAOvuwlWkRsdPo",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1k_0n-hFW8WRvNSW4izC5UdTA8KtO0VAOvuwlWkRsdPo/edit?usp=drivesdk",
          "cachedResultName": "Story Scenes"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "bAnK8T185A3Wr7Kj",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "a3fc83b6-2f54-4b74-be25-3193762b5f4b",
      "name": "Iterar sobre elementos",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        960,
        464
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "59ab47dd-f8a6-47f1-80d5-a9d2ab00c98b",
      "name": "Código",
      "type": "n8n-nodes-base.code",
      "position": [
        720,
        480
      ],
      "parameters": {
        "jsCode": "// Take the first input (your wrapper object) and explode its `output` array\nconst outputs = $input.first().json.output;\n\nconst out = [];\n\nfor (const o of outputs) {\n  const { character_prompt, action_prompt } = o ?? {};\n  out.push({\n    json: {\n      scene: {\n        character_prompt,\n        action_prompt,\n      },\n    },\n  });\n}\n\nreturn out;\n"
      },
      "typeVersion": 2
    },
    {
      "id": "f94b9f0a-f1e0-4c78-b7d2-7d240ed85180",
      "name": "Crear hoja",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        944,
        32
      ],
      "parameters": {
        "title": "={{ $json.name }}",
        "options": {},
        "operation": "create",
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1k_0n-hFW8WRvNSW4izC5UdTA8KtO0VAOvuwlWkRsdPo",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1k_0n-hFW8WRvNSW4izC5UdTA8KtO0VAOvuwlWkRsdPo/edit?usp=drivesdk",
          "cachedResultName": "Story Scenes"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "bAnK8T185A3Wr7Kj",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "e796adb0-b3c1-4491-a857-eca58fc379e6",
      "name": "Editar campos",
      "type": "n8n-nodes-base.set",
      "position": [
        1072,
        32
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "eda852cb-fc59-4745-94aa-b2a44e8c3b08",
              "name": "Scene",
              "type": "string",
              "value": ""
            },
            {
              "id": "4235efbd-ca02-451e-b6e3-69998b11ebf1",
              "name": "Character Prompt",
              "type": "string",
              "value": ""
            },
            {
              "id": "8d10881e-1b97-498a-9d8a-4f4e6cd6103f",
              "name": "Action Prompt",
              "type": "string",
              "value": ""
            },
            {
              "id": "f983fcb1-6792-410a-8092-8af6e6a84b36",
              "name": "Status",
              "type": "string",
              "value": ""
            },
            {
              "id": "745d40e4-ea48-4395-9741-785eed9a9d23",
              "name": "Updated Prompt",
              "type": "string",
              "value": ""
            },
            {
              "id": "b06bef27-9fc1-4d36-a2e5-7516c37c2f52",
              "name": "Image Url",
              "type": "string",
              "value": ""
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "1b43c3fd-a60b-4b77-87e2-6f1f77a29127",
      "name": "Añadir fila en hoja1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1200,
        32
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "Scene",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Scene",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Character Prompt",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Character Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Action Prompt",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Action Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Updated Prompt",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Updated Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image Url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Image Url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create sheet').item.json.sheetId }}"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create sheet').item.json.spreadsheetId }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "bAnK8T185A3Wr7Kj",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "8bb2862d-c044-486e-96c3-202047d693a1",
      "name": "Filas en hoja",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        192,
        912
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create sheet').item.json.sheetId }}"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1k_0n-hFW8WRvNSW4izC5UdTA8KtO0VAOvuwlWkRsdPo",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1k_0n-hFW8WRvNSW4izC5UdTA8KtO0VAOvuwlWkRsdPo/edit?usp=drivesdk",
          "cachedResultName": "Story Scenes"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "bAnK8T185A3Wr7Kj",
          "name": "Google Sheets account"
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.7,
      "alwaysOutputData": false
    },
    {
      "id": "ac3f2d1c-0f98-4d62-a240-300ef84a6eda",
      "name": "Sin operación, no hacer nada",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1040,
        1360
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "a4caeac4-c544-427b-a28d-fe38f8c0232f",
      "name": "Obtener filas actualizadas",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        176,
        1344
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create sheet').item.json.sheetId }}"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1k_0n-hFW8WRvNSW4izC5UdTA8KtO0VAOvuwlWkRsdPo",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1k_0n-hFW8WRvNSW4izC5UdTA8KtO0VAOvuwlWkRsdPo/edit?usp=drivesdk",
          "cachedResultName": "Story Scenes"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "bAnK8T185A3Wr7Kj",
          "name": "Google Sheets account"
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.7,
      "alwaysOutputData": false
    },
    {
      "id": "92af9dca-7ded-429d-a304-3271dcbdc594",
      "name": "Esperar",
      "type": "n8n-nodes-base.wait",
      "position": [
        784,
        912
      ],
      "webhookId": "e3ecb3b3-9796-4d58-bc3a-1ac354564218",
      "parameters": {
        "unit": "minutes",
        "amount": 1
      },
      "typeVersion": 1.1
    },
    {
      "id": "c6a29597-4209-44fa-a75a-279ebf0cf139",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        -80
      ],
      "parameters": {
        "color": 4,
        "width": 1344,
        "height": 384,
        "content": "## Create Folder and File\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b9c0393a-7471-4c8a-b70b-7709b54a4e82",
      "name": "Nota adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        352
      ],
      "parameters": {
        "color": 4,
        "width": 1344,
        "height": 384,
        "content": "## Create Story & Add in Sheet\n"
      },
      "typeVersion": 1
    },
    {
      "id": "41461520-f15d-46d0-be9d-703bd047883d",
      "name": "Modelo de chat",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        480,
        160
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.5-flash-lite"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "qzXOJEaYeexWZRUf",
          "name": "new key"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b099634a-f8cc-4382-97ff-dc8774b92253",
      "name": "Modelo de chat1",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        448,
        608
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.5-flash-lite"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "qzXOJEaYeexWZRUf",
          "name": "new key"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "5e5787f3-dcc8-4139-933b-9ec16ebf9857",
      "name": "Nota adhesiva4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        784
      ],
      "parameters": {
        "color": 4,
        "width": 1936,
        "height": 384,
        "content": "## Create Veo 3 Json Prompts & Images via Gemini"
      },
      "typeVersion": 1
    },
    {
      "id": "33f5fe5a-4afa-40ef-be95-6180bed4d1d0",
      "name": "Nota adhesiva5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        1216
      ],
      "parameters": {
        "color": 4,
        "width": 1152,
        "height": 384,
        "content": "## Move Files"
      },
      "typeVersion": 1
    },
    {
      "id": "b25d1540-5ba4-4685-9931-22a25dd1fbda",
      "name": "Modelo de chat2",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1024,
        976
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.5-flash-lite"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "qzXOJEaYeexWZRUf",
          "name": "new key"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b7ed1ac2-dcf3-4a47-b54b-98c31a90fe01",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -384,
        -80
      ],
      "parameters": {
        "color": 5,
        "width": 448,
        "height": 512,
        "content": "Here's a short setup description for your n8n template:\n\n**Setup Instructions:**\n\n1. **Import the workflow** into your n8n instance\n2. **Configure credentials:**\n   - Google Drive OAuth2 (for file uploads)\n   - Google Sheets OAuth2 (for tracking)\n   - Google Gemini API key (for AI generation)\n3. **Update the Google Sheets document ID** in the workflow nodes\n4. **Set your Google Drive folder ID** for file organization\n5. **Test with manual trigger** to verify all connections work\n6. **Customize the story prompts** if needed (character, scenes, etc.)\n\n**Requirements:**\n- Gemini API access\n- Google Workspace account\n- n8n instance with required nodes\n\n**Ready to use!** Just click \"Execute workflow\" to start generating AI stories with images and Veo 3 prompts."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "eb8dc23f-757a-4edc-83f8-e68d3cb0b010": {
      "main": [
        [
          {
            "node": "d9094fa4-f4aa-4f9a-9948-a8cea2213f21",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "ac3f2d1c-0f98-4d62-a240-300ef84a6eda",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c266998e-0003-4ca7-af61-f081d109ecef": {
      "main": [
        [
          {
            "node": "1a8ed5d0-1d5f-4010-9377-7ff890ddaf77",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "a4caeac4-c544-427b-a28d-fe38f8c0232f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "59ab47dd-f8a6-47f1-80d5-a9d2ab00c98b": {
      "main": [
        [
          {
            "node": "a3fc83b6-2f54-4b74-be25-3193762b5f4b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "92af9dca-7ded-429d-a304-3271dcbdc594": {
      "main": [
        [
          {
            "node": "4e5d22f1-f548-4731-bc4a-9241806096b6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1a8ed5d0-1d5f-4010-9377-7ff890ddaf77": {
      "main": [
        [
          {
            "node": "92af9dca-7ded-429d-a304-3271dcbdc594",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d9094fa4-f4aa-4f9a-9948-a8cea2213f21": {
      "main": [
        [
          {
            "node": "4eed5ff1-d6f7-48fb-9a97-5dd38204deab",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "41461520-f15d-46d0-be9d-703bd047883d": {
      "ai_languageModel": [
        [
          {
            "node": "871f8261-49ff-4174-836c-9e4331b59c30",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "e796adb0-b3c1-4491-a857-eca58fc379e6": {
      "main": [
        [
          {
            "node": "1b43c3fd-a60b-4b77-87e2-6f1f77a29127",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "871f8261-49ff-4174-836c-9e4331b59c30": {
      "main": [
        [
          {
            "node": "ee5e4ada-04e7-409d-8e83-a816b7aafea2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d3aca0c9-b547-4489-a28a-4489c370b022": {
      "ai_outputParser": [
        [
          {
            "node": "239f6485-6e0f-43bf-bc93-b1e9bf660b33",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "4fc42e92-5ab7-4ddc-a263-8242137dc50f": {
      "main": [
        [
          {
            "node": "6031fed3-e65b-489c-8cfa-efa85a9df4bb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b099634a-f8cc-4382-97ff-dc8774b92253": {
      "ai_languageModel": [
        [
          {
            "node": "239f6485-6e0f-43bf-bc93-b1e9bf660b33",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "b25d1540-5ba4-4685-9931-22a25dd1fbda": {
      "ai_languageModel": [
        [
          {
            "node": "4e5d22f1-f548-4731-bc4a-9241806096b6",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "f94b9f0a-f1e0-4c78-b7d2-7d240ed85180": {
      "main": [
        [
          {
            "node": "e796adb0-b3c1-4491-a857-eca58fc379e6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c4a016f9-cbe2-4d5a-8b69-1af4fd66da8d": {
      "ai_outputParser": [
        [
          {
            "node": "871f8261-49ff-4174-836c-9e4331b59c30",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "b755de9c-57aa-441c-b1c3-a13b52596677": {
      "ai_outputParser": [
        [
          {
            "node": "4e5d22f1-f548-4731-bc4a-9241806096b6",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "4eed5ff1-d6f7-48fb-9a97-5dd38204deab": {
      "main": [
        [
          {
            "node": "a4caeac4-c544-427b-a28d-fe38f8c0232f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ee5e4ada-04e7-409d-8e83-a816b7aafea2": {
      "main": [
        [
          {
            "node": "f94b9f0a-f1e0-4c78-b7d2-7d240ed85180",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8bb2862d-c044-486e-96c3-202047d693a1": {
      "main": [
        [
          {
            "node": "c266998e-0003-4ca7-af61-f081d109ecef",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "239f6485-6e0f-43bf-bc93-b1e9bf660b33": {
      "main": [
        [
          {
            "node": "59ab47dd-f8a6-47f1-80d5-a9d2ab00c98b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a3fc83b6-2f54-4b74-be25-3193762b5f4b": {
      "main": [
        [],
        [
          {
            "node": "f41101ea-1774-4560-96a4-9033b10292ae",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a4caeac4-c544-427b-a28d-fe38f8c0232f": {
      "main": [
        [
          {
            "node": "eb8dc23f-757a-4edc-83f8-e68d3cb0b010",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9f210c25-961b-4a46-9c47-1c02f6c8d716": {
      "main": [
        [
          {
            "node": "4fc42e92-5ab7-4ddc-a263-8242137dc50f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4e5d22f1-f548-4731-bc4a-9241806096b6": {
      "main": [
        [
          {
            "node": "9f210c25-961b-4a46-9c47-1c02f6c8d716",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f41101ea-1774-4560-96a4-9033b10292ae": {
      "main": [
        [
          {
            "node": "a3fc83b6-2f54-4b74-be25-3193762b5f4b",
            "type": "main",
            "index": 0
          },
          {
            "node": "8bb2862d-c044-486e-96c3-202047d693a1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6031fed3-e65b-489c-8cfa-efa85a9df4bb": {
      "main": [
        [
          {
            "node": "8bb2862d-c044-486e-96c3-202047d693a1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1b43c3fd-a60b-4b77-87e2-6f1f77a29127": {
      "main": [
        [
          {
            "node": "239f6485-6e0f-43bf-bc93-b1e9bf660b33",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d57e5004-7c16-4159-ba6f-8144da450e6c": {
      "main": [
        [
          {
            "node": "871f8261-49ff-4174-836c-9e4331b59c30",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado - Creación de contenido, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos35
Categoría2
Tipos de nodos15
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34