{ "60": { "inputs": { "filename_prefix...
Creado el: 21 de marzo de 2026
Respondido usando GPT-5.4 Thinking por Chat01
Creado el: 21 de marzo de 2026
Respondido usando GPT-5.4 Thinking por Chat01
{
"60": {
"inputs": {
"filename_prefix": "z-image-turbo",
"images": [
"83:8",
0
]
},
"class_type": "SaveImage",
"_meta": {
"title": "保存图像"
}
},
"83:30": {
"inputs": {
"clip_name": "qwen_3_4b.safetensors",
"type": "lumina2",
"device": "default"
},
"class_type": "CLIPLoader",
"_meta": {
"title": "加载CLIP"
}
},
"83:29": {
"inputs": {
"vae_name": "ae.safetensors"
},
"class_type": "VAELoader",
"_meta": {
"title": "加载VAE"
}
},
"83:13": {
"inputs": {
"width": 1024,
"height": 1024,
"batch_size": 1
},
"class_type": "EmptySD3LatentImage",
"_meta": {
"title": "空Latent图像(SD3)"
}
},
"83:33": {
"inputs": {
"conditioning": [
"83:27",
0
]
},
"class_type": "ConditioningZeroOut",
"_meta": {
"title": "条件零化"
}
},
"83:8": {
"inputs": {
"samples": [
"83:3",
0
],
"vae": [
"83:29",
0
]
},
"class_type": "VAEDecode",
"_meta": {
"title": "VAE解码"
}
},
"83:3": {
"inputs": {
"seed": 528562900154240,
"steps": 4,
"cfg": 1,
"sampler_name": "res_multistep",
"scheduler": "simple",
"denoise": 1,
"model": [
"83:28",
0
],
"positive": [
"83:27",
0
],
"negative": [
"83:33",
0
],
"latent_image": [
"83:13",
0
]
},
"class_type": "KSampler",
"_meta": {
"title": "K采样器"
}
},
"83:27": {
"inputs": {
"text": "Giant blue and purple big billboard on rooftop in san francisco city billboard says "ComfyUI is built with love" All kinds of buoildings in different shapes and colors. Some buildings have grafitti "We" "Here" "Today"",
"clip": [
"83:30",
0
]
},
"class_type": "CLIPTextEncode",
"_meta": {
"title": "CLIP文本编码"
}
},
"83:28": {
"inputs": {
"unet_name": "z_image_turbo_bf16.safetensors",
"weight_dtype": "default"
},
"class_type": "UNETLoader",
"_meta": {
"title": "UNet加载器"
}
}
}帮我把这个comfyui工作流改为sillytavern能用的
可以,下面我直接给你一个 SillyTavern 可用版。
SillyTavern 对 ComfyUI 的要求是:用 API Format 的工作流 JSON,并把需要动态替换的内容改成占位符,比如 %prompt%、%negative_prompt%、%seed%、%width%、%height%。这些占位符在 JSON 里要放在双引号中,哪怕是数字类参数也是一样。(SillyTavern Documentation)
你这份工作流本身已经接近 API 格式了,我帮你做了这几个改动:
%prompt%ConditioningZeroOut 改成负面 CLIPTextEncode,这样 ST 的负面提示词也能生效seed / width / height 改成 ST 占位符下面这个版本可以直接贴进 SillyTavern → Image Generation → ComfyUI Workflow Editor 里用。ST 官方就是这么接入的:在工作流编辑器里粘贴 API JSON,再替换占位符。(SillyTavern Documentation)
json{ "60": { "inputs": { "filename_prefix": "z-image-turbo", "images": [ "83:8", 0 ] }, "class_type": "SaveImage", "_meta": { "title": "保存图像" } }, "83:30": { "inputs": { "clip_name": "qwen_3_4b.safetensors", "type": "lumina2", "device": "default" }, "class_type": "CLIPLoader", "_meta": { "title": "加载CLIP" } }, "83:29": { "inputs": { "vae_name": "ae.safetensors" }, "class_type": "VAELoader", "_meta": { "title": "加载VAE" } }, "83:13": { "inputs": { "width": "%width%", "height": "%height%", "batch_size": 1 }, "class_type": "EmptySD3LatentImage", "_meta": { "title": "空Latent图像(SD3)" } }, "83:33": { "inputs": { "text": "%negative_prompt%", "clip": [ "83:30", 0 ] }, "class_type": "CLIPTextEncode", "_meta": { "title": "CLIP文本编码(负面)" } }, "83:8": { "inputs": { "samples": [ "83:3", 0 ], "vae": [ "83:29", 0 ] }, "class_type": "VAEDecode", "_meta": { "title": "VAE解码" } }, "83:3": { "inputs": { "seed": "%seed%", "steps": 4, "cfg": 1, "sampler_name": "res_multistep", "scheduler": "simple", "denoise": 1, "model": [ "83:28", 0 ], "positive": [ "83:27", 0 ], "negative": [ "83:33", 0 ], "latent_image": [ "83:13", 0 ] }, "class_type": "KSampler", "_meta": { "title": "K采样器" } }, "83:27": { "inputs": { "text": "%prompt%", "clip": [ "83:30", 0 ] }, "class_type": "CLIPTextEncode", "_meta": { "title": "CLIP文本编码" } }, "83:28": { "inputs": { "unet_name": "z_image_turbo_bf16.safetensors", "weight_dtype": "default" }, "class_type": "UNETLoader", "_meta": { "title": "UNet加载器" } } }
你接下来这样配就行:
http://127.0.0.1:8188。(SillyTavern Documentation)/imagine 或图像生成功能出图再给你一个建议:
你这个 z_image_turbo 看起来像是偏固定参数的 turbo 工作流,所以我故意没把 steps/cfg/sampler/scheduler 全开放给 ST。这样更稳,不容易因为 ST 面板里的默认值把图跑坏。ST 确实支持 %steps%、%scale%、%sampler%、%scheduler%、%denoise% 这些占位符,但不是必须全加。(SillyTavern Documentation)
如果你想要,我下一条可以直接再给你一份 “完全动态版”,把 steps / cfg / sampler / scheduler / denoise 也全改成 SillyTavern 可控。
完全动态版
可以,下面给你一份 “完全动态版”。
SillyTavern 的 ComfyUI 工作流支持把提示词、seed、steps、cfg、sampler、scheduler、宽高、denoise、model、vae 等参数做成占位符;而且这些占位符在 JSON 里都要放在双引号里,哪怕本质上是数字。ST 的接法也是把 ComfyUI 导出的 API 格式 JSON 粘到 Workflow Editor 里再替换成占位符。(SillyTavern Documentation)
你这个工作流比较特殊:
它是 UNET + CLIP + VAE 分离加载,所以我做了两层动态化:
%prompt% %negative_prompt% %seed% %steps% %scale% %sampler% %scheduler% %width% %height% %denoise% %model% %vae% (SillyTavern Documentation)clip_name、filename_prefix、batch_size。ST 文档明确支持自定义占位符。(SillyTavern Documentation)直接用这个:
json{ "60": { "inputs": { "filename_prefix": "%filename_prefix%", "images": [ "83:8", 0 ] }, "class_type": "SaveImage", "_meta": { "title": "保存图像" } }, "83:30": { "inputs": { "clip_name": "%clip_name%", "type": "lumina2", "device": "default" }, "class_type": "CLIPLoader", "_meta": { "title": "加载CLIP" } }, "83:29": { "inputs": { "vae_name": "%vae%" }, "class_type": "VAELoader", "_meta": { "title": "加载VAE" } }, "83:13": { "inputs": { "width": "%width%", "height": "%height%", "batch_size": "%batch_size%" }, "class_type": "EmptySD3LatentImage", "_meta": { "title": "空Latent图像(SD3)" } }, "83:33": { "inputs": { "text": "%negative_prompt%", "clip": [ "83:30", 0 ] }, "class_type": "CLIPTextEncode", "_meta": { "title": "CLIP文本编码(负面)" } }, "83:8": { "inputs": { "samples": [ "83:3", 0 ], "vae": [ "83:29", 0 ] }, "class_type": "VAEDecode", "_meta": { "title": "VAE解码" } }, "83:3": { "inputs": { "seed": "%seed%", "steps": "%steps%", "cfg": "%scale%", "sampler_name": "%sampler%", "scheduler": "%scheduler%", "denoise": "%denoise%", "model": [ "83:28", 0 ], "positive": [ "83:27", 0 ], "negative": [ "83:33", 0 ], "latent_image": [ "83:13", 0 ] }, "class_type": "KSampler", "_meta": { "title": "K采样器" } }, "83:27": { "inputs": { "text": "%prompt%", "clip": [ "83:30", 0 ] }, "class_type": "CLIPTextEncode", "_meta": { "title": "CLIP文本编码" } }, "83:28": { "inputs": { "unet_name": "%model%", "weight_dtype": "%weight_dtype%" }, "class_type": "UNETLoader", "_meta": { "title": "UNet加载器" } } }
你还需要在 SillyTavern 的 Custom placeholders 里补这几个,因为它们不是 ST 预定义项:(SillyTavern Documentation)
textclip_name -> qwen_3_4b.safetensors filename_prefix -> z-image-turbo batch_size -> 1 weight_dtype -> default
内建可直接吃的参数是这些:
%prompt%、%negative_prompt%、%model%、%vae%、%sampler%、%scheduler%、%steps%、%scale%、%width%、%height%、%denoise%、%seed%。其中 %seed% 在你把 seed 设成 -1 时,ST 会每张图自动生成随机 seed。(SillyTavern Documentation)
有一个关键注意点:
ST 虽然支持 %model% 和 %vae%,但你这个流是 分体式加载器,模型类型必须和对应 loader 匹配;如果你在 ST 里切到不兼容的模型,ComfyUI 会直接在 loader 节点报错。文档里对这一点有明确说明。(SillyTavern Documentation)
最稳的用法是:
%model% 只切同一类 UNETLoader 能吃的 UNet%vae% 只切兼容的 VAEclip_name 继续放自定义占位符,不要随便和 UNet 混切%model% 更安全。这个结论是基于 ST 对不同模型类型兼容性的说明做出的工程判断。(SillyTavern Documentation)如果你想更省事,我也可以直接再给你一版: “适配 SillyTavern 的最终成品模板”,包括我帮你把推荐的 custom placeholders 配置表一起整理好,复制进去就能用。