Nsfw Video
LeoYeAI/openclaw-master-skills
Generate AI videos for mature creative projects using Wan 2.2 Spicy (LoRA-tuned for NSFW, top recommended), Wan 2.6, Seedance 1.5, Vidu Q3-Pro, and other models with relaxed content policies via…
Build Lightricks LTX-2 / LTX-2.3 video workflows covering text-to-video, image-to-video, GGUF and bundled checkpoints, distilled model, camera control LoRAs, synchronized audio, two-stage upscaling…
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add artokun/comfyui-mcp --skill ltxv2-video -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install artokun/comfyui-mcp ltxv2-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/ltxv2-video .claude/skills/ltxv2-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 "ltxv2-video" agent skill from https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/ltxv2-video into .claude/skills/ltxv2-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ltxv2-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/ltxv2-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 ltxv2-video -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install artokun/comfyui-mcp ltxv2-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/ltxv2-video .agents/skills/ltxv2-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 "ltxv2-video" agent skill from https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/ltxv2-video into .agents/skills/ltxv2-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ltxv2-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 ltxv2-video -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install artokun/comfyui-mcp ltxv2-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/ltxv2-video .cursor/skills/ltxv2-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 "ltxv2-video" agent skill from https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/ltxv2-video into .cursor/skills/ltxv2-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ltxv2-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/ltxv2-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 ltxv2-video -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install artokun/comfyui-mcp ltxv2-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/ltxv2-video .gemini/skills/ltxv2-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 "ltxv2-video" agent skill from https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/ltxv2-video into .gemini/skills/ltxv2-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ltxv2-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 ltxv2-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 ltxv2-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/ltxv2-video .github/skills/ltxv2-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 "ltxv2-video" agent skill from https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/ltxv2-video into .github/skills/ltxv2-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ltxv2-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 ltxv2-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 ltxv2-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/ltxv2-video .opencode/skills/ltxv2-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 "ltxv2-video" agent skill from https://github.com/artokun/comfyui-mcp/tree/main/plugin/skills/ltxv2-video into .opencode/skills/ltxv2-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ltxv2-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.
ltxv2-videoBuild Lightricks LTX-2 / LTX-2.3 video workflows covering text-to-video, image-to-video, GGUF and bundled checkpoints, distilled model, camera control LoRAs, synchronized audio, two-stage upscaling…
Ltxv2 Video is an agent skill from artokun/comfyui-mcp. Build Lightricks LTX-2 / LTX-2.3 video workflows covering text-to-video, image-to-video, GGUF and bundled checkpoints, distilled model, camera control LoRAs, synchronized audio, two-stage upscaling, and swapping alternate/GGUF base models
Its SKILL.md is about 6.8k 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 Media & Creative, covering AI video generation and 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.
6 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.
Shell commands in SKILL.md call:
pythonffmpegFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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.
Ltxv2 Video loads about 6.8k tokens when it runs, and up to ~8.8k if it reads all its reference files. Until then it costs about 63 tokens; SKILL.md has 2,786 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 patterns that need a careful read before installing.
> the `filename_prefix` (e.g. `ltxv2_…⟨U+200B⟩.mp4`), check the mtime is fresh, thenAutomated 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). 2,786 words, ~6,754 tokens.
.claude/skills/ltxv2-video/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.There is no "LTX 3.2" or "LTX2.3" as separate products. The user's shorthand refers to Lightricks LTX-2.3, a point release of the LTX-2 family. The lineage is:
ltx-2-19b-distilled.safetensors, Gemma 3 12B text encoder.When the user says "LTX3.2" / "LTX2.3", treat it as LTX-2.3. This skill covers both LTX-2 (bundled checkpoint path) and LTX-2.3 (GGUF UNet path).
The GGUF-UNet +
DualCLIPLoader+gemma_3_12B_it_fp4_mixedpath documented later in this skill (the Aitrepreneur installer path) produces soft/mushy video with inaccurate faces and eyes. It runs, but it is NOT the quality path. The setup below is the official Comfy-Org template, render-proven sharp (1280×704, accurate faces, synchronized 48 kHz stereo audio).
| Component | File | Source repo | Folder | Notes |
|---|---|---|---|---|
| Checkpoint | ltx-2.3-22b-dev.safetensors (46 GB, max quality) or ltx-2.3-22b-dev-fp8.safetensors (~23 GB, official VRAM-friendly) | Lightricks/LTX-2.3 / Lightricks/LTX-2.3-fp8 | checkpoints/ (NOT unet/) | The checkpoint carries the transformer and the audio VAE. Loaded by CheckpointLoaderSimple + reused by LTXVAudioVAELoader + LTXAVTextEncoderLoader. |
| Gemma text encoder | gemma_3_12B_it_fp8_scaled.safetensors (13 GB) | Comfy-Org/ltx-2 → split_files/text_encoders/ | text_encoders/ | Use fp8_scaled (unpacked). The Aitrepreneur fp4_mixed mirror file is truncated (5.3 GB vs 9.4 GB) AND a packed-fp4 layout core can't reshape → shape [15360,1920] invalid for input 27582328. |
| Distilled speed LoRA | ltx_2.3_22b_distilled_1.1_lora_dynamic_fro09_avg_rank_111_bf16.safetensors @ 0.5 | Comfy-Org/ltx-2.3 → split_files/loras/ | loras/ | The newer dynamic rank-111 distilled LoRA — NOT the older ...384-1.1. |
| Gemma abliterated LoRA ⭐ | gemma-3-12b-it-abliterated_lora_rank64_bf16.safetensors @ 1.0 | Comfy-Org/ltx-2 → split_files/loras/ | loras/ | Applied to the text-encoder CLIP via a LoraLoader. This is the prompt-accuracy / correct-eyes fix. Missing this = subtly-wrong faces. |
| Spatial upscaler | ltx-2.3-spatial-upscaler-x2-1.1.safetensors | Lightricks/LTX-2.3 | latent_upscale_models/ | Used by the stage-2 LTXVLatentUpsampler. Use x2-1.1, not x2-1.0. |
LTXAVTextEncoderLoader (CORE, comfy_extras/nodes_lt_audio.py) loads gemma + the full checkpoint together via comfy.sd.load_clip([gemma, ckpt], type=LTXV). This is the audio-video encoder driving both video and audio/voice. Do NOT use DualCLIPLoader(type=ltxv) + a separate ltx-2.3_text_projection file. That is the legacy video-only path and yields mush.LoraLoader (CLIP LoRA) on the encoder output → CLIPTextEncode.LTXVLatentUpsampler (×2 spatial, uses the upscaler model + the checkpoint VAE) → refine sample → 1280×704 output. The upscale is the sharpness. A single-stage graph is visibly softer.CFGGuider cfg=1 (distilled); the LTXVideo repo example uses MultimodalGuider + GuiderParameters (separate AUDIO/VIDEO) + ClownSampler_Beta (RES4LYF). Both produce sharp output. The LoRAs + two-stage matter more than the guider.<comfy-venv>/python -m pip install imageio-ffmpeg, then reboot. CreateVideo/SaveVideo/VHS_VideoCombine fail with ffmpeg ... could not be found otherwise.ComfyUI-LTXVideo (LTXV* nodes, MultimodalGuider, GuiderParameters, LTXVPreprocess, LTXVTiledVAEDecode, GemmaAPITextEncode, LTXFloatToInt) + RES4LYF (ClownSampler_Beta, only for the repo-example sampler). LTXAVTextEncoderLoader, ResizeImageMaskNode, CreateVideo, SaveVideo, ManualSigmas, LTXVScheduler, the Primitive* nodes are all CORE ComfyUI.
DualCLIPLoader+projection text encoder. Fix: set a prompt; use LTXAVTextEncoderLoader.status: success but no video file / outputs only has a math or text node → the output node (SaveVideo/VHS) failed validation and was silently dropped; the graph short-circuited. Check the ComfyUI log for Failed to validate prompt for output N and fix that node (missing ffmpeg, a broken connection, a model-not-in-list).DualCLIPLoader reshape [15360,1920] invalid for input 27582328 → wrong/truncated gemma → use gemma_3_12B_it_fp8_scaled.LatentUpscaleModelLoader: ...x2-1.0 not in list → reference ...x2-1.1.video/<prefix>_NNNNN.mp4). Its history outputs entry isn't under images/videos/gifs, so a naive "find the video" check misses it. Look on disk under output/video/.src/services/workflow-converter.ts)The official template exercised several convertUiToApi gaps, all now fixed. Keep them in mind if a template still mis-converts:
COMFY_DYNAMICCOMBO_V3, e.g. ResizeImageMaskNode.resize_type): each selected option's nested input must be keyed <combo>.<nested> (e.g. resize_type.longer_size, resize_type.width), NOT flat. ComfyUI rebuilds the nested dict via dynamic_paths/finalize_prefix. A flat key is rejected required_input_missing.Reroute is virtual. Its connections must be passed through (consumer resolves to the Reroute's input), else everything downstream dangles and the graph short-circuits.VHS_VideoCombine stores widgets_values as a name→value object, not a positional array.Primitive* nodes (PrimitiveInt/Float/Boolean/StringMultiline) are real executable nodes. Keep them as link sources; don't bake their values into a consumer's widgets_values by index (mis-positions V3 nested inputs).packs/ltx-2.3-txt2vid (and the i2v/flf/extender variants) should be built on this official two-stage template. For a no-input-file T2V pack, set the template's bypass_i2v / "Switch to Text to Video?" boolean true and feed the I2V image input a blank EmptyImage (discarded at runtime but still validates).
Source note: the install scripts below pull LTX-2.3 files from a third-party mirror repo
huggingface.co/Aitrepreneur/FLX, not the officialLightricks/LTX-2.3repo. The official weights live athuggingface.co/Lightricks/LTX-2.3. Filenames/quants match what those scripts download.
LTX-2 is a DiT-based video foundation model from Lightricks. It uses a Gemma 3 12B text encoder and supports both text-to-video (T2V) and image-to-video (I2V). Key features:
| Component | Node | Model | Notes |
|---|---|---|---|
| Checkpoint | CheckpointLoaderSimple | ltx-2-19b-distilled.safetensors | 41GB bf16, distilled variant; bundles VAE internally |
| Gemma 3 | CLIPLoader (type=ltxv) | gemma_3_12B_it_fp4_mixed.safetensors | 9GB FP4, in text_encoders/ |
Loading note (LTX-2): The bundled checkpoint contains the VAE internally. The Gemma 3 text encoder loads separately via CLIPLoader with type: "ltxv" pointing at text_encoders/.
LTX-2.3 ships as a separate GGUF UNet + standalone VAE + text encoder + text projection, not a single bundled checkpoint. The install scripts (see below) place files like this:
| Component | Node | Model file | Folder | Notes |
|---|---|---|---|---|
| UNet (GGUF) | UnetLoaderGGUF ("Unet Loader (GGUF)", bootleg category, from ComfyUI-GGUF) | ltx-2.3-22b-dev-Q4_K_S.gguf / -Q5_K_S.gguf / -Q8_0.gguf | models/unet/ | 22B dev model. Q4_K_S <12GB VRAM, Q5_K_S 12–16GB, Q8_0 24GB+ |
| Video VAE | VAELoader | LTX23_video_vae_bf16.safetensors | models/vae/ | rebuilt LTX-2.3 VAE |
| Audio VAE | VAELoader | LTX23_audio_vae_bf16.safetensors | models/vae/ | only for audio-sync output |
| Gemma 3 | CLIPLoader (type=ltxv) | gemma_3_12B_it_fp4_mixed.safetensors | models/text_encoders/ | same FP4 encoder as LTX-2 |
| Text projection | loaded with the text encoder | ltx-2.3_text_projection_bf16.safetensors | models/text_encoders/ | the enlarged text connector new in 2.3 |
| Spatial upscaler | LatentUpscaleModelLoader | ltx-2.3-spatial-upscaler-x2-1.1.safetensors | models/latent_upscale_models/ | replaces LTX-2's ...x2-1.0 |
Loading note (LTX-2.3): Because the UNet is a bare GGUF, the VAE no longer comes "for free" with a checkpoint. Load LTX23_video_vae_bf16.safetensors explicitly with VAELoader. Place GGUF UNets in models/unet/ and use the GGUF Unet loader. Some community 2.3 workflows pair gemma_3_12B_it.safetensors (full) instead of the FP4 mixed file; the installer uses the FP4 mixed one.
The exact download commands for both paths live in references/workflows.md.
| LoRA | File | Purpose |
|---|---|---|
| Distilled LoRA (384, 2.3) | loras/ltx-2.3-22b-distilled-lora-384-1.1.safetensors | Apply to the 2.3 dev UNet for fast distilled behavior |
| IC-LoRA detailer | loras/ltx-2-19b-ic-lora-detailer.safetensors | Detail/refinement IC-LoRA |
| Distilled LoRA (384, LTX-2) | ltx2/ltx-2-19b-distilled-lora-384.safetensors | Apply to LTX-2 base for distilled behavior |
| Camera Dolly Left | ltx-2-19b-lora-camera-control-dolly-left.safetensors | Camera movement (see Camera Control section) |
Located in loras/LTXV2/:
style/PLORAV7_LTX_000010500.safetensorsconcept/head_swap_v1_13500_first_frame.safetensorsconcept/LTX-2 - Better Female Nudity.safetensorsaction/LTX2-i2v-OralSuite.safetensorsaction/LTX2-i2v-SexThrust.safetensorsconcept/ and action/ subfoldersBinds text conditioning with frame rate information:
{
"class_type": "LTXVConditioning",
"inputs": {
"positive": ["<clip_text_encode>", 0],
"negative": ["<clip_text_encode_neg>", 0],
"frame_rate": 25
}
}Creates the initial video latent (for T2V):
{
"class_type": "EmptyLTXVLatentVideo",
"inputs": {
"width": 768,
"height": 512,
"length": 97,
"batch_size": 1
}
}Frame count constraint: Must be 8n + 1 (9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97, 105, 113, 121).
Dedicated sigma schedule for LTX-V2 latent space:
{
"class_type": "LTXVScheduler",
"inputs": {
"steps": 8,
"max_shift": 2.05,
"base_shift": 0.95,
"stretch": true,
"terminal": 0.1
}
}Connect the optional latent input for latent-aware shift scaling.
Feeding a prior stage's output into I2V (e.g. Krea2 image → LTX video). The
LoadImagethat feedsLTXVImgToVideo.imageneeds the source frame registered as a ComfyUI INPUT. When that frame is an OUTPUT from an earlier stage, callupload_image (action:"stage")with its{ filename, subfolder?, type? }and drop the returned input filename intoLoadImage. (For a file already on local disk,upload_image (action:"image").) NEVER copy the output file into, or guess, a filesysteminput/path. ComfyUI's input/output dirs may be CUSTOM (--input-directory/--output-directory), so a guessed path makesLoadImagereject the file (Invalid image file) and wastes the render.upload_image (action:"stage")goes through the server API (/view→/upload/image) and resolves the real dirs correctly.
VERIFY A VIDEO RENDER VIA THE FILESYSTEM, NOT /history.
VHS_VideoCombine(and similar video nodes) write the .mp4 but frequently do NOT register the output in ComfyUI's/history. The prompt shows done with an empty outputs map and no error. Do NOT conclude the render "silently dropped" fromget_history/queue(action:"status") alone. Confirm the file withget_image (action:"list_outputs")(it now lists videos too, withkind: "video"): match thefilename_prefix(e.g.ltxv2_….mp4), check the mtime is fresh, then chain it into the next stage withupload_image (action:"stage").
All-in-one node that encodes image, creates latent, and wraps conditioning:
{
"class_type": "LTXVImgToVideo",
"inputs": {
"positive": ["<conditioning>", 0],
"negative": ["<conditioning>", 0],
"vae": ["<checkpoint>", 2],
"image": ["<load_image>", 0],
"width": 768,
"height": 512,
"length": 97,
"batch_size": 1,
"strength": 0.6
}
}Gotcha:
strengthcontrols motion; DON'T set it to 1.0.LTXVImgToVideo.strengthis how strongly the output adheres to the start image: higher = more adherence = LESS motion. Setting it to 1.0 pins every frame to the start image → a FROZEN i2v with ZERO motion (the storyboard frames come out nearly identical). Keep the verified value ~0.6 (as in the example above) for proper motion. If a generated i2v clip shows little/no motion, the FIRST thing to check is thatstrengthwasn't bumped toward 1.0.
{
"class_type": "LTXVLatentUpsampler",
"inputs": {
"latent": ["<sampler_output>", 0],
"upscale_model": ["<upscale_loader>", 0]
}
}Requires LatentUpscaleModelLoader. Use ltx-2.3-spatial-upscaler-x2-1.1.safetensors for LTX-2.3 (or ltx-2-spatial-upscaler-x2-1.0.safetensors for LTX-2).
Uses SamplerCustomAdvanced with manual sigmas, NOT standard KSampler:
| Parameter | Stage 1 (Generate) | Stage 2 (Upscale) |
|---|---|---|
| sampler | euler | euler |
| steps | 8 | 4 |
| cfg | 1.0 | 1.0 |
| scheduler | LTXVScheduler | Manual sigmas |
Stage 1 sigmas (via LTXVScheduler): max_shift=2.05, base_shift=0.95, stretch=true, terminal=0.1
Stage 2 sigmas (manual, for upscale refinement): 0.909375, 0.725, 0.421875, 0.0
| Parameter | Value |
|---|---|
| sampler | res_2s |
| steps | 20 |
| cfg | 4.0 |
| scheduler | LTXVScheduler |
| distilled_lora_strength | 0.6 |
| Aspect | Stage 1 | After 2x Upscale | Notes |
|---|---|---|---|
| 3:2 landscape | 768x512 | 1536x1024 | Default |
| 16:9 landscape | 960x544 | 1920x1088 | Official example |
| 1:1 square | 640x640 | 1280x1280 | |
| 4:3 landscape | 704x512 | 1408x1024 |
Start at lower resolution for Stage 1 to manage VRAM, then upscale.
8n + 1)| Frames | Duration @25fps | Duration @24fps | Notes |
|---|---|---|---|
| 49 | 1.96s | 2.04s | Quick test |
| 81 | 3.24s | 3.38s | Short clip |
| 97 | 3.88s | 4.04s | Default |
| 121 | 4.84s | 5.04s | Official example, recommended |
| 161 | 6.44s | 6.71s | Longer clip |
| 257 | 10.28s | 10.71s | Maximum |
Standard: 25 fps (conditioned via LTXVConditioning). 24 and 30 fps also supported.
CheckpointLoaderSimple → MODEL + VAE
CLIPLoader (ltxv, gemma_3_12B_it_fp4_mixed) → CLIP
├─ CLIPTextEncode (positive) → CONDITIONING
└─ CLIPTextEncode (negative) → CONDITIONING
LTXVConditioning (positive, negative, frame_rate=25) → pos/neg CONDITIONING
EmptyLTXVLatentVideo (768x512, 121 frames) → LATENT
LTXVScheduler (steps=8, max_shift=2.05, base_shift=0.95) → SIGMAS
SamplerCustomAdvanced (model, sigmas, positive, negative, latent)
→ Stage 1 LATENT
[Optional: LTXVLatentUpsampler → 2x LATENT → SamplerCustomAdvanced Stage 2]
VAEDecode (or LTXVSpatioTemporalTiledVAEDecode for VRAM savings) → IMAGE
VHS_VideoCombine (or CreateVideo + SaveVideo) → MP4Both end-to-end graphs, T2V Distilled (8-Step) and LTX-2.3 GGUF (dev, T2V), are in references/workflows.md.
Seven official camera control LoRAs from Lightricks:
| Movement | LoRA File |
|---|---|
| Dolly Left | ltx-2-19b-lora-camera-control-dolly-left.safetensors |
| Dolly Right | ltx-2-19b-lora-camera-control-dolly-right.safetensors |
| Dolly In | ltx-2-19b-lora-camera-control-dolly-in.safetensors |
| Dolly Out | ltx-2-19b-lora-camera-control-dolly-out.safetensors |
| Jib Up | ltx-2-19b-lora-camera-control-jib-up.safetensors |
| Jib Down | ltx-2-19b-lora-camera-control-jib-down.safetensors |
| Static | ltx-2-19b-lora-camera-control-static.safetensors |
Usage: Apply with LoraLoaderModelOnly at strength 1.0. Do NOT describe camera movement in your prompt. The LoRA handles it.
{
"class_type": "LoraLoaderModelOnly",
"inputs": {
"model": ["<checkpoint>", 0],
"lora_name": "ltx-2-19b-lora-camera-control-dolly-left.safetensors",
"strength_model": 1.0
}
}Cannot combine camera control LoRA with IC-LoRA (canny/depth/pose) in the same generation.
Apply with LoraLoaderModelOnly. Typical strength: 0.5 to 1.0.
{
"class_type": "LoraLoaderModelOnly",
"inputs": {
"model": ["<checkpoint_or_camera_lora>", 0],
"lora_name": "LTXV2\\concept\\LTX-2 - Better Female Nudity.safetensors",
"strength_model": 0.8
}
}Concept/style LoRAs CAN be stacked with camera control LoRAs.
| Config | VRAM | Notes |
|---|---|---|
| bf16 checkpoint + FP4 Gemma | ~24GB+ | Tight on RTX 4090, may OOM |
| FP8 checkpoint + FP4 Gemma | ~16-20GB | Recommended for 24GB GPUs |
| bf16 + tiled VAE decode | ~22GB | Use LTXVSpatioTemporalTiledVAEDecode |
VRAM warnings from MEMORY.md: "LTXV2 can OOM on 24GB — suggest FP8 quantized models or --lowvram"
VAEDecodeTiled or LTXVSpatioTemporalTiledVAEDecode instead of standard VAEDecodeclear_vram before switching to LTX-V2 from another model familyNatural language descriptions. Be specific about motion, camera angles, and temporal progression:
Good: "A woman with flowing auburn hair walks through a sun-dappled forest, leaves falling gently around her, soft golden hour lighting, cinematic depth of field"
Bad: "woman, forest, walking"Describe the entire scene progression, not a single moment. Include lighting, mood, and motion cues.
For production quality, generate at low resolution then upscale:
LTXVLatentUpsampler (2x spatial) → 1536x1024This requires the spatial upscaler model in models/latent_upscale_models/: ltx-2.3-spatial-upscaler-x2-1.1.safetensors (LTX-2.3) or ltx-2-spatial-upscaler-x2-1.0.safetensors (LTX-2).
You can swap the LTX UNet for any LTX-2.3-compatible base model. The most-asked-about one is Sulphur 2 (the user's "sulphur2Base_dev.safetensors"; see name note below).
sulphur2Base_dev.safetensors. The real base checkpoints are sulphur_dev_bf16.safetensors (~46 GB) and sulphur_dev_fp8mixed.safetensors (~29 GB). There is also a distilled variant (sulphur_distil_bf16.safetensors) and a LoRA (sulphur_lora_rank_768.safetensors). Treat "sulphur2Base_dev" as the user's shorthand for the Sulphur 2 base dev checkpoint.vantagewithai/Sulphur-2-Base-GGUF hosts sulphur_dev-<quant>.gguf for Q3_K_S/M, Q4_0/1/K_S/K_M, Q5_0/1/K_S/K_M, Q6_K, Q8_0 (~10 to 23 GB). There is also a Civitai/Sulphur-2-distilled-fp8 and Civitai listings ("Sulphur 2 Base", "Rebels Sulphur 2 GGUF").SulphurAI/Sulphur-2-base (safetensors + a bundled Qwen-based prompt-enhancer GGUF), HF vantagewithai/Sulphur-2-Base-GGUF (the GGUF quants), and Civitai mirrors. Uncensored open weights are in scope to document. Nothing here is fabricated, but verify the exact repo/license yourself before downloading.The GGUF quant is a different UNet and nothing more. Load it with the same UnetLoaderGGUF node and keep the rest of the 2.3 graph identical:
sulphur_dev-Q8_0.gguf (or your chosen quant) in models/unet/."1":"1": { "class_type": "UnetLoaderGGUF", "inputs": { "unet_name": "sulphur_dev-Q8_0.gguf" }}VAELoader → LTX23_video_vae_bf16.safetensors, CLIPLoader (type=ltxv) → gemma_3_12B_it_fp4_mixed.safetensors, plus ltx-2.3_text_projection_bf16.safetensors. These must match the LTX-2.3 architecture. Do not pair it with LTX-2 (19B) VAE/encoder.UnetLoaderGGUF.8n+1, resolution multiples of 32, LTXVConditioning frame_rate, dev model ~20+ steps / distilled ~8 steps.To verify a third-party model is usable before wiring it up:
models/unet/, loaded via UnetLoaderGGUF. Match the correct VAE + text encoder + text projection for that LTX version.sulphur_lora_rank_768.safetensors), apply it to the matching base UNet with LoraLoaderModelOnly instead of swapping the whole model.pad ImportError)Symptom: ComfyUI-LTXVideo fails to load with an ImportError from kornia.geometry.transform.pyramid because pad can no longer be imported. This happens with kornia 0.8.3+, which stopped exporting pad from that module.
What the fix does (FIX-LTXVIDEO-KORNIA.bat, run from the ComfyUI_windows_portable folder): it patches ComfyUI/custom_nodes/ComfyUI-LTXVideo/pyramid_blending.py:
pyramid_blending.py.bak_kornia_fix.pad, line from the from kornia.geometry.transform.pyramid import ( ... ) block.import torch.nn.functional as F:# Compatibility fix for Kornia 0.8.3+ where pad is no longer exported here
pad = F.padpad = F.pad is present and the broken import is gone.Manual equivalent if you don't run the .bat: edit pyramid_blending.py to delete pad, from the kornia import list and add pad = F.pad after the import torch.nn.functional as F line, then restart ComfyUI. (Alternatively, pin kornia to a pre-0.8.3 release, but the patch is the lighter-touch fix and is what the install set ships.)
The RunPod installer pins ComfyUI-LTXVideo to commit cd5d371518afb07d6b3641be8012f644f25269fc for workflow compatibility. If 2.3 workflows error on the latest LTXVideo, check out that commit. Torch is pinned to 2.4.0 + cu121; do not let a node's requirements.txt upgrade torch (the installers sanitize requirements to prevent this).
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. 1 hidden character (zero-width or bidirectional) removed. Raw file
SKILL.md and 1 other file (references) in plugin/skills/ltxv2-video of artokun/comfyui-mcp.
Open the folder on GitHubat commit 6ad6fc0
Ltxv2 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 |
|---|---|---|---|---|---|---|
| Ltxv2 Video this skillartokun/comfyui-mcp | 803 | — | ~6.8k | Automated safety check: Warn | MIT | |
| Nsfw VideoLeoYeAI/openclaw-master-skills | 2.2k | — | ~4.6k | Automated safety check: Pass | MIT | |
| Gemini Live APIgoogle/skills | 21k | — | ~2.5k | Automated safety check: Notes | Apache-2.0 | |
| Tao Finetune Cosmos EmbedNVIDIA/skills | 3.6k | — | ~3.5k | Automated safety check: Notes | Apache-2.0 | |
| 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 |
LeoYeAI/openclaw-master-skills
Generate AI videos for mature creative projects using Wan 2.2 Spicy (LoRA-tuned for NSFW, top recommended), Wan 2.6, Seedance 1.5, Vidu Q3-Pro, and other models with relaxed content policies via…
google/skills
Generates a Gemini LiveAPI client service class in the user's chosen programming language.
NVIDIA/skills
Cosmos-Embed1 video-text embedding for text-to-video retrieval, video-to-video search, semantic deduplication, and fine-tuning.
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.
waybarrios/opencode-power-pack
Train or fine-tune language models with TRL or Unsloth on Hugging Face Jobs, including SFT, DPO, GRPO, reward models, and GGUF conversion.
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 Lightricks LTX-2 / LTX-2.3 video workflows covering text-to-video, image-to-video, GGUF and bundled checkpoints, distilled model, camera control LoRAs, synchronized audio, two-stage upscaling…. Ltxv2 Video is an agent skill from artokun/comfyui-mcp.
Ltxv2 Video fits situations like: tasks that involve AI video generation; tasks that involve Fine-tuning.
Run `npx skills add artokun/comfyui-mcp --skill ltxv2-video -a claude-code`. Or copy the skill folder (plugin/skills/ltxv2-video in artokun/comfyui-mcp) into .claude/skills/ltxv2-video in your project. Claude Code loads it when a task matches its description.
Run `npx skills add artokun/comfyui-mcp --skill ltxv2-video -a codex`. Or copy the skill folder (plugin/skills/ltxv2-video in artokun/comfyui-mcp) into .agents/skills/ltxv2-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 ltxv2-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/ltxv2-video, .gemini/skills/ltxv2-video, .github/skills/ltxv2-video and .opencode/skills/ltxv2-video in your project.
Going by SKILL.md and its folder, Ltxv2 Video needs the command-line tools its instructions call (python and ffmpeg). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): contains zero-width characters. Read the flagged lines before installing; the check is not a guarantee either way.
Ltxv2 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 6.8k tokens (SKILL.md is roughly 27k 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 2.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Ltxv2 Video: Nsfw Video (LeoYeAI/openclaw-master-skills, 2.2k stars), Gemini Live API (google/skills, 21k stars), Tao Finetune Cosmos Embed (NVIDIA/skills, 3.6k stars) and Gemma Trainer (google-gemma/gemma-skills, 1k 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.