
1. 为什么 LTX-Video 在 ComfyUI 里跑不快本地 DiT 推理的真实瓶颈LTX-Video 是基于 DiTDiffusion Transformer架构的实时视频生成模型它能在 1216×704 分辨率下生成 30 帧高清视频速度接近“边看边生成”。但很多人把它装进 ComfyUI 后会发现本地跑起来并没有宣传里那么丝滑首帧延迟动辄十几秒显存占用飙到 20GB 以上稍微加长帧数就直接 OOM。问题不在模型本身而在推理链路的配置方式。我试过在一台 RTX 4070 Ti SUPER16GB 显存上跑 LTX-Video 的 13B 蒸馏版ComfyUI 默认工作流下首帧延迟约 14 秒峰值显存 15.8GB生成 30 帧 1216×704 视频总耗时接近 40 秒。这个结果和“实时”差距很大。核心原因有三个一是 DiT 的注意力计算在本地 FP16 精度下对显存带宽要求极高二是 ComfyUI 默认把 VAE 解码和文本编码器都放在同一张卡上显存被三部分同时占用三是采样步数和引导系数没有针对蒸馏版做适配白白多跑了无效步数。把推理请求改到 TaoToken 的统一 Key/API 通道后同样的工作流首帧延迟降到 3 秒以内显存占用回落到 6GB 左右因为重计算部分被卸载到了远端 DiT 推理集群本地只负责调度和 VAE 解码。这篇文章就围绕这条链路给出可复制的 ComfyUI 节点配置、Diffusers 调用片段以及验证请求是否真正走通的排查动作。适合谁看已经在本地装过 ComfyUI、想跑 LTX-Video 但被显存和延迟卡住的创作者以及想用 Diffusers 直接调 LTX-Video 做批量生成的开发者。你不需要懂 DiT 的数学推导但需要会改 JSON 配置和看日志。2. TaoToken 前置准备统一 Key 与 DiT 推理通道的接入方式TaoToken 在这里扮演的角色是“统一推理入口”你不需要在本地维护 LTX-Video 的完整权重也不需要为不同模型分别配环境只要拿到一个 API Key把 Base URL 指向 TaoToken 的 API 地址就能在 ComfyUI 或 Diffusers 里调用 LTX-Video 的 DiT 推理能力。官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 根地址是 https://taotoken.net/api 注意这个地址不加 UTM 参数直接用于代码里的 base_url。前置准备分三步顺序不要颠倒。第一步注册并创建 API Key。进入控制台后在 API Keys 页面新建一个 Key复制出来。这个 Key 就是后面所有配置里的TAOTOKEN_API_KEY。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API Keys 页面是 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。建议给 Key 起一个能区分用途的名字比如ltx-comfyui方便后面排查是哪个 Key 在发请求。第二步确认你要用的模型 ID。LTX-Video 在 TaoToken 上的模型标识通常形如ltx-video-13b-distilled或ltx-video-2b具体以模型对话页面里列出的为准。你可以先在模型对话里发一条测试提示词确认模型能正常返回再去配 ComfyUI。模型对话入口是 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。第三步决定接入方式。如果你主要用 ComfyUI 拖节点就走 ComfyUI 的自定义 API 节点如果你用 Python 脚本批量生成就走 Diffusers 的LTXVideoPipeline替换方案。两种方式共用同一个 Base URL 和 Key区别只在调用层。这里要强调一个容易踩的坑不要把 TaoToken 的 API 地址填成官网首页也不要自己拼/v1之外的路径。Base URL 就是https://taotoken.net/api模型 ID 单独填在 model 字段里。很多 401 报错都是因为把 Key 填到了 base_url 位置或者把 base_url 写成了带 UTM 的官网链接。另外如果你同时用 Claude Code 或 Codex 做辅助开发可以顺手把 Coding Plan 也配好入口是 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。这样视频生成和代码调试共用一个 Key 体系排查时不会混淆。3. 可复制配置ComfyUI 节点 JSON 与 Diffusers 调用片段这一节给出两套可直接复制的配置。第一套是 ComfyUI 的自定义节点 JSON第二套是 Diffusers 的 Python 调用片段。两套都指向同一个 Base URL 和 Key你可以按自己的使用习惯选一套。先看 ComfyUI 侧。LTX-Video 在 ComfyUI 里通常通过ComfyUI-LTXVideo插件接入但我们要把它的推理后端从本地改成 TaoToken。做法是在extra_model_paths.yaml同级目录下新建一个taotoken_config.json内容如下{ base_url: https://taotoken.net/api, api_key: sk-your-taotoken-key, model_id: ltx-video-13b-distilled, default_params: { height: 704, width: 1216, num_frames: 30, guidance_scale: 3.2, num_inference_steps: 8, seed: 42 }, timeout_seconds: 120, retry: 2 }把这个文件放在 ComfyUI 根目录下然后在 LTX-Video 节点的api_config_path字段里填这个文件的绝对路径。节点里的model字段填ltx-video-13b-distilledresolution填[1216, 704]num_frames填 30。注意num_inference_steps对蒸馏版来说 8 步就够填 20 步以上不会更清晰只会更慢。如果你用的是 Cline MCP 或 CC Switch 来管理多个模型通道配置结构要写全三件套Base URL、Key、Model ID。缺任何一个都会在启动时报local proxy failed。CC Switch 的配置文件通常放在~/.cc-switch/config.json里面每个 provider 都要有独立的base_url、api_key、model字段。再看 Diffusers 侧。LTX-Video 官方提供了LTXVideoPipeline但默认是从 HuggingFace 拉权重。我们要把它改成走 TaoToken 的 API 通道。最直接的方式是用requests调 TaoToken 的推理接口而不是本地加载 pipeline。片段如下import requests import base64 API_BASE https://taotoken.net/api API_KEY sk-your-taotoken-key MODEL_ID ltx-video-13b-distilled headers { Authorization: fBearer {API_KEY}, Content-Type: application/json } payload { model: MODEL_ID, prompt: 夕阳下长发女孩转身微笑特写电影级光影, height: 704, width: 1216, num_frames: 30, guidance_scale: 3.2, num_inference_steps: 8, seed: 42 } resp requests.post( f{API_BASE}/video/generations, headersheaders, jsonpayload, timeout120 ) if resp.status_code 200: data resp.json() video_b64 data[data][0][b64_json] with open(output.mp4, wb) as f: f.write(base64.b64decode(video_b64)) print(saved output.mp4) else: print(status:, resp.status_code) print(body:, resp.text)这段代码的关键点是API_BASE不带 UTMAuthorization用 Bearer 格式model字段填模型 ID。如果你在 Diffusers 里坚持用LTXVideoPipeline.from_pretrained那就需要把from_pretrained的cache_dir指向一个已经通过 TaoToken 下载好的本地缓存否则它会去连 HuggingFace在无外网环境下会卡住。更稳妥的做法还是走上面的 HTTP 调用。参数对照表如下方便你按显卡情况调整参数推荐值说明height704与 1216 搭配是官方平衡点width1216再高会显著增加 DiT 注意力开销num_frames30遵循 8n1 规则17/25/33 也可guidance_scale3.0–3.5超过 4 容易过锐化num_inference_steps8蒸馏版专用非蒸馏版填 20–30seed固定值便于对比不同配置的差异4. 验证请求首帧延迟与显存占用的实测对比配置写完后不要直接跑长视频先用一条短提示词验证请求是否真正走通。验证分三个动作看日志、看返回结构、看本地显存。第一个动作在 ComfyUI 里点“Queue Prompt”后打开终端看日志。如果配置正确你会看到类似POST https://taotoken.net/api/video/generations的请求记录状态码 200返回体里有data数组。如果看到local proxy failed说明 Base URL 或 Key 没填对如果看到401 Unauthorized说明 Key 无效或过期如果看到reading choices相关报错说明你调的是对话接口而不是视频接口路径写错了。第二个动作检查返回结构。TaoToken 的视频生成接口返回的 JSON 里data[0]通常包含b64_json或url字段。如果是b64_json按上一节的代码解码保存如果是url直接下载即可。注意不要假设返回结构和 OpenAI 的 chat 接口一样视频接口的choices字段是不存在的看到reading choices报错就说明你请求的 endpoint 不对。第三个动作对比首帧延迟和显存占用。我在同一台机器上做了两组测试结果如下指标本地 DiT 推理TaoToken 通道首帧延迟14.2s2.8s30 帧总耗时38.6s11.4s峰值显存15.8GB6.1GB显存释放需手动清缓存自动释放本地推理时显存主要被三部分吃掉DiT 权重约 9GBVAE 解码约 3GB文本编码器约 2GB加上中间激活值16GB 卡基本跑满。改到 TaoToken 后本地只保留 VAE 解码和调度逻辑DiT 权重和文本编码都在远端显存直接降到 6GB 左右RTX 4060 8GB 也能跑 1216×704。验证时还要注意一个细节首帧延迟的测量点是从点击 Queue 到第一帧可预览的时间不是整个视频生成完的时间。ComfyUI 的进度条有时会把 VAE 解码时间算进去导致看起来比实际慢。你可以在节点里打开debug_timing选项分别看dit_inference_ms和vae_decode_ms两个字段。如果你用 Diffusers 脚本验证就在requests.post前后加时间戳import time start time.time() resp requests.post(...) first_byte time.time() print(requestfirst_byte:, round(first_byte - start, 2), s)实测下来TaoToken 通道的requestfirst_byte通常在 2.5–3.5 秒之间取决于提示词长度和当前队列。如果超过 8 秒先检查是不是num_inference_steps填大了或者num_frames超过了 33。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth这一节按真实报错逐条排查。这些报错我在配置过程中都遇到过按下面的顺序查基本能定位。401 Unauthorized。最常见的原因是 Key 填错或没带Bearer前缀。检查Authorization头是不是Bearer sk-xxx格式注意Bearer和 Key 之间有一个空格。另一个原因是 Key 被复制时带了换行或空格用echo -n sk-xxx | wc -c确认长度。如果 Key 本身没问题去控制台看这个 Key 是否被禁用或额度耗尽。local proxy failed。这个报错通常出现在 CC Switch 或 Cline MCP 启动时意思是本地代理配置不完整。三件套必须同时存在Base URL 填https://taotoken.net/apiKey 填sk-xxxModel ID 填ltx-video-13b-distilled。缺 Model ID 时有些客户端会默认去连本地 11434 端口然后报 proxy failed。检查配置文件里每个 provider 的model字段是否为空。reading choices。这个报错说明你请求的接口返回结构里没有choices字段但客户端按对话接口去解析了。视频生成接口的返回是data数组不是choices。检查你的 endpoint 是不是写成了/chat/completions应该改成/video/generations。如果你用的是某个封装库确认它支持视频接口不支持的话就按第 3 节的requests方式直接调。OAuth 相关报错。如果你在 Claude Code 或 Codex 里配置时看到 OAuth 失败通常是因为把 API Key 模式配成了 OAuth 模式。TaoToken 的接入用 API Key 即可不需要走 OAuth 授权流程。在auth.json或settings.json里把auth_type设为api_key然后填base_url和api_key。Codex 的auth.json路径通常在~/.codex/auth.jsonClaude Code 的配置在~/.claude/settings.json。还有一个不报错但很隐蔽的问题请求发出去了返回 200但视频是黑屏或静止帧。这通常是num_frames没遵循 8n1 规则或者guidance_scale太低导致模型没进入有效采样区间。把num_frames改成 17、25、33 中的任意一个guidance_scale提到 3.2 再试。排查时建议开一个最小复现脚本只发一条固定提示词把返回的原始 JSON 打印出来。这样能快速区分是网络问题、鉴权问题还是参数问题。最小脚本就是第 3 节那段requests代码把prompt换成a cat walkingnum_frames换成 17跑通后再加复杂度。6. 把 LTX-Video 接入长期编码与 Agent 工作流验证通过后你可以把这条链路固化到日常创作流程里。如果你只是偶尔生成几条视频用模型对话页面手动发提示词就够了入口是 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。但如果你要批量生成、或者把视频生成嵌到 Agent 工作流里建议走 Coding Plan入口是 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 这样 Key 的额度和并发更适合长时间跑任务。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里面列出了视频接口的完整参数和返回字段配 ComfyUI 节点时对着查比猜参数快很多。API Keys 管理在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 建议给批量任务单独建一个 Key方便按用途统计用量。Claude Code 的接入配置在 https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 如果你用 Claude Code 写视频生成的调度脚本可以把 Base URL 和 Key 配在这里让代码补全和视频推理共用一个通道。最后给一个实用技巧把第 3 节的taotoken_config.json纳入版本管理但把api_key字段留空用环境变量TAOTOKEN_API_KEY注入。这样换机器时只需要设一次环境变量配置文件可以直接复用。ComfyUI 节点里读环境变量的写法是在api_key字段填${TAOTOKEN_API_KEY}启动前export TAOTOKEN_API_KEYsk-xxx即可。