n8n Hands-On Guide 13: Transforming Design Mockups into Runway Show Videos

10 months ago

First, let's look at the final result of this workflow:

Here is an image of a design draft:

6460221315d1fb6655f203f3e4c7c3840d1130741217e-5DBXy7_fw658.webp

After processing through the workflow, the following image is generated first:

image.png

Then, the following video is generated:

https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/112ad76a-53e1-4c83-b079-40a8ae35dd78.mp4

https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.n8n

Below is the detailed setup process:

Upload Image

Create a new form trigger

image.png

Note: Change the type to File and enable the required upload switch.

image.png

Execute it and upload the design draft image.

image.png

Execution successful. You can see the image information on the right.

image.png

Upload to Image Hosting Service

Step 2: We need to upload the image to an image hosting website for subsequent workflow operations. Add an HTTP Request node.

image.png

I use this image hosting platform. You need to obtain an API key first. You can find it here:

image.png

You can see the usage example in the documentation here:

image.png

Enter the URL in the n8n node and replace the apikey with your own.

image.png

Turn on the "Send Body" switch.

image.png

Select "Form-Data" as the Body Type.

image.png

Execute the node to see the result, then pin it.

image.png

AI Image Analysis

This step involves analyzing the image to generate a more refined image.

I use the GPT-4o model via a third-party platform V-API.

First, insert an HTTP Request node and rename it to "AI Analyze Design Draft".

image.png

You can find your API key in the Token Management section.

image.png

image.png

According to the documentation, use Header Auth in n8n. Create a new credential.

image.png

This is a POST request. Copy the URL address from the API documentation.

image.png

image.png

Next, turn on the "Send Body" switch and select JSON.

image.png

For the JSON input field, you can refer to the API documentation example and copy it over.

image.png

Click to expand the details.

image.png

image.png

Delete the content of the url field and drag our URL from the left side.

image.png

Change the text to: "This is a clothing design draft. Please describe the details of the clothing on this line drawing in detail, focusing on judging the material and style of the clothing. It must restore the clothing details one-to-one. Do not output anything else besides this description."

Delete the "max_tokens": 300 line. The final effect is as shown:

image.png

Execute it to see the effect.

image.png

AI Agent

In this step, we generate a set of high-quality prompts based on the output above.

Add a new AI Agent node. For the prompt, we use a custom "Define Below".

image.png

Refer to mine:

# Role & Goal You are a top-tier Digital Fashion Technology Director, specializing in transforming 2D clothing design drafts (line drawings/sketches) into ultra-high-fidelity 3D model renderings using AI (Flux, Midjourney, etc.). Your primary task is to ensure absolute fidelity of the final image to the original design draft; artistic enhancement is secondary. You must interpret the user input like reading an engineering blueprint and generate an ultimate instruction set containing technical control parameters and creative visual descriptions.
# Workflow You will strictly follow the following optimized 6 steps to convert the user's {{ $json.choices[0].message.content }} and the potential [design line draft] into the final prompt.
Step 1: Establish the Technical Foundation
* Identify Input Type: Determine if the user mentioned "design draft" or "line draft". If mentioned, your primary instruction will be Image-to-Image based.
* Set Control Parameters: Explicitly instruct the AI to reference the [design line draft] for rendering and suggest an appropriate control weight to ensure high consistency in structure and outline.
Step 2: Deconstruct the Design Blueprint
* Analyze [Clothing Design Description]: Break down all elements in the description.
* Distinguish "Non-Negotiables" vs. "Variables":
    * Non-Negotiables: All core details about the clothing itself (silhouette, structure, color, fabric, features). These are hard instructions that must be 100% reproduced.
    * Variables: Model, scene, lighting, atmosphere, etc. These are soft instructions used to complement the clothing and can be creatively adapted without violating the core style.
