AIrt MAchIne
Upload any image to generate a unique, looping AI video. The workflow uses an LLM to create five prompts, produces images and video clips, and stitches them into a final seamless loop.
概要
The AIrt MAchIne workflow in ComfyUI is designed to transform a static image into a dynamic, looping AI-generated video. This process begins with the user uploading an image, which serves as the foundation for the video. The workflow utilizes a language model to generate five unique prompts based on the initial image, ensuring that each video iteration is distinct and creative. These prompts guide the generation of images and short video clips, which are then seamlessly stitched together to form a continuous loop.
This is achieved through a series of nodes, including the ImageResizeKJv2 for resizing images, and the VHS_VideoCombine for merging clips into a cohesive video.
Technically, the workflow leverages models like Wan2.2 and Z-Image-Turbo, which are known for their efficient image and video generation capabilities. Custom nodes such as comfyui-kjnodes and comfyui-videohelpersuite are employed to enhance the workflow's functionality, allowing for sophisticated video editing and prompt generation. The integration of these components makes the workflow particularly useful for artists and content creators looking to produce unique, AI-driven video content from static images.
Additionally, users have the option to bypass certain nodes, such as the 'Save frames' and 'Save videos' groups, if they only wish to output the final combined video, offering flexibility in the workflow's application.
入力するもの
- ワークフローを読み込み中
ComfyUI で実行できます。 このワークフローはこのページでは実行できません。すべてが読み込まれた状態でComfy Cloudで開くか、ご自身のComfyUI用にダウンロードしてください。
Cloudで試すワークフローの内部
ノードグラフの読み取り専用プレビューです。ノードを編集するには、Comfy Cloudで開くかダウンロードしてください。
Loading the graph
Open full-size workflow previewカスタムノードが必要です
- ワークフローを読み込み中
コードからこのワークフローを使用する
可能な場合はワークフローグラフと入力から生成されます。それ以外の場合は保存された例が表示されます。料金が発生する場合があるため、コードを実行する前に認証情報とエンドポイントを確認してください。
What you need
- Runs on
- Comfy Cloud
- キー
- COMFY_API_KEY
有料の Cloud プランとクレジットが必要です。
# Python 3.10+: pip install comfy-sdk==0.4.0
import os
from comfy_sdk import Comfy
api_key = os.environ.get("COMFY_API_KEY", "").strip()
if not api_key: raise RuntimeError("Set COMFY_API_KEY")
os.environ.setdefault("COMFY_BASE_URL", "https://cloud.comfy.org")
client = Comfy(api_key=api_key)
workflow = client.workflows.from_json({
"5": {
"class_type": "ImageResizeKJv2",
"inputs": {
"crop_position": "center",
"device": "cpu",
"divisible_by": 1,
"height": [
"163",
0
],
"image": [
"99:77",
0
],
"keep_proportion": "crop",
"pad_color": "0, 0, 0",
"upscale_method": "lanczos",
"width": [
"162",
0
]
},
"_meta": {
"title": "Resize Image v2"
}
},
"9": {
"class_type": "ImageResizeKJv2",
"inputs": {
"crop_position": "center",
"device": "cpu",
"divisible_by": 1,
"height": [
"163",
0
],
"image": [
"103:241",
0
],
"keep_proportion": "crop",
"pad_color": "0, 0, 0",
"upscale_method": "lanczos",
"width": [
"162",
0
]
},
"_meta": {
"title": "Resize Image v2"
}
},
"10": {
"class_type": "SaveVideo",
"inputs": {
"filename_prefix": "MJM/AIrt MAchIne/Clips/MJM_AIrtMAchIne_Vid1",
"format": "auto",
"format.codec": "auto",
"video": [
"204",
0
]
},
"_meta": {
"title": "Save Video"
}
},
"14": {
"class_type": "ImageResizeKJv2",
"inputs": {
"crop_position": "center",
"device": "cpu",
"divisible_by": 1,
"height": [
"163",
0
],
"image": [
"107:252",
0
],
"keep_proportion": "crop",
"pad_color": "0, 0, 0",
"upscale_method": "lanczos",
"width": [
"162",
0
]
},
"_meta": {
"title": "Resize Image v2"
}
},
"16": {
"class_type": "SaveVideo",
"inputs": {
"filename_prefix": "MJM/AIrt MAchIne/Clips/MJM_AIrtMAchIne_Vid2",
"format": "auto",
"format.codec": "auto",
"video": [
"220",
0
]
},
"_meta": {
"title": "Save Video"
}
},
"20": {
"class_type": "ImageResizeKJv2",
"inputs": {
"crop_position": "center",
"device": "cpu",
"divisible_by": 1,
"height": [
"163",
0
],
"image": [
"111:267",
0
],
"keep_proportion": "crop",
"pad_color": "0, 0, 0",
"upscale_method": "lanczos",
"width": [
"162",
0
]
},
"_meta": {
"title": "Resize Image v2"
}
},
"22": {
"class_type": "SaveVideo",
"inputs": {
"filename_prefix": "MJM/AIrt MAchIne/Clips/MJM_AIrtMAchIne_Vid3",
"format": "auto",
"format.codec": "auto",
"video": [
"222",
0
]
},
"_meta": {
"title": "Save Video"
}
},
"25": {
"class_type": "ImageResizeKJv2",
"inputs": {
"crop_position": "center",
"device": "cpu",
"divisible_by": 1,
"height": [
"163",
0
],
"image": [
"115:277",
0
],
"keep_proportion": "crop",
"pad_color": "0, 0, 0",
"upscale_method": "lanczos",
"width": [
"162",
0
]
},
"_meta": {
"title": "Resize Image v2"
}
},
"27": {
"class_type": "SaveVideo",
"inputs": {
"filename_prefix": "MJM/AIrt MAchIne/Clips/MJM_AIrtMAchIne_Vid4",
"format": "auto",
"format.codec": "auto",
"video": [
"226",
0
]
},
"_meta": {
"title": "Save Video"
}
},
"33": {
"class_type": "SaveVideo",
"inputs": {
"filename_prefix": "MJM/AIrt MAchIne/Clips/MJM_AIrtMAchIne_Vid5",
"format": "auto",
"format.codec": "auto",
"video": [
"227",
0
]
},
"_meta": {
"title": "Save Video"
}
},
"94": {
"class_type": "LoadImage",
"inputs": {
"image": "AIrt_MAchIne_init.png"
},
"_meta": {
"title": "Load Image"
}
},
"100": {
"class_type": "PreviewImage",
"inputs": {
"images": [
"99:73",
0
]
},
"_meta": {
"title": "Preview Image"
}
},
"104": {
"class_type": "PreviewImage",
"inputs": {
"images": [
"103:240",
0
]
},
"_meta": {
"title": "Preview Image"
}
},
"108": {
"class_type": "PreviewImage",
"inputs": {
"images": [
"107:255",
0
]
},
"_meta": {
"title": "Preview Image"
}
},
"112": {
"class_type": "PreviewImage",
"inputs": {
"images": [
"111:264",
0
]
},
"_meta": {
"title": "Preview Image"
}
},
"116": {
"class_type": "PreviewImage",
"inputs": {
"images": [
"115:276",
0
]
},
"_meta": {
"title": "Preview Image"
}
},
"126": {
"class_type": "BatchImagesNode",
"inputs": {
"images.image0": [
"217:203",
0
],
"images.image1": [
"219:284",
0
],
"images.image2": [
"221:294",
0
],
"images.image3": [
"225:304",
0
],
"images.image4": [
"228:314",
0
]
},
"_meta": {
"title": "Batch Images"
}
},
"131": {
"class_type": "VHS_VideoCombine",
"inputs": {
"crf": 14,
"filename_prefix": "MJM/AIrt MAchIne/Final/MJM_AIrtMAchIne",
"format": "video/h264-mp4",
"frame_rate": [
"230",
0
],
"images": [
"126",
0
],
"loop_count": 0,
"pingpong": False,
"pix_fmt": "yuv420p",
"save_metadata": True,
"save_output": True,
"trim_to_audio": False
},
"_meta": {
"title": "Video Combine 🎥🅥🅗🅢"
}
},
"152": {
"class_type": "ImpactStringSelector",
"inputs": {
"multiline": False,
"select": 0,
"strings": [
"323",
0
]
},
"_meta": {
"title": "String Selector"
}
},
"153": {
"class_type": "ImpactStringSelector",
"inputs": {
"multiline": False,
"select": 1,
"strings": [
"323",
0
]
},
"_meta": {
"title": "String Selector"
}
},
"154": {
"class_type": "ImpactStringSelector",
"inputs": {
"multiline": False,
"select": 2,
"strings": [
"323",
0
]
},
"_meta": {
"title": "String Selector"
}
},
"155": {
"class_type": "ImpactStringSelector",
"inputs": {
"multiline": False,
"select": 3,
"strings": [
"323",
0
]
},
"_meta": {
"title": "String Selector"
}
},
"156": {
"class_type": "ImpactStringSelector",
"inputs": {
"multiline": False,
"select": 4,
"strings": [
"323",
0
]
},
"_meta": {
"title": "String Selector"
}
},
"161": {
"class_type": "SaveImage",
"inputs": {
"filename_prefix": "MJM/AIrt MAchIne/Frames/MJM_AIrtMAchIne_Im1",
"images": [
"5",
0
]
},
"_meta": {
"title": "Save Image"
}
},
"162": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 720
},
"_meta": {
"title": "Width"
}
},
"163": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 720
},
"_meta": {
"title": "Height"
}
},
"164": {
"class_type": "SaveImage",
"inputs": {
"filename_prefix": "MJM/AIrt MAchIne/Frames/MJM_AIrtMAchIne_Im2",
"images": [
"9",
0
]
},
"_meta": {
"title": "Save Image"
}
},
"165": {
"class_type": "SaveImage",
"inputs": {
"filename_prefix": "MJM/AIrt MAchIne/Frames/MJM_AIrtMAchIne_Im3",
"images": [
"14",
0
]
},
"_meta": {
"title": "Save Image"
}
},
"166": {
"class_type": "SaveImage",
"inputs": {
"filename_prefix": "MJM/AIrt MAchIne/Frames/MJM_AIrtMAchIne_Im4",
"images": [
"20",
0
]
},
"_meta": {
"title": "Save Image"
}
},
"167": {
"class_type": "SaveImage",
"inputs": {
"filename_prefix": "MJM/AIrt MAchIne/Frames/MJM_AIrtMAchIne_Im5",
"images": [
"25",
0
]
},
"_meta": {
"title": "Save Image"
}
},
"168": {
"class_type": "PreviewAny",
"inputs": {
"source": [
"323",
0
]
},
"_meta": {
"title": "Preview as Text"
}
},
"169": {
"class_type": "PreviewAny",
"inputs": {
"source": [
"152",
0
]
},
"_meta": {
"title": "Preview as Text"
}
},
"171": {
"class_type": "PreviewAny",
"inputs": {
"source": [
"153",
0
]
},
"_meta": {
"title": "Preview as Text"
}
},
"172": {
"class_type": "PreviewAny",
"inputs": {
"source": [
"154",
0
]
},
"_meta": {
"title": "Preview as Text"
}
},
"173": {
"class_type": "PreviewAny",
"inputs": {
"source": [
"155",
0
]
},
"_meta": {
"title": "Preview as Text"
}
},
"174": {
"class_type": "PreviewAny",
"inputs": {
"source": [
"156",
0
]
},
"_meta": {
"title": "Preview as Text"
}
},
"175": {
"class_type": "PreviewAny",
"inputs": {
"source": [
"217:324",
0
]
},
"_meta": {
"title": "Preview as Text"
}
},
"177": {
"class_type": "PreviewAny",
"inputs": {
"source": [
"219:325",
0
]
},
"_meta": {
"title": "Preview as Text"
}
},
"178": {
"class_type": "PreviewAny",
"inputs": {
"source": [
"221:326",
0
]
},
"_meta": {
"title": "Preview as Text"
}
},
"179": {
"class_type": "PreviewAny",
"inputs": {
"source": [
"225:327",
0
]
},
"_meta": {
"title": "Preview as Text"
}
},
"180": {
"class_type": "PreviewAny",
"inputs": {
"source": [
"228:328",
0
]
},
"_meta": {
"title": "Preview as Text"
}
},
"186": {
"class_type": "UNETLoader",
"inputs": {
"unet_name": "z_image_turbo_bf16.safetensors",
"weight_dtype": "default"
},
"_meta": {
"title": "Load Diffusion Model - Z-Image Turbo"
}
},
"187": {
"class_type": "CLIPLoader",
"inputs": {
"clip_name": "qwen_3_4b.safetensors",
"device": "default",
"type": "lumina2"
},
"_meta": {
"title": "Load CLIP - Z-Image Turbo"
}
},
"188": {
"class_type": "VAELoader",
"inputs": {
"vae_name": "ae.safetensors"
},
"_meta": {
"title": "Load VAE - Z-Image Turbo"
}
},
"194": {
"class_type": "UpscaleModelLoader",
"inputs": {
"model_name": "4x-UltraSharp.safetensors"
},
"_meta": {
"title": "Load Upscale Model - For Z-Image Turbo"
}
},
"195": {
"class_type": "CLIPLoader",
"inputs": {
"clip_name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
"device": "default",
"type": "wan"
},
"_meta": {
"title": "Load CLIP - Wan 2.2"
}
},
"198": {
"class_type": "UNETLoader",
"inputs": {
"unet_name": "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors",
"weight_dtype": "default"
},
"_meta": {
"title": "Load Diffusion Model - Wan 2.2"
}
},
"199": {
"class_type": "UNETLoader",
"inputs": {
"unet_name": "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors",
"weight_dtype": "default"
},
"_meta": {
"title": "Load Diffusion Model - Wan 2.2"
}
},
"201": {
"class_type": "VAELoader",
"inputs": {
"vae_name": "wan_2.1_vae.safetensors"
},
"_meta": {
"title": "Load VAE - Wan 2.2"
}
},
"204": {
"class_type": "CreateVideo",
"inputs": {
"bit_depth": "auto",
"codec": "none",
"color_space": "sRGB",
"fps": [
"230",
0
],
"images": [
"217:203",
0
]
},
"_meta": {
"title": "Create Video"
}
},
"220": {
"class_type": "CreateVideo",
"inputs": {
"bit_depth": "auto",
"codec": "none",
"color_space": "sRGB",
"fps": [
"230",
0
],
"images": [
"219:284",
0
]
},
"_meta": {
"title": "Create Video"
}
},
"222": {
"class_type": "CreateVideo",
"inputs": {
"bit_depth": "auto",
"codec": "none",
"color_space": "sRGB",
"fps": [
"230",
0
],
"images": [
"221:294",
0
]
},
"_meta": {
"title": "Create Video"
}
},
"226": {
"class_type": "CreateVideo",
"inputs": {
"bit_depth": "auto",
"codec": "none",
"color_space": "sRGB",
"fps": [
"230",
0
],
"images": [
"225:304",
0
]
},
"_meta": {
"title": "Create Video"
}
},
"227": {
"class_type": "CreateVideo",
"inputs": {
"bit_depth": "auto",
"codec": "none",
"color_space": "sRGB",
"fps": [
"230",
0
],
"images": [
"228:314",
0
]
},
"_meta": {
"title": "Create Video"
}
},
"230": {
"class_type": "PrimitiveFloat",
"inputs": {
"value": 24
},
"_meta": {
"title": "FPS"
}
},
"231": {
"class_type": "LoraLoaderModelOnly",
"inputs": {
"lora_name": "wan2.2_i2v_A14b_high_noise_lora_rank64_lightx2v_4step_1022.safetensors",
"model": [
"198",
0
],
"strength_model": 1.0000000000000002
},
"_meta": {
"title": "Load LoRA"
}
},
"232": {
"class_type": "LoraLoaderModelOnly",
"inputs": {
"lora_name": "wan2.2_i2v_A14b_low_noise_lora_rank64_lightx2v_4step_1022.safetensors",
"model": [
"199",
0
],
"strength_model": 1.0000000000000002
},
"_meta": {
"title": "Load LoRA"
}
},
"323": {
"class_type": "AILab_QwenVL",
"inputs": {
"attention_mode": "auto",
"custom_prompt": "write 5 prompts based on this image, I will use these in a text 2 image model. The prompts should be different, be creative. Only use the image as inspiration.\n\nI want only the prompts and nothing else. Each prompt on its own line.\n\nNo empty lines in-between the prompts:\nPrompt 1\nPrompt 2\nPrompt 3\nPrompt 4\nPrompt 5",
"image": [
"94",
0
],
"keep_model_loaded": True,
"max_tokens": 1024,
"model_name": "Qwen3-VL-8B-Instruct",
"preset_prompt": "🖼️ Detailed Description",
"quantization": "None (FP16)",
"seed": 2922644121
},
"_meta": {
"title": "QwenVL"
}
},
"103:236": {
"class_type": "KSampler",
"inputs": {
"cfg": 1,
"denoise": 1,
"latent_image": [
"103:237",
0
],
"model": [
"103:238",
0
],
"negative": [
"103:246",
0
],
"positive": [
"103:244",
0
],
"sampler_name": "res_multistep",
"scheduler": "simple",
"seed": 459413941250020,
"steps": 9
},
"_meta": {
"title": "KSampler"
}
},
"103:237": {
"class_type": "EmptySD3LatentImage",
"inputs": {
"batch_size": 1,
"height": [
"163",
0
],
"width": [
"162",
0
]
},
"_meta": {
"title": "EmptySD3LatentImage"
}
},
"103:238": {
"class_type": "ModelSamplingAuraFlow",
"inputs": {
"model": [
"186",
0
],
"sampling": "flow",
"shift": 3
},
"_meta": {
"title": "ModelSamplingAuraFlow"
}
},
"103:240": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"103:236",
0
],
"vae": [
"188",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"103:241": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"103:242",
0
],
"vae": [
"188",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"103:242": {
"class_type": "KSampler",
"inputs": {
"cfg": 1,
"denoise": 0.2,
"latent_image": [
"103:243",
0
],
"model": [
"103:238",
0
],
"negative": [
"103:246",
0
],
"positive": [
"103:244",
0
],
"sampler_name": "res_multistep",
"scheduler": "simple",
"seed": 974,
"steps": 9
},
"_meta": {
"title": "KSampler"
}
},
"103:243": {
"class_type": "VAEEncode",
"inputs": {
"pixels": [
"103:98",
0
],
"vae": [
"188",
0
]
},
"_meta": {
"title": "VAE Encode"
}
},
"103:244": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"187",
0
],
"text": [
"153",
0
]
},
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"103:246": {
"class_type": "ConditioningZeroOut",
"inputs": {
"conditioning": [
"103:244",
0
]
},
"_meta": {
"title": "Conditioning Zero Out"
}
},
"103:98": {
"class_type": "ImageUpscaleWithModelBatched",
"inputs": {
"downscale_method": "bicubic",
"downscale_ratio": 0.5,
"images": [
"103:240",
0
],
"per_batch": 1,
"precision": "bfloat16",
"upscale_model": [
"194",
0
]
},
"_meta": {
"title": "Image Upscale With Model Batched"
}
},
"107:247": {
"class_type": "KSampler",
"inputs": {
"cfg": 1,
"denoise": 1,
"latent_image": [
"107:248",
0
],
"model": [
"107:249",
0
],
"negative": [
"107:258",
0
],
"positive": [
"107:256",
0
],
"sampler_name": "res_multistep",
"scheduler": "simple",
"seed": 417454711451413,
"steps": 9
},
"_meta": {
"title": "KSampler"
}
},
"107:248": {
"class_type": "EmptySD3LatentImage",
"inputs": {
"batch_size": 1,
"height": [
"163",
0
],
"width": [
"162",
0
]
},
"_meta": {
"title": "EmptySD3LatentImage"
}
},
"107:249": {
"class_type": "ModelSamplingAuraFlow",
"inputs": {
"model": [
"186",
0
],
"sampling": "flow",
"shift": 3
},
"_meta": {
"title": "ModelSamplingAuraFlow"
}
},
"107:251": {
"class_type": "ImageUpscaleWithModelBatched",
"inputs": {
"downscale_method": "bicubic",
"downscale_ratio": 0.5,
"images": [
"107:255",
0
],
"per_batch": 1,
"precision": "bfloat16",
"upscale_model": [
"194",
0
]
},
"_meta": {
"title": "Image Upscale With Model Batched"
}
},
"107:252": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"107:253",
0
],
"vae": [
"188",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"107:253": {
"class_type": "KSampler",
"inputs": {
"cfg": 1,
"denoise": 0.2,
"latent_image": [
"107:254",
0
],
"model": [
"107:249",
0
],
"negative": [
"107:258",
0
],
"positive": [
"107:256",
0
],
"sampler_name": "res_multistep",
"scheduler": "simple",
"seed": 974,
"steps": 9
},
"_meta": {
"title": "KSampler"
}
},
"107:254": {
"class_type": "VAEEncode",
"inputs": {
"pixels": [
"107:251",
0
],
"vae": [
"188",
0
]
},
"_meta": {
"title": "VAE Encode"
}
},
"107:255": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"107:247",
0
],
"vae": [
"188",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"107:256": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"187",
0
],
"text": [
"154",
0
]
},
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"107:258": {
"class_type": "ConditioningZeroOut",
"inputs": {
"conditioning": [
"107:256",
0
]
},
"_meta": {
"title": "Conditioning Zero Out"
}
},
"111:259": {
"class_type": "KSampler",
"inputs": {
"cfg": 1,
"denoise": 1,
"latent_image": [
"111:260",
0
],
"model": [
"111:261",
0
],
"negative": [
"111:270",
0
],
"positive": [
"111:269",
0
],
"sampler_name": "res_multistep",
"scheduler": "simple",
"seed": 392438948527137,
"steps": 9
},
"_meta": {
"title": "KSampler"
}
},
"111:260": {
"class_type": "EmptySD3LatentImage",
"inputs": {
"batch_size": 1,
"height": [
"163",
0
],
"width": [
"162",
0
]
},
"_meta": {
"title": "EmptySD3LatentImage"
}
},
"111:261": {
"class_type": "ModelSamplingAuraFlow",
"inputs": {
"model": [
"186",
0
],
"sampling": "flow",
"shift": 3
},
"_meta": {
"title": "ModelSamplingAuraFlow"
}
},
"111:264": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"111:259",
0
],
"vae": [
"188",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"111:265": {
"class_type": "VAEEncode",
"inputs": {
"pixels": [
"111:268",
0
],
"vae": [
"188",
0
]
},
"_meta": {
"title": "VAE Encode"
}
},
"111:266": {
"class_type": "KSampler",
"inputs": {
"cfg": 1,
"denoise": 0.2,
"latent_image": [
"111:265",
0
],
"model": [
"111:261",
0
],
"negative": [
"111:270",
0
],
"positive": [
"111:269",
0
],
"sampler_name": "res_multistep",
"scheduler": "simple",
"seed": 974,
"steps": 9
},
"_meta": {
"title": "KSampler"
}
},
"111:267": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"111:266",
0
],
"vae": [
"188",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"111:268": {
"class_type": "ImageUpscaleWithModelBatched",
"inputs": {
"downscale_method": "bicubic",
"downscale_ratio": 0.5,
"images": [
"111:264",
0
],
"per_batch": 1,
"precision": "bfloat16",
"upscale_model": [
"194",
0
]
},
"_meta": {
"title": "Image Upscale With Model Batched"
}
},
"111:269": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"187",
0
],
"text": [
"155",
0
]
},
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"111:270": {
"class_type": "ConditioningZeroOut",
"inputs": {
"conditioning": [
"111:269",
0
]
},
"_meta": {
"title": "Conditioning Zero Out"
}
},
"115:271": {
"class_type": "KSampler",
"inputs": {
"cfg": 1,
"denoise": 1,
"latent_image": [
"115:272",
0
],
"model": [
"115:273",
0
],
"negative": [
"115:282",
0
],
"positive": [
"115:281",
0
],
"sampler_name": "res_multistep",
"scheduler": "simple",
"seed": 123941752424153,
"steps": 9
},
"_meta": {
"title": "KSampler"
}
},
"115:272": {
"class_type": "EmptySD3LatentImage",
"inputs": {
"batch_size": 1,
"height": [
"163",
0
],
"width": [
"162",
0
]
},
"_meta": {
"title": "EmptySD3LatentImage"
}
},
"115:273": {
"class_type": "ModelSamplingAuraFlow",
"inputs": {
"model": [
"186",
0
],
"sampling": "flow",
"shift": 3
},
"_meta": {
"title": "ModelSamplingAuraFlow"
}
},
"115:276": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"115:271",
0
],
"vae": [
"188",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"115:277": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"115:278",
0
],
"vae": [
"188",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"115:278": {
"class_type": "KSampler",
"inputs": {
"cfg": 1,
"denoise": 0.2,
"latent_image": [
"115:279",
0
],
"model": [
"115:273",
0
],
"negative": [
"115:282",
0
],
"positive": [
"115:281",
0
],
"sampler_name": "res_multistep",
"scheduler": "simple",
"seed": 974,
"steps": 9
},
"_meta": {
"title": "KSampler"
}
},
"115:279": {
"class_type": "VAEEncode",
"inputs": {
"pixels": [
"115:280",
0
],
"vae": [
"188",
0
]
},
"_meta": {
"title": "VAE Encode"
}
},
"115:280": {
"class_type": "ImageUpscaleWithModelBatched",
"inputs": {
"downscale_method": "bicubic",
"downscale_ratio": 0.5,
"images": [
"115:276",
0
],
"per_batch": 1,
"precision": "bfloat16",
"upscale_model": [
"194",
0
]
},
"_meta": {
"title": "Image Upscale With Model Batched"
}
},
"115:281": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"187",
0
],
"text": [
"156",
0
]
},
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"115:282": {
"class_type": "ConditioningZeroOut",
"inputs": {
"conditioning": [
"115:281",
0
]
},
"_meta": {
"title": "Conditioning Zero Out"
}
},
"217:196": {
"class_type": "ModelSamplingSD3",
"inputs": {
"model": [
"231",
0
],
"shift": 5
},
"_meta": {
"title": "ModelSamplingSD3"
}
},
"217:197": {
"class_type": "ModelSamplingSD3",
"inputs": {
"model": [
"232",
0
],
"shift": 5
},
"_meta": {
"title": "ModelSamplingSD3"
}
},
"217:200": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"195",
0
],
"text": "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走"
},
"_meta": {
"title": "CLIP Text Encode (Negative Prompt)"
}
},
"217:202": {
"class_type": "WanFirstLastFrameToVideo",
"inputs": {
"batch_size": 1,
"end_image": [
"9",
0
],
"height": [
"163",
0
],
"length": 81,
"negative": [
"217:200",
0
],
"positive": [
"217:206",
0
],
"start_image": [
"5",
0
],
"vae": [
"201",
0
],
"width": [
"162",
0
]
},
"_meta": {
"title": "WanFirstLastFrameToVideo"
}
},
"217:203": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"217:212",
0
],
"vae": [
"201",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"217:206": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"195",
0
],
"text": [
"217:324",
0
]
},
"_meta": {
"title": "CLIP Text Encode (Positive Prompt)"
}
},
"217:211": {
"class_type": "KSamplerAdvanced",
"inputs": {
"add_noise": "enable",
"cfg": 1,
"end_at_step": 2,
"latent_image": [
"217:202",
2
],
"model": [
"217:196",
0
],
"negative": [
"217:202",
1
],
"noise_seed": 1036176414007226,
"positive": [
"217:202",
0
],
"return_with_leftover_noise": "enable",
"sampler_name": "euler",
"scheduler": "simple",
"start_at_step": 0,
"steps": 4
},
"_meta": {
"title": "KSampler (Advanced)"
}
},
"217:212": {
"class_type": "KSamplerAdvanced",
"inputs": {
"add_noise": "disable",
"cfg": 1,
"end_at_step": 10000,
"latent_image": [
"217:211",
0
],
"model": [
"217:197",
0
],
"negative": [
"217:202",
1
],
"noise_seed": 0,
"positive": [
"217:202",
0
],
"return_with_leftover_noise": "disable",
"sampler_name": "euler",
"scheduler": "simple",
"start_at_step": 2,
"steps": 4
},
"_meta": {
"title": "KSampler (Advanced)"
}
},
"217:215": {
"class_type": "ImageBatchMulti",
"inputs": {
"image_1": [
"5",
0
],
"image_2": [
"9",
0
],
"inputcount": 2
},
"_meta": {
"title": "Image Batch Multi"
}
},
"217:324": {
"class_type": "AILab_QwenVL",
"inputs": {
"attention_mode": "auto",
"custom_prompt": "Write a wild prompt for a video model that will take first and last frame. Maximize motion and go crazy. Give me the prompt and nothing else.",
"image": [
"217:215",
0
],
"keep_model_loaded": False,
"max_tokens": 1024,
"model_name": "Qwen3-VL-8B-Instruct",
"preset_prompt": "🖼️ Detailed Description",
"quantization": "None (FP16)",
"seed": 826063256
},
"_meta": {
"title": "QwenVL"
}
},
"219:283": {
"class_type": "WanFirstLastFrameToVideo",
"inputs": {
"batch_size": 1,
"end_image": [
"14",
0
],
"height": [
"163",
0
],
"length": 81,
"negative": [
"219:287",
0
],
"positive": [
"219:286",
0
],
"start_image": [
"9",
0
],
"vae": [
"201",
0
],
"width": [
"162",
0
]
},
"_meta": {
"title": "WanFirstLastFrameToVideo"
}
},
"219:284": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"219:290",
0
],
"vae": [
"201",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"219:285": {
"class_type": "ImageBatchMulti",
"inputs": {
"image_1": [
"9",
0
],
"image_2": [
"14",
0
],
"inputcount": 2
},
"_meta": {
"title": "Image Batch Multi"
}
},
"219:286": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"195",
0
],
"text": [
"219:325",
0
]
},
"_meta": {
"title": "CLIP Text Encode (Positive Prompt)"
}
},
"219:287": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"195",
0
],
"text": "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走"
},
"_meta": {
"title": "CLIP Text Encode (Negative Prompt)"
}
},
"219:289": {
"class_type": "KSamplerAdvanced",
"inputs": {
"add_noise": "enable",
"cfg": 1,
"end_at_step": 2,
"latent_image": [
"219:283",
2
],
"model": [
"219:291",
0
],
"negative": [
"219:283",
1
],
"noise_seed": 1044595221991389,
"positive": [
"219:283",
0
],
"return_with_leftover_noise": "enable",
"sampler_name": "euler",
"scheduler": "simple",
"start_at_step": 0,
"steps": 4
},
"_meta": {
"title": "KSampler (Advanced)"
}
},
"219:290": {
"class_type": "KSamplerAdvanced",
"inputs": {
"add_noise": "disable",
"cfg": 1,
"end_at_step": 10000,
"latent_image": [
"219:289",
0
],
"model": [
"219:292",
0
],
"negative": [
"219:283",
1
],
"noise_seed": 0,
"positive": [
"219:283",
0
],
"return_with_leftover_noise": "disable",
"sampler_name": "euler",
"scheduler": "simple",
"start_at_step": 2,
"steps": 4
},
"_meta": {
"title": "KSampler (Advanced)"
}
},
"219:291": {
"class_type": "ModelSamplingSD3",
"inputs": {
"model": [
"231",
0
],
"shift": 5
},
"_meta": {
"title": "ModelSamplingSD3"
}
},
"219:292": {
"class_type": "ModelSamplingSD3",
"inputs": {
"model": [
"232",
0
],
"shift": 5
},
"_meta": {
"title": "ModelSamplingSD3"
}
},
"219:325": {
"class_type": "AILab_QwenVL",
"inputs": {
"attention_mode": "auto",
"custom_prompt": "Write a wild prompt for a video model that will take first and last frame. Maximize motion and go crazy. Give me the prompt and nothing else.",
"image": [
"219:285",
0
],
"keep_model_loaded": False,
"max_tokens": 1024,
"model_name": "Qwen3-VL-8B-Instruct",
"preset_prompt": "🖼️ Detailed Description",
"quantization": "None (FP16)",
"seed": 1738501745
},
"_meta": {
"title": "QwenVL"
}
},
"221:293": {
"class_type": "WanFirstLastFrameToVideo",
"inputs": {
"batch_size": 1,
"end_image": [
"20",
0
],
"height": [
"163",
0
],
"length": 81,
"negative": [
"221:297",
0
],
"positive": [
"221:296",
0
],
"start_image": [
"14",
0
],
"vae": [
"201",
0
],
"width": [
"162",
0
]
},
"_meta": {
"title": "WanFirstLastFrameToVideo"
}
},
"221:294": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"221:299",
0
],
"vae": [
"201",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"221:295": {
"class_type": "ImageBatchMulti",
"inputs": {
"image_1": [
"14",
0
],
"image_2": [
"20",
0
],
"inputcount": 2
},
"_meta": {
"title": "Image Batch Multi"
}
},
"221:296": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"195",
0
],
"text": [
"221:326",
0
]
},
"_meta": {
"title": "CLIP Text Encode (Positive Prompt)"
}
},
"221:297": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"195",
0
],
"text": "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走"
},
"_meta": {
"title": "CLIP Text Encode (Negative Prompt)"
}
},
"221:299": {
"class_type": "KSamplerAdvanced",
"inputs": {
"add_noise": "disable",
"cfg": 1,
"end_at_step": 10000,
"latent_image": [
"221:300",
0
],
"model": [
"221:302",
0
],
"negative": [
"221:293",
1
],
"noise_seed": 0,
"positive": [
"221:293",
0
],
"return_with_leftover_noise": "disable",
"sampler_name": "euler",
"scheduler": "simple",
"start_at_step": 2,
"steps": 4
},
"_meta": {
"title": "KSampler (Advanced)"
}
},
"221:300": {
"class_type": "KSamplerAdvanced",
"inputs": {
"add_noise": "enable",
"cfg": 1,
"end_at_step": 2,
"latent_image": [
"221:293",
2
],
"model": [
"221:301",
0
],
"negative": [
"221:293",
1
],
"noise_seed": 870123508735268,
"positive": [
"221:293",
0
],
"return_with_leftover_noise": "enable",
"sampler_name": "euler",
"scheduler": "simple",
"start_at_step": 0,
"steps": 4
},
"_meta": {
"title": "KSampler (Advanced)"
}
},
"221:301": {
"class_type": "ModelSamplingSD3",
"inputs": {
"model": [
"231",
0
],
"shift": 5
},
"_meta": {
"title": "ModelSamplingSD3"
}
},
"221:302": {
"class_type": "ModelSamplingSD3",
"inputs": {
"model": [
"232",
0
],
"shift": 5
},
"_meta": {
"title": "ModelSamplingSD3"
}
},
"221:326": {
"class_type": "AILab_QwenVL",
"inputs": {
"attention_mode": "auto",
"custom_prompt": "Write a wild prompt for a video model that will take first and last frame. Maximize motion and go crazy. Give me the prompt and nothing else.",
"image": [
"221:295",
0
],
"keep_model_loaded": False,
"max_tokens": 1024,
"model_name": "Qwen3-VL-8B-Instruct",
"preset_prompt": "🖼️ Detailed Description",
"quantization": "None (FP16)",
"seed": 1736034325
},
"_meta": {
"title": "QwenVL"
}
},
"225:303": {
"class_type": "WanFirstLastFrameToVideo",
"inputs": {
"batch_size": 1,
"end_image": [
"25",
0
],
"height": [
"163",
0
],
"length": 81,
"negative": [
"225:307",
0
],
"positive": [
"225:306",
0
],
"start_image": [
"20",
0
],
"vae": [
"201",
0
],
"width": [
"163",
0
]
},
"_meta": {
"title": "WanFirstLastFrameToVideo"
}
},
"225:304": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"225:309",
0
],
"vae": [
"201",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"225:305": {
"class_type": "ImageBatchMulti",
"inputs": {
"image_1": [
"20",
0
],
"image_2": [
"25",
0
],
"inputcount": 2
},
"_meta": {
"title": "Image Batch Multi"
}
},
"225:306": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"195",
0
],
"text": [
"225:327",
0
]
},
"_meta": {
"title": "CLIP Text Encode (Positive Prompt)"
}
},
"225:307": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"195",
0
],
"text": "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走"
},
"_meta": {
"title": "CLIP Text Encode (Negative Prompt)"
}
},
"225:309": {
"class_type": "KSamplerAdvanced",
"inputs": {
"add_noise": "disable",
"cfg": 1,
"end_at_step": 10000,
"latent_image": [
"225:310",
0
],
"model": [
"225:311",
0
],
"negative": [
"225:303",
1
],
"noise_seed": 0,
"positive": [
"225:303",
0
],
"return_with_leftover_noise": "disable",
"sampler_name": "euler",
"scheduler": "simple",
"start_at_step": 2,
"steps": 4
},
"_meta": {
"title": "KSampler (Advanced)"
}
},
"225:310": {
"class_type": "KSamplerAdvanced",
"inputs": {
"add_noise": "enable",
"cfg": 1,
"end_at_step": 2,
"latent_image": [
"225:303",
2
],
"model": [
"225:312",
0
],
"negative": [
"225:303",
1
],
"noise_seed": 649177653589995,
"positive": [
"225:303",
0
],
"return_with_leftover_noise": "enable",
"sampler_name": "euler",
"scheduler": "simple",
"start_at_step": 0,
"steps": 4
},
"_meta": {
"title": "KSampler (Advanced)"
}
},
"225:311": {
"class_type": "ModelSamplingSD3",
"inputs": {
"model": [
"232",
0
],
"shift": 5
},
"_meta": {
"title": "ModelSamplingSD3"
}
},
"225:312": {
"class_type": "ModelSamplingSD3",
"inputs": {
"model": [
"231",
0
],
"shift": 5
},
"_meta": {
"title": "ModelSamplingSD3"
}
},
"225:327": {
"class_type": "AILab_QwenVL",
"inputs": {
"attention_mode": "auto",
"custom_prompt": "Write a wild prompt for a video model that will take first and last frame. Maximize motion and go crazy. Give me the prompt and nothing else.",
"image": [
"225:305",
0
],
"keep_model_loaded": False,
"max_tokens": 1024,
"model_name": "Qwen3-VL-8B-Instruct",
"preset_prompt": "🖼️ Detailed Description",
"quantization": "None (FP16)",
"seed": 479492193
},
"_meta": {
"title": "QwenVL"
}
},
"228:313": {
"class_type": "WanFirstLastFrameToVideo",
"inputs": {
"batch_size": 1,
"end_image": [
"5",
0
],
"height": [
"163",
0
],
"length": 81,
"negative": [
"228:317",
0
],
"positive": [
"228:316",
0
],
"start_image": [
"25",
0
],
"vae": [
"201",
0
],
"width": [
"162",
0
]
},
"_meta": {
"title": "WanFirstLastFrameToVideo"
}
},
"228:314": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"228:320",
0
],
"vae": [
"201",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"228:315": {
"class_type": "ImageBatchMulti",
"inputs": {
"image_1": [
"25",
0
],
"image_2": [
"5",
0
],
"inputcount": 2
},
"_meta": {
"title": "Image Batch Multi"
}
},
"228:316": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"195",
0
],
"text": [
"228:328",
0
]
},
"_meta": {
"title": "CLIP Text Encode (Positive Prompt)"
}
},
"228:317": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"195",
0
],
"text": "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走"
},
"_meta": {
"title": "CLIP Text Encode (Negative Prompt)"
}
},
"228:319": {
"class_type": "KSamplerAdvanced",
"inputs": {
"add_noise": "enable",
"cfg": 1,
"end_at_step": 2,
"latent_image": [
"228:313",
2
],
"model": [
"228:321",
0
],
"negative": [
"228:313",
1
],
"noise_seed": 75596193383703,
"positive": [
"228:313",
0
],
"return_with_leftover_noise": "enable",
"sampler_name": "euler",
"scheduler": "simple",
"start_at_step": 0,
"steps": 4
},
"_meta": {
"title": "KSampler (Advanced)"
}
},
"228:320": {
"class_type": "KSamplerAdvanced",
"inputs": {
"add_noise": "disable",
"cfg": 1,
"end_at_step": 10000,
"latent_image": [
"228:319",
0
],
"model": [
"228:322",
0
],
"negative": [
"228:313",
1
],
"noise_seed": 0,
"positive": [
"228:313",
0
],
"return_with_leftover_noise": "disable",
"sampler_name": "euler",
"scheduler": "simple",
"start_at_step": 2,
"steps": 4
},
"_meta": {
"title": "KSampler (Advanced)"
}
},
"228:321": {
"class_type": "ModelSamplingSD3",
"inputs": {
"model": [
"231",
0
],
"shift": 5
},
"_meta": {
"title": "ModelSamplingSD3"
}
},
"228:322": {
"class_type": "ModelSamplingSD3",
"inputs": {
"model": [
"232",
0
],
"shift": 5
},
"_meta": {
"title": "ModelSamplingSD3"
}
},
"228:328": {
"class_type": "AILab_QwenVL",
"inputs": {
"attention_mode": "auto",
"custom_prompt": "Write a wild prompt for a video model that will take first and last frame. Maximize motion and go crazy. Give me the prompt and nothing else.",
"image": [
"228:315",
0
],
"keep_model_loaded": False,
"max_tokens": 1024,
"model_name": "Qwen3-VL-8B-Instruct",
"preset_prompt": "🖼️ Detailed Description",
"quantization": "None (FP16)",
"seed": 1455269179
},
"_meta": {
"title": "QwenVL"
}
},
"99:234": {
"class_type": "ImageUpscaleWithModelBatched",
"inputs": {
"downscale_method": "bicubic",
"downscale_ratio": 0.5,
"images": [
"99:73",
0
],
"per_batch": 1,
"precision": "bfloat16",
"upscale_model": [
"194",
0
]
},
"_meta": {
"title": "Image Upscale With Model Batched"
}
},
"99:235": {
"class_type": "KSampler",
"inputs": {
"cfg": 1,
"denoise": 0.2,
"latent_image": [
"99:97",
0
],
"model": [
"99:69",
0
],
"negative": [
"99:70",
0
],
"positive": [
"99:72",
0
],
"sampler_name": "res_multistep",
"scheduler": "simple",
"seed": 974,
"steps": 9
},
"_meta": {
"title": "KSampler"
}
},
"99:66": {
"class_type": "KSampler",
"inputs": {
"cfg": 1,
"denoise": 1,
"latent_image": [
"99:79",
0
],
"model": [
"99:69",
0
],
"negative": [
"99:70",
0
],
"positive": [
"99:72",
0
],
"sampler_name": "res_multistep",
"scheduler": "simple",
"seed": 120051025389428,
"steps": 9
},
"_meta": {
"title": "KSampler"
}
},
"99:69": {
"class_type": "ModelSamplingAuraFlow",
"inputs": {
"model": [
"186",
0
],
"sampling": "flow",
"shift": 3
},
"_meta": {
"title": "ModelSamplingAuraFlow"
}
},
"99:70": {
"class_type": "ConditioningZeroOut",
"inputs": {
"conditioning": [
"99:72",
0
]
},
"_meta": {
"title": "Conditioning Zero Out"
}
},
"99:72": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"187",
0
],
"text": [
"152",
0
]
},
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"99:73": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"99:66",
0
],
"vae": [
"188",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"99:77": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"99:235",
0
],
"vae": [
"188",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"99:79": {
"class_type": "EmptySD3LatentImage",
"inputs": {
"batch_size": 1,
"height": [
"163",
0
],
"width": [
"162",
0
]
},
"_meta": {
"title": "EmptySD3LatentImage"
}
},
"99:97": {
"class_type": "VAEEncode",
"inputs": {
"pixels": [
"99:234",
0
],
"vae": [
"188",
0
]
},
"_meta": {
"title": "VAE Encode"
}
}
})
# run() also passes api_key to the partner nodes in this workflow.
job = client.run(workflow, api_key=api_key)よくある質問
Yes, you can upload any image as the starting point for the video generation process.
The workflow utilizes Wan2.2 and Z-Image-Turbo models for image and video generation.
Yes, you can opt to save individual frames by utilizing the 'Save frames' group within the workflow.
The workflow is designed to automatically stitch video clips into a seamless loop using the VHS_VideoCombine node.