9.0 KiB
FunPack Studio
FunPack Studio is a single node that combines all core FunPack refinement tools under one interface. It replaces the typical chain of FunPack Refinement Key Loader - FunPack Scene Builder - FunPack Apply LoRA Weights - FunPack LoRA Loader - FunPack Video Refiner V2 - FunPack Conditioning Adjust with a single node and a tabbed popup editor.
The standalone nodes remain fully functional. Studio is an alternative for workflows where you want everything in one place.
Node Face
Only the rating widget and the Open Studio button are visible on the node. Everything else is managed inside the popup.
Inputs
| Input | Type | Notes |
|---|---|---|
model |
MODEL | Base diffusion model. LoRAs are applied internally before the direction patch. |
clip |
CLIP | Text encoder. Used for prompt encoding, negative prompt encoding, and conditioning adjustments. |
advisor_clip |
CLIP | Pre-loaded text generator for the advisor. Overrides the LLM configured in the Advisor tab. |
positive_conditioning |
CONDITIONING | Pre-encoded positive conditioning. Used when CLIP is not connected. |
negative_conditioning |
CONDITIONING | Pre-encoded negative conditioning passed through unchanged. Takes precedence over negative_prompt. |
clip_vision_output |
CLIP_VISION_OUTPUT | Advisory image context stored in session state. Not blended into conditioning. |
source_image |
IMAGE | Source image or frame batch. V2 stores size, aspect ratio, and a fingerprint to detect changes. |
lora_stack |
FUNPACK_LORA_STACK | External LoRA stack. Bypasses Studio's internal LoRA management entirely when connected. |
positive_prompt |
STRING | Positive prompt text. Ignored when Scene Builder mode is not Pass-through. |
negative_prompt |
STRING | Negative prompt text. Encoded via CLIP and output as negative conditioning. Skipped when negative_conditioning is connected. |
user_intent_prompt |
STRING | Raw user intent for repair and alignment anchoring. |
feedback_prompt |
STRING | Feedback describing what was wrong with the previous output. Highest priority in the advisor. |
refinement_key_input |
STRING | Linked refinement key from a Refinement Key Loader. |
Outputs
| Output | Type | Notes |
|---|---|---|
model |
MODEL | Patched model: LoRAs applied, then attn2 direction injection applied on top. |
modified_positive |
CONDITIONING | Refined positive conditioning with session memory applied. When split by transitions is enabled, this becomes one conditioning entry per detected scene for the Scene Chain sampler. |
negative |
CONDITIONING | Negative conditioning passed through or encoded from negative_prompt. |
seed |
INT | The seed used this run. Wire to your sampler for a matching generation seed. When connected, Studio can learn successful seeds for the active refinement key. |
high_pass_sampler |
SAMPLER | Configured high-pass sampler object. |
high_pass_sigmas |
SIGMAS | Sigma schedule for the high-pass sampler. |
low_pass_sampler |
SAMPLER | Configured low-pass sampler object. |
low_pass_sigmas |
SIGMAS | Sigma schedule for the low-pass sampler. |
loss_graph |
IMAGE | Session learning curve visualization. |
status |
STRING | Execution summary for this run. |
training_info |
STRING | Detailed learning report: memory updates, phrase analysis, adaptation, LoRA suggestions. |
encoded_prompts |
STRING | Prompt text as encoded, plus advisor suggestion and diagnostic if the advisor ran. |
Popup Tabs
Session
Set the refinement key for the current session. This key links all FunPack memory - phrase memory, conditioning directions, LoRA suggestions, and advisor diagnostics - to a named file on disk.
When a refinement_key_input is connected to the node, that value takes precedence at runtime unless the Override toggle is enabled.
Scene Builder mode is also controlled here. Changing from Pass-through to Manual/Auto/Learning activates the scene builder, which then constructs the positive prompt from the Scene tab instead of from the positive_prompt input.
Scene
Available when Scene Builder mode is not Pass-through. Save and load named scene presets. The phrase bank shows all phrases from the session's universal memory. Clicking a chip appends it to the positive prompt composer.
When Scene Builder is active the Refiner tab shows a notice and the intent override field is disabled, since intent derives from the scene prompt.
Refiner
All Refiner V2 execution settings:
- Mode - Refine / Prompt only / Learning
- Advisor mode - Off / Only diagnostics / Only prompt / Full
- Advisor thinking - enables extended reasoning for compatible models
- Prompt repair - allows V2 to inject learned phrases for missing axes
- I'm Feeling Lucky - compose prompt from phrase memory
- Reset - clears session state on next run
- Negative prompt - default negative text encoded via CLIP when no conditioning is connected
- Feedback - what was wrong with the previous output; highest priority in the advisor
- Intent override - overrides the
user_intent_promptinput - Split by transitions - detects scene transition phrases and outputs one conditioning entry per detected scene through
modified_positive
Each of the three text inputs (negative prompt, feedback, intent) has an Override toggle. When off, a connected node input takes precedence and the popup value is a fallback. When on, the popup value wins regardless.
Split scene conditioning is intended for FunPack LTXAV Scene Chain Sampler. Scene labels are order-only: scene ten can be the first generated chunk if it is the first detected transition. Keep character description before the first transition so Studio can prepend it to every scene.
When the seed output is connected, Perfect and Loved it ratings store the previous run's seed as a concept-matched successful seed. Studio occasionally reuses matching seeds on future runs. In split mode, per-scene seeds are attached to scene conditioning metadata for the Scene Chain sampler.
Advisor
Enables and configures an internal HuggingFace CausalLM advisor. Uses the same model cache as the standalone FunPack Advisor LLM node, so the model is only loaded once even when both nodes are in the same workflow.
Set a HuggingFace repo ID or absolute local path and pick the dtype. The model loads on the first run and stays cached. Set Advisor mode in the Refiner tab to activate it.
An external advisor_clip input always overrides this setting.
LoRA
Configure the LoRA pipeline. Studio runs the full chain internally:
FunPack Apply LoRA Weightsreads session weight suggestions for the current prompt and builds a stack with adjusted model weights.FunPack LoRA Loaderapplies the stack to model and CLIP.- The V2 direction patch is applied on top of the LoRA-patched model.
Model type (ltx2 / wan) and Per-block settings apply to the Apply LoRA Weights step.
Add LoRA entries with name, type, model weight, and CLIP weight. The list is fetched from ComfyUI's configured LoRA folder.
An external lora_stack input bypasses this entire tab.
Sampler
Configure two independent sampler outputs: High Pass and Low Pass. Each pass independently selects a sampler type and sigma schedule.
Sampler types:
Hybrid Euler 2S- ancestral Euler with order-2 extrapolation for motion, late DPM-Solver++ 2S for quality. Exposes eta, eta_final, s_noise, quality phase settings, motion pulse, and velocity bias controls.Distilled Flow- ODE sampler for few-step distilled models. Exposes order, final correction steps, and s_noise.KSampler- any standard ComfyUI sampler by name.
Sigmas are entered as a comma-separated float list. Leave empty to pass sigmas in externally.
Sampler type changes refresh the settings section immediately. All settings auto-save as you type.
Adjustments
Manually adjust the encoded conditioning by blending specific phrase directions. Bypasses V2's category classification - the direction is computed directly from the phrase you type, not inferred from which axis it belongs to.
Connect the same CLIP that encodes the positive prompt. Positive strength pushes conditioning toward the phrase, negative pushes away. Typical useful range: -0.3 to +0.3.
When a refinement key is connected the session phrase bank appears below the list, showing all phrases V2 has learned. Click a chip to add it with a default strength of +0.1.
Override Toggles
Three text inputs have both a node input connector and a popup field: refinement_key, feedback_prompt, and user_intent_prompt. Each has a small Override toggle:
- Toggle off (default): the connected input wins; the popup field is a fallback when nothing is connected.
- Toggle on: the popup field wins regardless of what is connected.
Persistence
The popup remembers the last active tab per node across page refreshes via localStorage. All field values auto-save to the node widget 600ms after you stop typing, so changes survive a browser refresh without requiring you to click Close.