Step 3: Generate Hard Directives - The Garment Tech Pack
* This is the core of the task. Convert all "Non-Negotiable" information into precise, unambiguous descriptions.
* Silhouette & Structure: A-line silhouette, sharp shoulder pa
```ds, asymmetrical hemline...
* Key Features: a precise triangular cutout on the left waist, a single-button closure on the cuff...
* Fabric Physics: heavyweight matte velvet that absorbs light, liquid-like silk charmeuse with a high-gloss sheen...
* Precise Color/Pattern: solid jet-black (RAL 9005), no patterns, vertical pinstripes, 1cm apart...
Step 4: Generate Soft Directives - The Visual Story
* Based on the garment's style, conceptualize "variable product" elements that best highlight its characteristics.
* Muse: (image, posture, mood)
* Scene: (background, props)
* Lighting: (light source, texture, shadows)
* Combine all the above elements in a new, highly structured format, clearly dividing the control section and the description section.
# The final output will be a pure English version prompt, remember it is a pure English prompt, and except for the content of the prompt, the output should not contain any other useless content, no negative prompts are needed, and the final output must be within 300 words.
# Do not include any symbols that could break the json structure.
# If the color of the clothes is not mentioned in the description, it does not need to be described.
# Only select the parts related to the clothing from the scene description, omit all other parts.

# Final Output Format

A hyper-realistic, ultra-detailed 8K fashion editorial photograph in the style of [Overall artistic style and quality keywords]. The image features a [model description] holding a [pose description]. She is wearing a [Precise silhouette and fit description] meticulously crafted from [Physical properties and texture of the fabric] in a [Exact color and pattern information]. Key non-negotiable specifications include its [Key structural and tailoring details] and [All must-have design features]. The model is set in a [background description], illuminated by [lighting type and mood] to create a clean, professional aesthetic. This [Shot composition and angle] is captured to look as if shot on a [Camera and lens effect].

Expand to check; if it's green, it's normal. If it's red, drag the corresponding node over.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/f134a511-88ff-4e6f-9b7c-4393eef54143.png "image.png")

Click the execute node to see the effect.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/939c99ca-8e65-4a45-b3d0-d7131064c7d6.png "image.png")

### AI Image Generation

In this step, we generate high-quality images based on the prompt generated above.

Add an HTTP Request node. Use the same V-API as before for image generation.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/fe1721a8-e9f8-4a95-91d9-946aebdf9adc.png "image.png")

We use the FLUX model. [Official documentation is here](https://api-gpt-ge.apifox.cn/227858580e0)

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/4ffe340e-bcc6-4154-b211-9fbc3fed8835.png "image.png")

For the send body, select 'using json'. Reference code:

{ "model": "flux-kontext-pro", "prompt": "{{ $('Upload Image').item.json.data.image.url }} Use this prompt to ultimately transform the 2D clothing design draft into an ultra-high-fidelity 3D model rendering, refer to the image as much as possible, pay attention to maintaining 1:1 restoration of the garment details on the design draft, the output image must be a full-body shot of the model: {{ $json.output }}", "seed": 0, "aspect_ratio": "16:9", "output_format": "jpeg", "webhook_url": "null", "webhook_secret": "null", "prompt_upsampling": false, "safety_tolerance": 2 }

After expanding, if it's red and shows an error, delete it and drag the image URL from the left over.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/8a9f8093-0cf3-48bd-b8cf-304af4e1ef1f.png "image.png")

The effect is as shown.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/71a53f9b-99d3-425d-b8f3-3ac86290fc65.png "image.png")

Execute it to see the effect.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/e630a415-ef82-4862-b9e7-8c7b85801e98.png "image.png")

### Google Sheet

In this step, we first save some key information from the previous steps into a Google Sheet. If you've seen my previous guides, you should be able to set this up quickly.

Create a new spreadsheet in Google Drive.
Column names can be referenced as:

Design Draft URL Design Draft Description Prompt Photography Image URL Video


![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/dd087aa7-9986-431f-b413-4d1c6e94701e.png "image.png")

Create a new Google Sheet node.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/7d79e040-f8da-48a5-b3f2-032544be0661.png "image.png")

Drag the corresponding fields over and execute. You can see the data has been written.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/19d273e9-c27d-4a30-b6d2-e043e042bd44.png "image.png")

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/bcf524f2-79f1-4e34-a3ba-9b468a10610e.png "image.png")

### Generate Video

This step is the same as the operation in the previous guide [AI Generated Satisfying Video](https://lazycat.cloud/playground/guideline/1302), which is generating a video based on an image. Still using the kie.ai platform.

Add an HTTP Request node.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/f13e4ba5-c1f4-4b18-b2de-dba9b3a07ef6.png "image.png")

According to the documentation, pass in the prompt: Generate a model catwalk video for the process based on the image.
For imageUrls, select the photography image URL.
For model, still choose the cheaper veo3_fast.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/c03ea85f-6b98-42ae-9d3e-d2872d9bbdae.png "image.png")

Execute it, and you can see the submission was successful.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/bcebe7d3-a7a4-4a89-86cd-ccfae61b0a6c.png "image.png")

Next, add a Wait node to check the result every 10 seconds.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/657d8fd1-c52f-4744-9a78-0c933ed1ec29.png "image.png")

Add an HTTP Request node to query the result.
Documentation is here.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/6daa9809-7f9d-43de-b6b9-9a8fe33c6809.png "image.png")

Execute it, and you can see it returned successfully.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/12928a25-85e2-47e3-8f9a-331771d8cc6a.png "image.png")

Add an If node.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/f2269350-37c5-4a51-a001-4b0b70f2a43e.png "image.png")

Add a node to update the Google Sheet with the video link.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/a424774b-3eaa-4488-82aa-3f928ce1a76c.png "image.png")

When the photography image URL matches, update the video field.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/e8d3981a-a011-4feb-b42c-6fcf4e4e5203.png "image.png")

Execute it, and you can see it was successful.

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/5c8c9c15-8df8-4afe-a0ac-18d626b81f20.png "image.png")

![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/ffc44a41-77f8-474d-9395-57e91f13eb7c.png "image.png")

The generated video is as follows:

https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/e200ee14-2488-4ba2-975d-c17da5da0706.mp4

Since I ran it several times, multiple videos were generated, and the face at the beginning is different from the previous one.

Whew~~~ Writing this up was no easy task. I spent the whole afternoon working on this workflow and finally got it running successfully.

To all the experts reading this, would it be too much to ask for a like from this humble junior?
Author
天天