{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "ed993205-977a-43cd-8d0b-4faef216d766",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        360,
        -120
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "predictions"
      },
      "typeVersion": 1
    },
    {
      "id": "67f2bb16-ee38-4bc8-9cc7-50a44614cc3b",
      "name": "Imagen 3.0",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        140,
        -120
      ],
      "parameters": {
        "url": "https://generativelanguage.googleapis.com/v1beta/models/imagen-3.0-generate-002:predict",
        "method": "POST",
        "options": {},
        "jsonBody": "={{\n{\n  \"instances\": [\n    {\n      \"prompt\": [\n        $json.candidates[0].content.parts[0].text,\n       `Generate the following image: ${$('Variables').first().json.targetPrompt}`\n      ].join(' ')\n    }\n  ],\n  \"parameters\": {\n    \"sampleCount\": $('Variables').first().json.numberSamples.toNumber()\n  }\n}\n}}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googlePalmApi"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b1730c97-8c5c-48a5-90cf-7940f6c9e2d0",
      "name": "Variables",
      "type": "n8n-nodes-base.set",
      "position": [
        -940,
        -120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7616f991-76d0-4dd0-9385-f08ed14e8dfa",
              "name": "sourceStyleUrl",
              "type": "string",
              "value": "={{ $json.SourceImage }}"
            },
            {
              "id": "126cb06e-4d69-4163-ba76-c694103bf5bb",
              "name": "targetPrompt",
              "type": "string",
              "value": "={{ $json.TargetPrompt }}"
            },
            {
              "id": "055d247b-586d-4bb8-a319-262c241df48c",
              "name": "numberSamples",
              "type": "string",
              "value": "={{\n(function(numSamples) {\n  if (!numSamples) return 1;\n  if (numSamples < 0) return 1;\n  if (numSamples > 4) return 4;\n  return numSamples;\n}($json['Number of Images']))\n}}"
            },
            {
              "id": "77a27e0e-24f4-4358-8cdc-84552be6c0b5",
              "name": "email",
              "type": "string",
              "value": "={{ $json['Your Email (Optional)'] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "5c26062c-74cf-4140-8dcb-8688c8daec67",
      "name": "Download Image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -620,
        -120
      ],
      "parameters": {
        "url": "={{ $json.sourceStyleUrl }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "20744adb-cdf5-4558-b6e6-4206d7c1f356",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -1400,
        -120
      ],
      "parameters": {
        "options": {
          "path": "style-copy-with-imagen3",
          "ignoreBots": true,
          "buttonLabel": "Generate!",
          "appendAttribution": true
        },
        "formTitle": "Style Copy with Imagen 3.0",
        "formFields": {
          "values": [
            {
              "fieldLabel": "SourceImage",
              "placeholder": "The image URL to copy the style from",
              "requiredField": true
            },
            {
              "fieldLabel": "TargetPrompt",
              "placeholder": "The new image to generate",
              "requiredField": true
            },
            {
              "fieldType": "number",
              "fieldLabel": "Number of Images",
              "placeholder": "Default 1. Max. 4 images"
            },
            {
              "fieldType": "email",
              "fieldLabel": "Your Email (Optional)",
              "placeholder": "The results will be sent to this email"
            }
          ]
        },
        "responseMode": "lastNode",
        "formDescription": "Use this form to generate an image using another image as a style reference."
      },
      "typeVersion": 2.2
    },
    {
      "id": "917db247-1be3-4814-a96d-145957aa5db3",
      "name": "Form Validation",
      "type": "n8n-nodes-base.if",
      "position": [
        -1180,
        -120
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "1b440b81-06c9-4133-bfd2-8ec07c7c3734",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.SourceImage.isUrl() }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "65a8b617-318c-429a-b37e-45ead00dbb7e",
      "name": "Retry Form",
      "type": "n8n-nodes-base.form",
      "position": [
        -940,
        60
      ],
      "parameters": {
        "options": {
          "formTitle": "Retry Submission",
          "buttonLabel": "Generate!",
          "formDescription": "Please enter a URL for the source image."
        },
        "formFields": {
          "values": [
            {
              "fieldLabel": "SourceImage",
              "placeholder": "The image URL to copy the style from",
              "requiredField": true
            },
            {
              "fieldLabel": "TargetPrompt",
              "placeholder": "The new image to generate",
              "requiredField": true
            },
            {
              "fieldType": "number",
              "fieldLabel": "Number of Images",
              "placeholder": "Max. 4 images"
            },
            {
              "fieldLabel": "Your Email (Optional)",
              "placeholder": "The results will be sent to this email"
            }
          ]
        },
        "limitWaitTime": true
      },
      "typeVersion": 1
    },
    {
      "id": "8a0e8dae-9f6f-488e-9977-fd89e885f30e",
      "name": "Upload to Cloudinary",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        880,
        -120
      ],
      "parameters": {
        "url": "https://api.cloudinary.com/v1_1/daglih2g8/image/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendQuery": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            }
          ]
        },
        "genericAuthType": "httpQueryAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "upload_preset",
              "value": "n8n-workflows-preset"
            }
          ]
        }
      },
      "credentials": {
        "httpQueryAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "525725ea-effe-410b-8f39-ad01ae755d1a",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1480,
        -340
      ],
      "parameters": {
        "color": 7,
        "width": 760,
        "height": 640,
        "content": "## 1. \uc18c\uc2a4 \uc2a4\ud0c0\uc77c \ubc0f \ud0c0\uac9f \uc774\ubbf8\uc9c0 \uc694\uccad\n\n[\ud615\uc2dd \ud2b8\ub9ac\uac70\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.formtrigger/)\n\n\uc774 \ud15c\ud50c\ub9bf\uc5d0 \ub300\ud574 \uc591\uc2dd \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc774 \uc778\ud130\ud398\uc774\uc2a4\ub294 \uc0ac\uc6a9\uc790\uac00 \ucc38\uc870\ud560 \uc774\ubbf8\uc9c0\uc758 \uc2a4\ud0c0\uc77c\uc744 \uc9c0\uc815\ud558\uace0 \ud0c0\uac9f \uc774\ubbf8\uc9c0\ub97c \uc0dd\uc131\ud560 \ud504\ub86c\ud504\ud2b8\ub97c \uc9c0\uc815\ud560 \uc218 \uc788\uac8c \ud569\ub2c8\ub2e4. \ud615\uc2dd \uc720\ud6a8\uc131 \uac80\uc0ac \ub8e8\ud504\ub294 \ub2e4\ub978 \ud615\uc2dd \ub178\ub4dc\uc640 IF \ub178\ub4dc\ub97c \uacb0\ud569\ud558\uc5ec \ub2ec\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "ba9d4bdc-b695-4acf-9593-2ce979053744",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -700,
        -340
      ],
      "parameters": {
        "color": 7,
        "width": 720,
        "height": 440,
        "content": "## 2. Gemini 2.0\uc744 \uc0ac\uc6a9\ud55c \uc2dc\uac01\uc801 \uc2a4\ud0c0\uc77c \uc124\uba85\n\n[Gemini \uc774\ubbf8\uc9c0 \uc774\ud574\uc5d0 \ub300\ud574 \ub354 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30](https://ai.google.dev/gemini-api/docs/image-understanding)\n\n\uc774\ubbf8\uc9c0 \uc2a4\ud0c0\uc77c\uc744 \ubcf5\uc0ac\ud558\ub294 \ube44\ubc95\uc740 \ub2e4\uc911 \ubaa8\ub2ec LLM\uc774 \uc774\ub97c \uc790\uc138\ud788 \uc124\uba85\ud558\uac8c \ud558\ub294 \uac83\uc785\ub2c8\ub2e4. Gemini\uc758 \uc774\ubbf8\uc9c0 \uc774\ud574 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud558\uba74, \uaf64 \uc88b\uc740 \uc791\uc5c5\uc744 \ud574\uc11c \uc6b0\ub9ac\uac00 \ud544\uc694\ud55c \ud3ec\uad04\uc801\uc778 \uc124\uba85\uc744 \uc81c\uacf5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "455f7956-6e39-4d84-af7e-d5908d4e5307",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        40,
        -340
      ],
      "parameters": {
        "color": 7,
        "width": 720,
        "height": 440,
        "content": "## 3. Imagen 3.0\uc744 \uc0ac\uc6a9\ud55c \uc774\ubbf8\uc9c0 \uc0dd\uc131\n\n[Imagen \uc774\ubbf8\uc9c0 \uc0dd\uc131\uc5d0 \ub300\ud574 \ub354 \uc54c\uc544\ubcf4\uae30](https://ai.google.dev/gemini-api/docs/image-generation#imagen)\n\n\uc774\ubbf8\uc9c0\ub97c \uc0dd\uc131\ud558\uae30 \uc704\ud574 Google\uc758 Imagen 3.0 \ubaa8\ub378\uc744 \uc0ac\uc6a9\ud560 \uac83\uc785\ub2c8\ub2e4. \uc774\uc804 Gemini \ubaa8\ub378\uc5d0\uc11c \uc0dd\uc131\ub41c \uc2dc\uac01\uc801 \uc2a4\ud0c0\uc77c \uc124\uba85\uc744 \uc0ac\uc6a9\uc790\uc758 \ub300\uc0c1 \uc774\ubbf8\uc9c0 \ud504\ub86c\ud504\ud2b8\uc640 \uacb0\ud569\ud558\uc5ec Imagen\uc5d0 \uc804\ub2ec\ud558\uba74, \uadf8 \ub9c8\ubc95\uc774 \uc77c\uc5b4\ub0a9\ub2c8\ub2e4! \uacb0\uacfc\ub294 \uc2a4\ud0c0\uc77c \uc804\uc1a1\uacfc \ub9e4\uc6b0 \uc720\uc0ac\ud558\uba70, \uc0c1\ub2f9\ud788 \uc124\ub4dd\ub825 \uc788\uace0 \uc778\uc0c1\uc801\uc778 \uacb0\uacfc\ub97c \ub9cc\ub4e4\uc5b4 \ub0c5\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "0c1d5a7f-9102-4558-a830-ed558f72c086",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        780,
        -340
      ],
      "parameters": {
        "color": 7,
        "width": 980,
        "height": 600,
        "content": "## 4. \uacb0\uacfc\ub97c HTML \ud398\uc774\uc9c0\uc5d0 \ub80c\ub354\ub9c1\n\n[HTML \ub178\ub4dc\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.html)\n\n\ub9c8\uc9c0\ub9c9\uc73c\ub85c \ud504\ub808\uc820\ud14c\uc774\uc158\uc744 \uc704\ud574 \uc0dd\uc131\ub41c \uc774\ubbf8\uc9c0\ub97c HTML \ub178\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc6f9\ud398\uc774\uc9c0\ub85c \ub80c\ub354\ub9c1\ud558\uc5ec \ub354 \uc27d\uac8c \ubcfc \uc218 \uc788\uac8c \ud569\ub2c8\ub2e4. \uc774 \ud398\uc774\uc9c0\ub294 \uc81c\uacf5\ub41c \uacbd\uc6b0 \uc0ac\uc6a9\uc790\uc758 \uc774\uba54\uc77c\ub85c \ubcf4\ub0bc \uc218 \uc788\uace0, \ud3fc \uc885\ub8cc \ub178\ub4dc\uc5d0 \ub3c4\ub2ec\ud558\uba74 \ud30c\uc77c\ub85c \ub2e4\uc6b4\ub85c\ub4dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "ccc1ff65-0416-4dae-9557-ba2f98c5ac80",
      "name": "Convert to File1",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1320,
        60
      ],
      "parameters": {
        "options": {
          "encoding": "utf8",
          "fileName": "={{ $('Variables').item.json.targetPrompt.toSnakeCase().urlEncode() }}.html"
        },
        "operation": "toText",
        "sourceProperty": "html"
      },
      "typeVersion": 1.1
    },
    {
      "id": "0252d373-3678-4851-819d-d36efb40dfb2",
      "name": "Generate HTML",
      "type": "n8n-nodes-base.html",
      "position": [
        1080,
        -120
      ],
      "parameters": {
        "html": "<h1>\n  {{ $('Variables').item.json.targetPrompt.toSentenceCase() }}\n</h1>\n<div class=\"gallery\">\n{{\n$input.all()\n  .chunk(2)\n  .map(row =>\n    `<div class=\"gallery-row\">\n      ${row.map(item =>\n        `<a href=\"${item.json.url}\" target=\"_blank\">\n          <img src=\"${item.json.url}\" width=\"320px\" height=\"240px\"  />\n        </a>`).join('')}\n    </div>`\n  ).join('')\n}}\n</div>\n<div class=\"fineprint\">\n  Generated by Imagen 3.0 (imagen-3.0-generate-002) @ {{ $now.format('d MMM yyyy') }}.\n</div>\n<div class=\"fineprint\">\n  <h3>Style Prompt</h3>\n  <div style=\"display:flex;gap: 10px;\">\n    <div>\n      <img\n        src=\"{{ $('Download Image').item.json.sourceStyleUrl }}\"\n        width=\"100px\"\n        height=\"auto\"\n      />\n    </div>\n    <div>\n      {{ $('Gemini 2.0').first().json.candidates[0].content.parts[0].text }}\n    </div>\n  </div>\n</div>\n<style>\n  body { padding: 32px 64px; font-family: sans-serif; background-color: #fffaf2; }\n  h1 { max-width: 640px; }\n  .gallery { display: inline-block; padding: 5px; border: 1px solid #ccc; background-color: white; margin-bottom: 32px;}\n  .gallery-row { display: flex; }\n  .gallery-row img { padding: 5px; background-color: white }\n  .gallery-row img:hover { background-color: orange; } \n  .fineprint { font-size: 0.7rem; max-width: 480px; text-align: justify;}\n  .fineprint h3 { font-size: 0.8rem; }\n</style>"
      },
      "executeOnce": true,
      "typeVersion": 1.2
    },
    {
      "id": "b712bd74-8615-4080-aad2-dc0b0df0b07e",
      "name": "Convert to File",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        580,
        -120
      ],
      "parameters": {
        "options": {
          "fileName": "={{ $execution.id }}_{{ $itemIndex }}.{{ $json.mimeType.split('/')[1] }}",
          "mimeType": "={{ $json.mimeType }}"
        },
        "operation": "toBinary",
        "sourceProperty": "bytesBase64Encoded"
      },
      "typeVersion": 1.1
    },
    {
      "id": "ee3e168a-038c-4524-93fc-ced5d4956fa1",
      "name": "Form Ending",
      "type": "n8n-nodes-base.form",
      "position": [
        1540,
        60
      ],
      "parameters": {
        "options": {
          "formTitle": "Generation Complete"
        },
        "operation": "completion",
        "respondWith": "returnBinary",
        "completionTitle": "Image Generation Successful",
        "completionMessage": "Download has started.\nOpen the HTML file to view results."
      },
      "executeOnce": true,
      "typeVersion": 1
    },
    {
      "id": "c4b1648a-c7d9-46cd-af28-527f9b169ab6",
      "name": "Has Email?",
      "type": "n8n-nodes-base.if",
      "position": [
        1320,
        -120
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "07d04523-f81a-4efa-b46a-cb640bcc608a",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $('Variables').item.json.email }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "bc0a8188-27ff-4834-9c7a-8760531f4252",
      "name": "Send Results to Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1540,
        -120
      ],
      "parameters": {
        "sendTo": "={{ $('Variables').first().json.email }}",
        "message": "={{ $json.html }}",
        "options": {},
        "subject": "=#{{$execution.id}} - Image Generated Successfully!"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "f18ab53b-d8e2-4625-a8f6-8b97959a15d1",
      "name": "Image to Base64",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -400,
        -120
      ],
      "parameters": {
        "options": {},
        "operation": "binaryToPropery"
      },
      "typeVersion": 1
    },
    {
      "id": "ac6c1353-035c-4045-aed9-46285b757b98",
      "name": "Gemini 2.0",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -180,
        -120
      ],
      "parameters": {
        "url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n    \"contents\": [{\n      \"parts\": [\n        {\n          \"inline_data\": {\n            \"mime_type\":\"{{ $('Download Image').item.binary.data.mimeType }}\",\n            \"data\": \"{{ $json.data }}\"\n          }\n        },\n        {\"text\": \"Describe the visual style of this image. Do not include any character names or IP in the description. Include names of any famous artists associated with this style if known.\"}\n      ]\n    }]\n  }",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googlePalmApi"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "fae8c5f0-9d6f-4e45-8f7a-82f361bf9b1b",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1920,
        -840
      ],
      "parameters": {
        "width": 400,
        "height": 1140,
        "content": "## \uc9c1\uc811 \ud574\ubcf4\uc138\uc694!\n### \uc774 n8n \ud15c\ud50c\ub9bf\uc744 \uc0ac\uc6a9\ud558\uba74 AI\ub97c \ud65c\uc6a9\ud558\uc5ec \ub2e4\ub978 \ub85c\uace0\ub098 \uc774\ubbf8\uc9c0\uc758 \uc2dc\uac01\uc801 \uc2a4\ud0c0\uc77c\uc744 \ubaa8\ubc29\ud55c \ub85c\uace0\ub098 \uc774\ubbf8\uc9c0\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ubbf8\uc9c0\ub97c \uc0dd\uc131\ud558\ub294 \ub370 \uc0ac\uc6a9\ub418\ub294 \ubaa8\ub378\uc740 Google\uc758 Imagen 3.0\uc785\ub2c8\ub2e4.\n\n\uc774 \ud15c\ud50c\ub9bf\uc744 \ud1b5\ud574 \uc0ac\uc6a9\uc790\ub294 \uae30\uc874 \ub514\uc790\uc778\uc758 \ubcc0\ud615 \uc0dd\uc131, \uae30\uc874 \uc790\uc0b0\uc758 \ub9ac\ubbf9\uc2a4 \ub4f1\uc744 \ud1b5\ud574 \ub2e4\uc591\ud55c \uc2a4\ud0c0\uc77c\uc744 \uac80\uc99d\ud558\uace0, \uc774\uc804\uc5d0\ub294 \ube44\uc6a9\uacfc \uc2dc\uac04\uc774 \ub108\ubb34 \ub9ce\uc774 \ub4e4\uc5c8\uc744 \ub2e4\uc591\ud55c \ub514\uc790\uc778\uc744 \ud0d0\uc0c9\ud558\ub294 \ub4f1\uc758 \ub514\uc790\uc778\uacfc \ub9c8\ucf00\ud305 \uc791\uc5c5\uc744 \uc790\ub3d9\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\n### \uc791\ub3d9 \uc6d0\ub9ac\n* \ud3fc \ud2b8\ub9ac\uac70\ub97c \uc0ac\uc6a9\ud558\uc5ec \ucc38\uc870\ud560 \uc18c\uc2a4 \uc774\ubbf8\uc9c0\uc640 \uc0dd\uc131\ud560 \ub300\uc0c1 \uc774\ubbf8\uc9c0\uc758 \ud504\ub86c\ud504\ud2b8\ub97c \ucea1\ucc98\ud569\ub2c8\ub2e4.\n* \uc18c\uc2a4 \uc774\ubbf8\uc9c0\ub97c Gemini 2.0\uc5d0 \uc804\ub2ec\ud558\uc5ec \ubd84\uc11d\ud558\uace0, \uadf8 \uc2dc\uac01\uc801 \uc2a4\ud0c0\uc77c\uacfc \ud1a4\uc744 \uc790\uc138\ud55c \uc124\uba85\uc73c\ub85c \ucd94\ucd9c\ud569\ub2c8\ub2e4.\n* \uc774 \uc2dc\uac01\uc801 \uc2a4\ud0c0\uc77c \uc124\uba85\uc744 \uc0ac\uc6a9\uc790\uc758 \ucd08\uae30 \ub300\uc0c1 \uc774\ubbf8\uc9c0 \ud504\ub86c\ud504\ud2b8\uc640 \uacb0\ud569\ud569\ub2c8\ub2e4. \uc774 \ucd5c\uc885 \ud504\ub86c\ud504\ud2b8\ub294 Imagen 3.0\uc5d0 \uc81c\uacf5\ub418\uc5b4 \uc774\ubbf8\uc9c0\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.\n* \uc0dd\uc131\ub41c \uc774\ubbf8\uc9c0\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc0ac\uc6a9\uc790\uc5d0\uac8c \uc81c\uc2dc\ud560 \uac04\ub2e8\ud55c \uc6f9\ud398\uc774\uc9c0\ub97c \uad6c\uc131\ud569\ub2c8\ub2e4.\n* \uc0ac\uc6a9\uc790\uac00 \uc774\uba54\uc77c \uc8fc\uc18c\ub97c \uc81c\uacf5\ud55c \uacbd\uc6b0, \uc774 HTML \ud398\uc774\uc9c0\uc758 \uc0ac\ubcf8\uc744 \uc804\uc1a1\ud569\ub2c8\ub2e4.\n\n### \uc0ac\uc6a9 \ubc29\ubc95\n* \uc6cc\ud06c\ud50c\ub85c\uac00 \ud65c\uc131\ud654\ub418\uc5b4 \uc788\uc5b4\uc57c \ud3fc\uc744 \uacf5\uac1c\uc801\uc73c\ub85c \uacf5\uc720\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n* \uc18c\uc2a4 \uc774\ubbf8\uc9c0\ub294 n8n \uc778\uc2a4\ud134\uc2a4\uc5d0\uc11c \uc811\uadfc \uac00\ub2a5\ud574\uc57c \ud569\ub2c8\ub2e4 - \uc778\ud130\ub137\uc758 \uacf5\uac1c \uc774\ubbf8\uc9c0 \ub610\ub294 \ub124\ud2b8\uc6cc\ud06c \ub0b4 \uc774\ubbf8\uc9c0.\n\n### \uc694\uad6c \uc0ac\ud56d\n* LLM \ubc0f Imagen \ubaa8\ub378\uc744 \uc704\ud55c Gemini.\n* \uc774\ubbf8\uc9c0 CDN\uc744 \uc704\ud55c Cloudinary.\n* \uc774\uba54\uc77c \uc804\uc1a1\uc744 \uc704\ud55c Gmail.\n\n### \uc774 \uc6cc\ud06c\ud50c\ub85c \ucee4\uc2a4\ud130\ub9c8\uc774\uc9d5\n* \uc120\ud638\ud558\ub294 \ub3c4\uad6c\ub098 \uc11c\ube44\uc2a4\ub85c \uc5b8\uc81c\ub4e0\uc9c0 \uad50\uccb4\ud558\uc138\uc694.\n* \uc644\uc804 \uc790\ub3d9\ud654\ub97c \uc6d0\ud558\uc2dc\ub098\uc694? \ud3fc \ud2b8\ub9ac\uac70\ub97c \uc6f9\ud6c5 \ud2b8\ub9ac\uac70\ub85c \ubcc0\uacbd\ud558\uc138\uc694!\n\n### \ub3c4\uc6c0\uc774 \ud544\uc694\ud558\uc2e0\uac00\uc694?\n[Discord](https://discord.com/invite/XPKeKXeB7d) \ucee4\ubba4\ub2c8\ud2f0\uc5d0 \ucc38\uc5ec\ud558\uac70\ub098 [Forum](https://community.n8n.io/)\uc5d0\uc11c \ubb38\uc758\ud558\uc138\uc694!\n\n\uc990\uac70\uc6b4 \ud574\ud0b9!"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Split Out": {
      "main": [
        [
          {
            "node": "Convert to File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Variables": {
      "main": [
        [
          {
            "node": "Download Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gemini 2.0": {
      "main": [
        [
          {
            "node": "Imagen 3.0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Has Email?": {
      "main": [
        [
          {
            "node": "Send Results to Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Imagen 3.0": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retry Form": {
      "main": [
        [
          {
            "node": "Form Validation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate HTML": {
      "main": [
        [
          {
            "node": "Convert to File1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Has Email?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Image": {
      "main": [
        [
          {
            "node": "Image to Base64",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File": {
      "main": [
        [
          {
            "node": "Upload to Cloudinary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Form Validation": {
      "main": [
        [
          {
            "node": "Variables",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Retry Form",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Image to Base64": {
      "main": [
        [
          {
            "node": "Gemini 2.0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File1": {
      "main": [
        [
          {
            "node": "Form Ending",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Form Validation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to Cloudinary": {
      "main": [
        [
          {
            "node": "Generate HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Results to Email": {
      "main": [
        []
      ]
    }
  }
}