Gemma Trainer
google-gemma/gemma-skills
Trigger this skill when the user wants to train, fine-tune, or adapt Gemma models (e.g.
Build WAN 2.2 First-Last-Frame video workflows. An agent skill from artokun/comfyui-mcp.
$ npx skills add artokun/comfyui-mcp --skill wan-flf-video -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install artokun/comfyui-mcp wan-flf-video --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/artokun/comfyui-mcp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugin/skills/wan-flf-video .claude/skills/wan-flf-video && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "wan-flf-video" agent skill from https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/wan-flf-video into .claude/skills/wan-flf-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wan-flf-video", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/wan-flf-videoType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add artokun/comfyui-mcp --skill wan-flf-video -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install artokun/comfyui-mcp wan-flf-video --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/artokun/comfyui-mcp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugin/skills/wan-flf-video .agents/skills/wan-flf-video && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "wan-flf-video" agent skill from https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/wan-flf-video into .agents/skills/wan-flf-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wan-flf-video", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add artokun/comfyui-mcp --skill wan-flf-video -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install artokun/comfyui-mcp wan-flf-video --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/artokun/comfyui-mcp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugin/skills/wan-flf-video .cursor/skills/wan-flf-video && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "wan-flf-video" agent skill from https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/wan-flf-video into .cursor/skills/wan-flf-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wan-flf-video", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/artokun/comfyui-mcp.git --path plugin/skills/wan-flf-video--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add artokun/comfyui-mcp --skill wan-flf-video -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install artokun/comfyui-mcp wan-flf-video --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/artokun/comfyui-mcp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugin/skills/wan-flf-video .gemini/skills/wan-flf-video && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "wan-flf-video" agent skill from https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/wan-flf-video into .gemini/skills/wan-flf-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wan-flf-video", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install artokun/comfyui-mcp wan-flf-videoInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add artokun/comfyui-mcp --skill wan-flf-video -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/artokun/comfyui-mcp.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugin/skills/wan-flf-video .github/skills/wan-flf-video && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "wan-flf-video" agent skill from https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/wan-flf-video into .github/skills/wan-flf-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wan-flf-video", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add artokun/comfyui-mcp --skill wan-flf-video -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install artokun/comfyui-mcp wan-flf-video --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/artokun/comfyui-mcp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugin/skills/wan-flf-video .opencode/skills/wan-flf-video && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "wan-flf-video" agent skill from https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/wan-flf-video into .opencode/skills/wan-flf-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wan-flf-video", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
wan-flf-videoBuild WAN 2.2 First-Last-Frame video workflows. An agent skill from artokun/comfyui-mcp.
Wan Flf Video is an agent skill from artokun/comfyui-mcp. Build WAN 2.2 First-Last-Frame video workflows. Native dual hi-lo (required), and WanVideoWrapper VACE approaches
Its SKILL.md is about 5.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/workflows.md`).
It sits in AI & LLM Engineering, covering Fine-tuning. It works with llama.cpp. The repository describes itself as: Local-first, agent-native control plane for ComfyUI — MCP server + sidebar agent that generates images, video & audio, authors and runs workflows, and edits your live graph in… The licence is MIT.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6ad6fc0. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
huggingface.cocivitai.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Wan Flf Video loads about 5.1k tokens when it runs, and up to ~6.6k if it reads all its reference files. Until then it costs about 32 tokens; SKILL.md has 1,723 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from artokun/comfyui-mcp at commit 6ad6fc0, republished under its MIT licence (© artokun). 1,723 words, ~5,122 tokens.
.claude/skills/wan-flf-video/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.First-Last-Frame (FLF) video generation takes a start image and an end image and generates a smooth video transition between them. The WAN 2.2 I2V (Image-to-Video) 14B model is good at this.
WAN 2.2 I2V uses a split-noise architecture. Unlike WAN 2.1, the 2.2 model was trained with separate HighNoise and LowNoise components that handle different denoising ranges. You MUST use both models in a two-pass KSamplerAdvanced setup. Using a single model produces low-quality, broken output.
WanFirstLastFrameToVideoNEVER use a single KSampler with only one model for WAN 2.2 I2V.
Two native approaches are available:
WanFirstLastFrameToVideo + dual KSamplerAdvanced two-passWanVideoVACEStartToEndFrame + WanVideoVACEEncode + WanVideoSampler (VACE, caching, context windows)Remix NSFW (Recommended, built-in lightning, fp16):
| Model | Loader | Notes |
|---|---|---|
Wan2.2_Remix_NSFW_i2v_14b_high_lighting_fp16_v2.1.safetensors | UNETLoader | HighNoise, built-in lightning acceleration |
Wan2.2_Remix_NSFW_i2v_14b_low_lighting_fp16_v2.1.safetensors | UNETLoader | LowNoise, built-in lightning acceleration |
GGUF Q8 (Alternative, needs external lightning LoRAs):
| Model | Loader | Notes |
|---|---|---|
Wan2.2-I2V-A14B-HighNoise-Q8_0.gguf | UnetLoaderGGUF | HighNoise, quantized |
Wan2.2-I2V-A14B-LowNoise-Q8_0.gguf | UnetLoaderGGUF | LowNoise, quantized |
Official fp8:
| Model | Loader | Notes |
|---|---|---|
wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors | UNETLoader | HighNoise, needs lightning LoRA |
wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors | UNETLoader | LowNoise, needs lightning LoRA |
| Model | Node | Notes |
|---|---|---|
nsfw_wan_umt5-xxl_bf16_fixed.safetensors | CLIPLoaderGGUF (type=wan) | NSFW-tuned, pair with Remix models |
umt5_xxl_fp8_e4m3fn_scaled.safetensors | CLIPLoader (type=wan) | Standard UMT5-XXL fp8 |
| Component | Node | Model |
|---|---|---|
| CLIP Vision | CLIPVisionLoader | clip_vision_h.safetensors |
| VAE | VAELoader | wan_2.1_vae.safetensors |
WAN 2.2 uses flow matching and requires ModelSamplingSD3 applied to each UNET:
{"class_type": "ModelSamplingSD3", "inputs": {"model": ["<unet>", 0], "shift": 5}}shift=5 for lightning/Remix models. shift=8 for standard (non-lightning) models.
Remix NSFW models have lightning baked in. No external LoRA needed.
For GGUF/fp8 models, use paired hi/lo lightning LoRAs:
wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors → HighNoise UNETwan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors → LowNoise UNETEach model path has two stacked loaders (Common + Specific), each supporting 4 LoRA slots:
Hi path: UNETLoader(HN) → ModelSamplingSD3(shift=5) → Hi Common Stack → Hi Lora Stack → MODEL_HI
Lo path: UNETLoader(LN) → ModelSamplingSD3(shift=5) → Lo Common Stack → Lo Lora Stack → MODEL_LOCommon stacks hold shared LoRAs (quality/style). Specific stacks hold model-variant LoRAs. Set slots to "None" when unused. Even with no LoRAs, include the stacks. They pass CLIP through for text encoding.
Input frames MUST be resized to the target video resolution before FLF and CLIPVisionEncode. The end frame inherits width/height from the start frame's resize so the dimensions match.
{"class_type": "ImageResizeKJv2", "inputs": {
"image": ["<load_image>", 0], "width": 480, "height": 720,
"upscale_method": "nearest-exact", "keep_proportion": "crop",
"pad_color": "0, 0, 0", "crop_position": "center", "divisible_by": 2
}}| Parameter | Pass 1 (Hi) | Pass 2 (Lo) |
|---|---|---|
| model | Hi LoRA stack output | Lo LoRA stack output |
| add_noise | enable | disable |
| steps | 4 | 4 |
| cfg | 1 | 1 |
| sampler_name | uni_pc | uni_pc |
| scheduler | beta | beta |
| start_at_step | 0 | 2 |
| end_at_step | 2 | 4 |
| return_with_leftover_noise | enable | disable |
| latent_image | WanFLF output[2] | Pass 1 output[0] |
Both passes share the same positive/negative conditioning from WanFirstLastFrameToVideo outputs [0] and [1].
For standard (non-lightning) models: steps=20, split at step 10, cfg=4, sampler=euler, scheduler=simple, shift=8.
Always include a quality negative prompt:
The tones are vibrant, overexposed, static, details are unclear, subtitles, style, work, painting, image, still, overall grayish, worst quality, low quality, JPEG compression artifacts, ugly, incomplete, extra fingers, poorly drawn hands, poorly drawn faces, deformed, disfigured, distorted limbs, merged fingers, motionless image, cluttered background, three legs, many people in the background, walking backwardsRequired Inputs:
- positive: CONDITIONING (from CLIPTextEncode)
- negative: CONDITIONING (from CLIPTextEncode with negative prompt)
- vae: VAE
- width: INT (from ImageResizeKJv2 end frame output[1])
- height: INT (from ImageResizeKJv2 end frame output[2])
- length: INT (default 81, step 4) — number of frames
- batch_size: INT (default 1)
Optional Inputs:
- clip_vision_start_image: CLIP_VISION_OUTPUT (from CLIPVisionEncode)
- clip_vision_end_image: CLIP_VISION_OUTPUT (from CLIPVisionEncode)
- start_image: IMAGE (resized start frame)
- end_image: IMAGE (resized end frame)
Outputs:
- [0] positive: CONDITIONING → feed to BOTH Hi and Lo KSamplerAdvanced
- [1] negative: CONDITIONING → feed to BOTH Hi and Lo KSamplerAdvanced
- [2] latent: LATENT → feed to Hi Pass only (Lo Pass gets Hi Pass output)UNETLoader (HighNoise) → ModelSamplingSD3 (shift=5) → Hi Common Stack → Hi Lora Stack → MODEL_HI
UNETLoader (LowNoise) → ModelSamplingSD3 (shift=5) → Lo Common Stack → Lo Lora Stack → MODEL_LO
CLIPLoaderGGUF (wan) → CLIP
├─ CLIPTextEncode (positive) → CONDITIONING
└─ CLIPTextEncode (negative) → CONDITIONING
CLIPVisionLoader → CLIPVisionEncode (start) + CLIPVisionEncode (end)
VAELoader → VAE
LoadImage (start) → ImageResizeKJv2 (480x720) → resized start
LoadImage (end) → ImageResizeKJv2 (match dims) → resized end
WanFirstLastFrameToVideo (positive, negative, vae, clip_vision_start, clip_vision_end,
start_image, end_image, width/height from resize)
→ modified positive [0], modified negative [1], latent [2]
KSamplerAdvanced (Hi: MODEL_HI, steps 0→2, add_noise=enable, return_leftover=enable)
→ noisy LATENT
KSamplerAdvanced (Lo: MODEL_LO, steps 2→4, add_noise=disable, return_leftover=disable)
→ final LATENT
VAEDecode → IMAGE → VHS_VideoCombine (raw output)
→ VRAM_Debug → SeedVR2VideoUpscaler (1080p) → VHS_VideoCombine (upscaled)The full Native FLF (Remix NSFW + Lightning) graph is in references/workflows.md.
Add after VAEDecode for AI-powered video upscaling to 1080p. Use VRAM_Debug to free VRAM between generation and upscaling:
{
"25": { "class_type": "VRAM_Debug", "inputs": {
"image_pass": ["23", 0], "empty_cache": true, "gc_collect": true, "unload_all_models": true
}},
"26": { "class_type": "SeedVR2LoadDiTModel", "inputs": {
"model": "seedvr2_ema_3b_fp8_e4m3fn.safetensors", "device": "cuda:0",
"blocks_to_swap": 0, "swap_io_components": false, "cache_model": false, "attention_mode": "sdpa"
}},
"27": { "class_type": "SeedVR2LoadVAEModel", "inputs": {
"model": "ema_vae_fp16.safetensors", "device": "cuda:0",
"encode_tiled": false, "decode_tiled": false, "cache_model": false
}},
"28": { "class_type": "SeedVR2VideoUpscaler", "inputs": {
"image": ["25", 1], "dit": ["26", 0], "vae": ["27", 0],
"seed": 0, "resolution": 1080, "max_resolution": 0,
"batch_size": 5, "uniform_batch_size": false, "color_correction": "lab"
}},
"29": { "class_type": "VHS_VideoCombine", "inputs": {
"images": ["28", 0], "frame_rate": 16, "loop_count": 0,
"filename_prefix": "wan_flf_upscaled", "format": "video/h264-mp4",
"pingpong": false, "save_output": true,
"pix_fmt": "yuv420p", "crf": 19, "save_metadata": true, "trim_to_audio": false
}}
}When using GGUF Q8 models instead of Remix, add paired lightning LoRAs:
Hi path: UnetLoaderGGUF(HN Q8) → ModelSamplingSD3(shift=5) → LoraLoaderModelOnly(hi_noise_lightning) → Hi Common Stack → Hi Lora Stack
Lo path: UnetLoaderGGUF(LN Q8) → ModelSamplingSD3(shift=5) → LoraLoaderModelOnly(lo_noise_lightning) → Lo Common Stack → Lo Lora StackLoRA files:
Unknown\no tags\wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensorsUnknown\no tags\wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensorsUses the WanVideoWrapper custom node pack for more control over conditioning, caching, context windows, and advanced features.
WANVIDEOMODEL type instead of generic MODELWANVIDIMAGE_EMBEDS for conditioning instead of CONDITIONINGWanVideoSampler) with shift parameter and scheduler optionsWanVideoModelLoader → WANVIDEOMODEL
WanVideoVAELoader → WANVAE
WanVideoTextEncode → WANVIDEOTEXTEMBEDS
WanVideoClipVisionEncode (start + end images) → WANVIDIMAGE_CLIPEMBEDS
WanVideoVACEStartToEndFrame (start_image, end_image, num_frames=81)
→ images batch, masks
WanVideoVACEEncode (vae, input_frames, input_masks, width, height, num_frames)
→ WANVIDIMAGE_EMBEDS (vace_embeds)
WanVideoSampler (model, image_embeds, text_embeds, steps, cfg, shift, scheduler)
→ LATENT
WanVideoDecode (vae, samples) → IMAGE → VHS_VideoCombine → MP4| Parameter | Standard | Lightning | Notes |
|---|---|---|---|
| steps | 30 | 4 | |
| cfg | 6.0 | 1.0 | |
| shift | 5.0 | 5.0 | Flow matching shift |
| scheduler | unipc | euler | WanVideoWrapper has own schedulers |
| force_offload | true | true | Move model to CPU after sampling |
| Feature | Native | WanVideoWrapper |
|---|---|---|
| Simplicity | Simpler | More complex |
| Dual Hi-Lo | Manual two-pass | May handle internally |
| LoRA loading | Lora Loader Stack (rgthree) | WanVideoLoraSelect → WanVideoModelLoader lora (see merge_loras caveat) |
| Caching (TeaCache) | Not available | Built-in |
| Context windows | Not available | WanVideoContextOptions |
| Block swap (VRAM) | Not available | WanVideoBlockSwap |
| VACE conditioning | Not available | Full VACE support |
| Long video (>81 frames) | Limited | InfiniteTalk / context windows |
Recommendation: use Native dual hi-lo for standard FLF transitions. Use WanVideoWrapper when you need caching, context windows, VRAM management, or advanced conditioning.
merge_loras=false with fp8-scaled modelsWhen loading a LoRA through WanVideoLoraSelect → WanVideoModelLoader's lora
input on an fp8-quantized model (quantization=fp8_e4m3fn_scaled, e.g. the
official wan2.2_i2v_high/low_noise_14B_fp8_scaled weights), you MUST set the
WanVideoLoraSelect widget merge_loras=false.
merge_loras=true (the node default) tries to bake the LoRA deltas into the
already-quantized fp8 weights. That merge path hard-crashes ComfyUI during
LoRA loading. The process dies with no Python traceback (so
panel_get_errors / the frontend show nothing; only a process restart/OOM-style
symptom). This is the #1 cause of a "crashed on lora loading" report with the
wrapper.merge_loras=false applies the LoRA as a runtime patch during the forward
pass instead of merging. It is fp8-safe with negligible speed cost. This is the
correct setting for the lightx2v 4-step lightning LoRAs (hi + lo) on the fp8
hi/lo I2V models.WanVideoBlockSwap (e.g. 20 to 30 of 40
blocks → RAM) + merge_loras=false is the verified combo for fp8 14B I2V at
720p/81f on a 24GB card. (If you instead use a non-quantized bf16/fp16 model,
merge_loras=true is fine.)Separately, at 720p/81f enable enable_vae_tiling=true on WanVideoDecode.
The full-frame decode is the other common uncaught-OOM crash point.
| Aspect | Resolution | Megapixels |
|---|---|---|
| Portrait 2:3 | 480x720 | 0.35MP (recommended default) |
| Landscape 16:9 | 832x480 | 0.4MP |
| Portrait 9:16 | 480x832 | 0.4MP |
| Square | 640x640 | 0.4MP |
Width and height must be divisible by 16. Use ImageResizeKJv2 with divisible_by: 2 and keep_proportion: crop.
4n + 1 (1, 5, 9, ..., 49, 81, 121)Standard: 16 fps for WAN 2.2 output.
{
"class_type": "VHS_VideoCombine",
"inputs": {
"images": ["<vae_decode>", 0],
"frame_rate": 16,
"loop_count": 0,
"filename_prefix": "wan_flf",
"format": "video/h264-mp4",
"pingpong": false,
"save_output": true,
"pix_fmt": "yuv420p",
"crf": 19,
"save_metadata": true,
"trim_to_audio": false
}
}ComfyUI manages VRAM by offloading models between passes. The Hi UNET is offloaded before the Lo UNET loads.
clear_vram before switching to WAN from another model familyVRAM_Debug node between generation and SeedVR2 upscaling to free all VRAMBy default, FLF produces a transition/dissolve between frames. For true morphing (one shape continuously reshaping into another), use a morph LoRA on both Hi and Lo paths.
| Variant | File | Strength | Notes |
|---|---|---|---|
| HighNoise | wan2.2_i2v_magical_morph_highnoise.safetensors | 0.7-1.0 | Apply to Hi Common stack |
| LowNoise | wan2.2_i2v_magical_morph_lownoise.safetensors | 0.7-1.0 | Apply to Lo Common stack |
For person-to-person morphs (identity, gender transforms):
Skin morphDescribe the transition motion in addition to the start/end states:
Good: "A small cat sitting on the ground smoothly transforms and grows into a woman standing tall, seamless transformation, cinematic"
Bad: "A cat and a girl"IMPORTANT: prompt language affects visuals.
| Config | Lightning (Remix) | Standard |
|---|---|---|
| Models | Remix NSFW Hi+Lo fp16 | Official Hi+Lo fp8 |
| CLIP | nsfw_wan_umt5-xxl_bf16_fixed | umt5_xxl_fp8_e4m3fn_scaled |
| ModelSamplingSD3 shift | 5 | 8 |
| Total steps | 4 | 20 |
| Hi pass end_at_step | 2 | 10 |
| CFG | 1 | 4 |
| Sampler | uni_pc | euler |
| Scheduler | beta | simple |
| External LoRA needed | No (built-in) | Yes (paired hi/lo) |
When the start and end frames have different subject sizes (e.g., small cat → tall person), generate the "anchor" frame first (the one with the most complex composition), then use Qwen Edit to create the other frame from it. This gives you:
Example, cat-to-girl morph:
Anti-pattern: generating cat and girl independently produces mismatched scale.
upload_image (action:"stage") with each output's { filename, subfolder?, type? } and feed the returned input filename into each LoadImage. (For a frame already on local disk, use upload_image (action:"image").) NEVER copy the output file into, or guess, a filesystem input/ path. ComfyUI's input/output dirs may be CUSTOM (--input-directory / --output-directory), so a guessed path makes LoadImage reject the file (Invalid image file) and wastes the render. upload_image (action:"stage") routes through the server API (/view → /upload/image), which resolves the real dirs correctly.Proven timing on RTX 4090: Z-Image (35s) → Qwen Edit (78s) → WAN FLF 81 frames (139s) = ~4 minutes total.
Use get_workflow (action:"analyze") to understand any saved WAN FLF workflow before modifying or executing it. It returns a structured summary with sections, node IDs, key settings, and virtual wire connections. No raw JSON needed.
get_workflow(action="analyze", filename="Wan FirstLastFrame Advanced.json") # summary view (default)
get_workflow(action="analyze", filename="Wan FirstLastFrame Advanced.json", view="flat") # mermaid diagramOnly use get_workflow when you need the raw JSON for enqueue_workflow or create_workflow (action:"modify").
packs/ and observed renders; not a vendor prompting guide.© artokun, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in plugin/skills/wan-flf-video of artokun/comfyui-mcp.
Open the folder on GitHubat commit 6ad6fc0
Wan Flf Video next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Wan Flf Video this skillartokun/comfyui-mcp | 803 | — | ~5.1k | Automated safety check: Pass | MIT | |
| Gemma Trainergoogle-gemma/gemma-skills | 1k | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Hugging Face LLM Trainerhuggingface/skills | 11k | 1 repos | ~7.2k | Automated safety check: Pass | Apache-2.0 | |
| Unsloth Finetuningsickn33/agentic-awesome-skills | 47k | 1 repos | ~4.1k | Automated safety check: Pass | Apache-2.0 | |
| Quantized Exportwshobson/agents | 40k | — | ~2k | Automated safety check: Pass | MIT | |
| ML Research LabAnastasiyaW/codex-claude-code-config | 154 | — | ~794 | Automated safety check: Pass | MIT |
google-gemma/gemma-skills
Trigger this skill when the user wants to train, fine-tune, or adapt Gemma models (e.g.
huggingface/skills
Trains or fine-tunes language and vision models with TRL or Unsloth on Hugging Face Jobs cloud GPUs, then converts the results to GGUF.
sickn33/agentic-awesome-skills
Fine-tune and post-train LLMs with Unsloth Core on a single consumer GPU: VRAM sizing, LoRA/QLoRA, GRPO/DPO, chat-template correctness, and GGUF export.
wshobson/agents
Export a promoted fine-tuned model in the right deployment format — merged safetensors, LoRA-only, GGUF with imatrix, or FP8.
AnastasiyaW/codex-claude-code-config
Machine-learning research loop for dataset curation, fine-tuning, evaluation, inference deployment, experiment tracking, and model explainability.
ericrisco/rsc-harness
A skill your agent uses when adapting an open-weight model to a target form or behavior — tone, output format, reasoning pattern — via LoRA/QLoRA or full fine-tuning with TRL SFTTrainer, then…
artokun/comfyui-mcp
Train custom LoRAs with ostris AI-Toolkit. An agent skill from artokun/comfyui-mcp.
artokun/comfyui-mcp
Anime/illustration text-to-image (ANIMA 1.0, ~2B Cosmos DiT).
artokun/comfyui-mcp
Discover Civitai models with the BUILT-IN downloadmodel action:"searchcivitai" and install/generate them locally.
artokun/comfyui-mcp
Diagnose and fix video/image color OBJECTIVELY with the getimage (action:"analyzecolor") tool (scopes/stats such as black/white points, contrast, saturation, clipping, cast) instead of eyeballing a…
artokun/comfyui-mcp
Authoring ComfyUI v2 frontend extensions with @comfyorg/extension-api, covering defineNode/defineExtension/defineWidget, shell UI (sidebar tabs, commands, hotkeys), typed events, and handles.
artokun/comfyui-mcp
Pick the right ComfyUI startup flags for VRAM, attention, caching, and speed.
Works with
Categories
Build WAN 2.2 First-Last-Frame video workflows. An agent skill from artokun/comfyui-mcp. Wan Flf Video is an agent skill from artokun/comfyui-mcp.2 First-Last-Frame video workflows.
Wan Flf Video fits situations like: tasks that involve Fine-tuning.
Run `npx skills add artokun/comfyui-mcp --skill wan-flf-video -a claude-code`. Or copy the skill folder (plugin/skills/wan-flf-video in artokun/comfyui-mcp) into .claude/skills/wan-flf-video in your project. Claude Code loads it when a task matches its description.
Run `npx skills add artokun/comfyui-mcp --skill wan-flf-video -a codex`. Or copy the skill folder (plugin/skills/wan-flf-video in artokun/comfyui-mcp) into .agents/skills/wan-flf-video in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add artokun/comfyui-mcp --skill wan-flf-video -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/wan-flf-video, .gemini/skills/wan-flf-video, .github/skills/wan-flf-video and .opencode/skills/wan-flf-video in your project.
SKILL.md names no scripts, command-line tools or credentials: Wan Flf Video is instructions for the agent only.
SKILL.md names 2 domains. As links in the text: huggingface.co and civitai.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Wan Flf Video is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.1k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Wan Flf Video: Gemma Trainer (google-gemma/gemma-skills, 1k stars), Hugging Face LLM Trainer (huggingface/skills, 11k stars), Unsloth Finetuning (sickn33/agentic-awesome-skills, 47k stars) and Quantized Export (wshobson/agents, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
artokun (a GitHub user) maintains it in artokun/comfyui-mcp, which has 803 GitHub stars. The repository holds 42 skills in this directory. The repository was last updated on October 5, 2026.
Source: artokun/comfyui-mcp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.