From 17cbc99f8faf63f1798206d78a3bb6c275b5cbbe Mon Sep 17 00:00:00 2001 From: Towsty Date: Sat, 26 Sep 2026 12:41:59 -0500 Subject: [PATCH] Add Qwen 2.1 Viggle Turbo Comfy graphs. Use the unmerged ViggleTurboLora path with the official 6-step sigma schedule on the existing Q8 GGUF. Co-authored-by: Cursor --- server/assets/studio2_qwen21_edit_turbo.json | 119 +++++++++++++++++++ server/assets/studio2_qwen21_t2i_turbo.json | 110 +++++++++++++++++ shared/studio2/qwen21-turbo.mjs | 5 + 3 files changed, 234 insertions(+) create mode 100644 server/assets/studio2_qwen21_edit_turbo.json create mode 100644 server/assets/studio2_qwen21_t2i_turbo.json create mode 100644 shared/studio2/qwen21-turbo.mjs diff --git a/server/assets/studio2_qwen21_edit_turbo.json b/server/assets/studio2_qwen21_edit_turbo.json new file mode 100644 index 0000000..75acc83 --- /dev/null +++ b/server/assets/studio2_qwen21_edit_turbo.json @@ -0,0 +1,119 @@ +{ + "4": { + "inputs": { + "unet_name": "qwen-image-2.1-Q8_0.gguf" + }, + "class_type": "UnetLoaderGGUF", + "_meta": { "title": "Load Qwen 2.1 GGUF" } + }, + "7": { + "inputs": { + "model": ["4", 0], + "lora_name": "Qwen-Image-2.1-viggle-turbo-v0.2.1-6step-lora-r128.safetensors", + "strength": 1.0 + }, + "class_type": "ViggleTurboLora", + "_meta": { "title": "Viggle Turbo LoRA (unmerged)" } + }, + "8": { + "inputs": { + "device": "auto", + "dtype": "int8", + "model": ["7", 0] + }, + "class_type": "QwenImage21Cache", + "_meta": { "title": "Qwen 2.1 Cache" } + }, + "5": { + "inputs": { + "clip_name": "qwen3vl_8b_int8_convrot.safetensors", + "type": "qwen_image", + "device": "default" + }, + "class_type": "CLIPLoader", + "_meta": { "title": "Load Qwen 2.1 CLIP" } + }, + "6": { + "inputs": { + "vae_name": "qwen_image_2.1_vae_bf16.safetensors" + }, + "class_type": "VAELoader", + "_meta": { "title": "Load Qwen 2.1 VAE" } + }, + "10": { + "inputs": { + "image": "qwen21_edit_source.png" + }, + "class_type": "LoadImage", + "_meta": { "title": "image_1 source" } + }, + "9": { + "inputs": { + "clip": ["5", 0], + "vae": ["6", 0], + "prompt": "", + "negative_prompt": "", + "resolution": 1024, + "images.image_1": ["10", 0] + }, + "class_type": "TextEncodeQwenImage21", + "_meta": { "title": "Text Encode Qwen Image 2.1 Edit" } + }, + "30": { + "inputs": { + "model": ["8", 0], + "conditioning": ["9", 0] + }, + "class_type": "BasicGuider", + "_meta": { "title": "CFG off (Turbo)" } + }, + "31": { + "inputs": { + "noise_seed": 1 + }, + "class_type": "RandomNoise", + "_meta": { "title": "Noise" } + }, + "32": { + "inputs": { + "sampler_name": "euler" + }, + "class_type": "KSamplerSelect", + "_meta": { "title": "euler" } + }, + "33": { + "inputs": { + "latent": ["9", 2], + "nodes": "1.0, 0.9375, 0.875, 0.75, 0.5, 0.25" + }, + "class_type": "ViggleTurboSigmas", + "_meta": { "title": "Viggle Turbo Sigmas" } + }, + "34": { + "inputs": { + "noise": ["31", 0], + "guider": ["30", 0], + "sampler": ["32", 0], + "sigmas": ["33", 0], + "latent_image": ["9", 2] + }, + "class_type": "SamplerCustomAdvanced", + "_meta": { "title": "Turbo Sampler" } + }, + "35": { + "inputs": { + "samples": ["34", 0], + "vae": ["6", 0] + }, + "class_type": "VAEDecode", + "_meta": { "title": "VAE Decode" } + }, + "36": { + "inputs": { + "filename_prefix": "studio2-qwen21-edit-turbo", + "images": ["35", 0] + }, + "class_type": "SaveImage", + "_meta": { "title": "Save Image" } + } +} diff --git a/server/assets/studio2_qwen21_t2i_turbo.json b/server/assets/studio2_qwen21_t2i_turbo.json new file mode 100644 index 0000000..a133e57 --- /dev/null +++ b/server/assets/studio2_qwen21_t2i_turbo.json @@ -0,0 +1,110 @@ +{ + "4": { + "inputs": { + "unet_name": "qwen-image-2.1-Q8_0.gguf" + }, + "class_type": "UnetLoaderGGUF", + "_meta": { "title": "Load Qwen 2.1 GGUF" } + }, + "7": { + "inputs": { + "model": ["4", 0], + "lora_name": "Qwen-Image-2.1-viggle-turbo-v0.2.1-6step-lora-r128.safetensors", + "strength": 1.0 + }, + "class_type": "ViggleTurboLora", + "_meta": { "title": "Viggle Turbo LoRA (unmerged)" } + }, + "5": { + "inputs": { + "clip_name": "qwen3vl_8b_int8_convrot.safetensors", + "type": "qwen_image", + "device": "default" + }, + "class_type": "CLIPLoader", + "_meta": { "title": "Load Qwen 2.1 CLIP" } + }, + "6": { + "inputs": { + "vae_name": "qwen_image_2.1_vae_bf16.safetensors" + }, + "class_type": "VAELoader", + "_meta": { "title": "Load Qwen 2.1 VAE" } + }, + "9": { + "inputs": { + "clip": ["5", 0], + "prompt": "", + "negative_prompt": "", + "resolution": 1024 + }, + "class_type": "TextEncodeQwenImage21", + "_meta": { "title": "Text Encode Qwen Image 2.1" } + }, + "16": { + "inputs": { + "width": 1024, + "height": 1024, + "batch_size": 1 + }, + "class_type": "EmptyLatentImage", + "_meta": { "title": "Qwen 2.1 canvas" } + }, + "30": { + "inputs": { + "model": ["7", 0], + "conditioning": ["9", 0] + }, + "class_type": "BasicGuider", + "_meta": { "title": "CFG off (Turbo)" } + }, + "31": { + "inputs": { + "noise_seed": 1 + }, + "class_type": "RandomNoise", + "_meta": { "title": "Noise" } + }, + "32": { + "inputs": { + "sampler_name": "euler" + }, + "class_type": "KSamplerSelect", + "_meta": { "title": "euler" } + }, + "33": { + "inputs": { + "latent": ["16", 0], + "nodes": "1.0, 0.9375, 0.875, 0.75, 0.5, 0.25" + }, + "class_type": "ViggleTurboSigmas", + "_meta": { "title": "Viggle Turbo Sigmas" } + }, + "34": { + "inputs": { + "noise": ["31", 0], + "guider": ["30", 0], + "sampler": ["32", 0], + "sigmas": ["33", 0], + "latent_image": ["16", 0] + }, + "class_type": "SamplerCustomAdvanced", + "_meta": { "title": "Turbo Sampler" } + }, + "35": { + "inputs": { + "samples": ["34", 0], + "vae": ["6", 0] + }, + "class_type": "VAEDecode", + "_meta": { "title": "VAE Decode" } + }, + "36": { + "inputs": { + "filename_prefix": "studio2-qwen21-turbo", + "images": ["35", 0] + }, + "class_type": "SaveImage", + "_meta": { "title": "Save Image" } + } +} diff --git a/shared/studio2/qwen21-turbo.mjs b/shared/studio2/qwen21-turbo.mjs new file mode 100644 index 0000000..249bc72 --- /dev/null +++ b/shared/studio2/qwen21-turbo.mjs @@ -0,0 +1,5 @@ +/** Viggle DMD turbo LoRA on the existing Qwen 2.1 GGUF (not a separate engine). */ +export const QWEN21_TURBO_LORA = 'Qwen-Image-2.1-viggle-turbo-v0.2.1-6step-lora-r128.safetensors' +export const QWEN21_TURBO_SIGMAS = '1.0, 0.9375, 0.875, 0.75, 0.5, 0.25' +export const QWEN21_TURBO_STEPS = 6 +export const QWEN21_TURBO_CFG = 1