Nodes/ComfyUI-TJ_NODE/Prompt Studio (TJ)
ComfyUI Node

Prompt Studio (TJ)

Prompt Studio (TJ)

By designloves2·Created 4 months ago·Updated 3 days ago· 13
Prompt Studio (TJ)
  • image
  • clip
  • prompt
  • thought_process
get_name_prompt(none)
get_name_image(none)
set_namePrompt_Studio
modeAuto
raw_prompt
model_backendGGUF / llama.cpp
gguf_modelqwen3.5-4B-Uncensored-HauhauCS-Aggressive-Q8_0.gguf
mmproj_filemmproj-qwen3.5-4B-Uncensored-HauhauCS-Aggressive-BF16.gguf
chat_handler
text_encoder_namegemma4_e4b_it_fp8_scaled.safetensors
clip_loader_typeAuto
purpose
vision_task
model_format
aesthetic
extra_instructions
system_prompt_override
custom_instruction
append_no_thinktrue
n_gpu_layers-1
n_ctx4096
max_tokens1000
temperature0.70
top_p0.90
repeat_penalty1.15
seed0
lock_infalse
raw_prompt_input

Prompt Studio (TJ) is the all-in-one of the TJ LLM family: it's both a Prompt Enhancer (rewrite your text into the right model dialect) and an Image to Prompt (turn a picture into text), with the mode picked automatically from what you have connected. Connect an image and it captions/analyzes it; leave the image socket empty and it behaves exactly like the enhancer. One node, two jobs, no mode-switching by hand.

How it works

The mode widget gives you Auto (default), Image to Prompt, or Prompt Enhancer. In Auto, the presence of the optional image input decides: image connected → vision mode, otherwise text rewrite. When it's doing vision, the vision_task dropdown sets what you want out of the picture:

  • Caption (plain description) - just describe it.
  • Caption + Format - describe it, then rewrite the caption through the model_format rules below.
  • SD/Booru Tags - extract tag-style tokens, great for feeding back into tag-trained models.
  • Pose & Anatomy Focus - analysis aimed at composition/pose detail.
  • Content Quality Check - a review-style pass (feeds the pack's quality-gate workflows).
  • Custom Instruction - your own ask in custom_instruction.

Everything else mirrors the Prompt Enhancer: purpose (Image/Video/Edit/Custom), model_format (Krea2, Flux natural language, booru tags, LTX prose, and friends), aesthetic style injection, raw_prompt plus raw_prompt_input for a wired-in prompt, extra_instructions and system_prompt_override. The LLM knobs are the same too - model_backend (GGUF/llama.cpp or ComfyUI TextGenerate), gguf_model, mmproj_file (needed for the vision mode, it's the multimodal projector), n_gpu_layers, n_ctx, max_tokens, temperature, top_p, repeat_penalty, seed, and lock_in.

Outputs: prompt (the result) and thought_process (reasoning trace). Wireless is built in via get_name_prompt / get_name_image and set_name, so a remote prompt or image can be received and the result published without wires.

Installing it

Standard pack install:

cd ComfyUI/custom_nodes
git clone https://github.com/designloves2/ComfyUI-TJ_NODE

Then the LLM setup: llama-cpp-python (GPU build via build_llama_gemma4.bat / LLAMA_GPU_SETUP.md for speed and newest-model support), and GGUF files in ComfyUI/models/text_encoders/. For vision you need both the main GGUF and its mmproj projector file - the pack recommends Qwen2.5-VL 3B/7B (bartowski's quantized versions) or MiniCPM-V if you're tight on VRAM.

The honest take

Prompt Studio is the node to reach for if you do a lot of img2img and image-conditioned work - one node that captions a reference and rewrites prompts for the same model saves you from juggling two separate LLM setups. The gotcha is the usual one for this pack's LLM nodes: it's only as good as your GGUF setup, and a CPU-only llama-cpp build will make every vision call slow enough to annoy you. Get the GPU build right once and it's the rare single node that actually replaces two.

Category ✨ TJ_Node/LLM

Inputs (30)

NameTypeDefaultDescription
get_name_promptCOMBO(none)1 options: (none)
get_name_imageCOMBO(none)1 options: (none)
set_nameSTRINGPrompt_Studio
modeCOMBOAuto3 options: Auto, Image to Prompt, Prompt Enhancer
raw_promptSTRING
model_backendCOMBOGGUF / llama.cpp2 options: GGUF / llama.cpp, ComfyUI TextGenerate
gguf_modelCOMBOqwen3.5-4B-Uncensored-HauhauCS-Aggressive-Q8_0.gguf1 options: qwen3.5-4B-Uncensored-HauhauCS-Aggressive-Q8_0.gguf
mmproj_fileCOMBOmmproj-qwen3.5-4B-Uncensored-HauhauCS-Aggressive-BF16.gguf2 options: none, mmproj-qwen3.5-4B-Uncensored-HauhauCS-Aggressive-BF16.gguf
chat_handlerCOMBO1 options: NO_VISION_HANDLERS_AVAILABLE
text_encoder_nameCOMBOgemma4_e4b_it_fp8_scaled.safetensors1 options: gemma4_e4b_it_fp8_scaled.safetensors
clip_loader_typeCOMBOAuto29 options: Auto, krea2, stable_diffusion, stable_cascade, sd3, stable_audio, +23
purposeCOMBO4 options: Image, Video, Edit (Inpainting/I2V), Custom
vision_taskCOMBO6 options: Caption (plain description), Caption + Format (apply model_format below), SD/Booru Tags, Pose & Anatomy Focus, Content Quality Check, Custom Instruction
model_formatCOMBO15 options: KREA2 (Prompt Enhance), Flux & Chroma (natural language), Z-Image & Lumina-2 (LLM text encoder), HiDream (hybrid prose + descriptors), SDXL (tags + weights), SD 1.5 (tags + weights), +9
aestheticCOMBO22 options: None (no aesthetic injection), Photorealistic, Cinematic Film, Anime / Manga, Studio Ghibli, Pixar / 3D Animation, +16
extra_instructionsSTRING
system_prompt_overrideSTRING
custom_instructionSTRING
append_no_thinkBOOLEANtrue
n_gpu_layersINT-1-1–999
n_ctxINT4096512–32768
max_tokensINT100050–4096
temperatureFLOAT0.700–2
top_pFLOAT0.900–1
repeat_penaltyFLOAT1.151–2
seedINT00–18446744073709550000
lock_inBOOLEANfalse
raw_prompt_inputoptSTRING
imageoptIMAGE
clipoptCLIP

Outputs (2)

NameTypeDescription
promptSTRING
thought_processSTRING