diff --git a/webui.py b/webui.py
index e868528..c4651e4 100755
--- a/webui.py
+++ b/webui.py
@@ -24,7 +24,29 @@ args = None
 webui = None
 tts = None
 
-def generate(text, delimiter, emotion, prompt, voice, mic_audio, seed, candidates, num_autoregressive_samples, diffusion_iterations, temperature, diffusion_sampler, breathing_room, cvvp_weight, experimentals, progress=gr.Progress(track_tqdm=True)):
+def generate(
+    text,
+    delimiter,
+    emotion,
+    prompt,
+    voice,
+    mic_audio,
+    seed,
+    candidates,
+    num_autoregressive_samples,
+    diffusion_iterations,
+    temperature,
+    diffusion_sampler,
+    breathing_room,
+    cvvp_weight,
+    top_p,
+    diffusion_temperature,
+    length_penalty,
+    repetition_penalty,
+    cond_free_k,
+    experimental_checkboxes,
+    progress=gr.Progress(track_tqdm=True)
+):
     try:
         tts
     except NameError:
@@ -67,9 +89,13 @@ def generate(text, delimiter, emotion, prompt, voice, mic_audio, seed, candidate
 
 
     settings = {
-        'temperature': temperature, 'length_penalty': 1.0, 'repetition_penalty': 2.0,
-        'top_p': .8,
-        'cond_free_k': 2.0, 'diffusion_temperature': 1.0,
+        'temperature': float(temperature),
+
+        'top_p': float(top_p),
+        'diffusion_temperature': float(diffusion_temperature),
+        'length_penalty': float(length_penalty),
+        'repetition_penalty': float(repetition_penalty),
+        'cond_free_k': float(cond_free_k),
 
         'num_autoregressive_samples': num_autoregressive_samples,
         'sample_batch_size': args.sample_batch_size,
@@ -83,8 +109,8 @@ def generate(text, delimiter, emotion, prompt, voice, mic_audio, seed, candidate
         'diffusion_sampler': diffusion_sampler,
         'breathing_room': breathing_room,
         'progress': progress,
-        'half_p': "Half Precision" in experimentals,
-        'cond_free': "Conditioning-Free" in experimentals,
+        'half_p': "Half Precision" in experimental_checkboxes,
+        'cond_free': "Conditioning-Free" in experimental_checkboxes,
         'cvvp_amount': cvvp_weight,
     }
 
@@ -196,7 +222,12 @@ def generate(text, delimiter, emotion, prompt, voice, mic_audio, seed, candidate
         'diffusion_sampler': diffusion_sampler,
         'breathing_room': breathing_room,
         'cvvp_weight': cvvp_weight,
-        'experimentals': experimentals,
+        'top_p': top_p,
+        'diffusion_temperature': diffusion_temperature,
+        'length_penalty': length_penalty,
+        'repetition_penalty': repetition_penalty,
+        'cond_free_k': cond_free_k,
+        'experimentals': experimental_checkboxes,
         'time': time.time()-start_time,
     }
     
@@ -294,10 +325,15 @@ def import_generate_settings(file="./config/generate.json"):
         None if 'candidates' not in settings else settings['candidates'],
         None if 'num_autoregressive_samples' not in settings else settings['num_autoregressive_samples'],
         None if 'diffusion_iterations' not in settings else settings['diffusion_iterations'],
-        None if 'temperature' not in settings else settings['temperature'],
-        None if 'diffusion_sampler' not in settings else settings['diffusion_sampler'],
-        None if 'breathing_room' not in settings else settings['breathing_room'],
-        None if 'cvvp_weight' not in settings else settings['cvvp_weight'],
+        0.8 if 'temperature' not in settings else settings['temperature'],
+        "DDIM" if 'diffusion_sampler' not in settings else settings['diffusion_sampler'],
+        8.0 if 'breathing_room' not in settings else settings['breathing_room'],
+        0.0 if 'cvvp_weight' not in settings else settings['cvvp_weight'],
+        0.8 if 'top_p' not in settings else settings['top_p'],
+        1.0 if 'diffusion_temperature' not in settings else settings['diffusion_temperature'],
+        1.0 if 'length_penalty' not in settings else settings['length_penalty'],
+        2.0 if 'repetition_penalty' not in settings else settings['repetition_penalty'],
+        2.0 if 'cond_free_k' not in settings else settings['cond_free_k'],
         None if 'experimentals' not in settings else settings['experimentals'],
     )
 
@@ -568,6 +604,7 @@ def setup_gradio():
                         gr.Checkbox(label="Slimmer Computed Latents", value=args.latents_lean_and_mean),
                     ]
                     gr.Button(value="Check for Updates").click(check_for_updates)
+                    gr.Button(value="Reload TTS").click(reload_tts)
                 with gr.Column():
                     exec_inputs = exec_inputs + [
                         gr.Number(label="Voice Latents Max Chunk Size", precision=0, value=args.cond_latent_max_chunk_size),
@@ -583,10 +620,14 @@ def setup_gradio():
                         inputs=exec_inputs
                         )
                 with gr.Column():
-                    experimentals = gr.CheckboxGroup(["Half Precision", "Conditioning-Free"], value=["Conditioning-Free"], label="Experimental Flags")
+                    experimental_checkboxes = gr.CheckboxGroup(["Half Precision", "Conditioning-Free"], value=["Conditioning-Free"], label="Experimental Flags")
                     cvvp_weight = gr.Slider(value=0, minimum=0, maximum=1, label="CVVP Weight")
+                    top_p = gr.Slider(value=0.8, minimum=0, maximum=2, label="Top P")
+                    diffusion_temperature = gr.Slider(value=1.0, minimum=0, maximum=2, label="Diffusion Temperature")
+                    length_penalty = gr.Slider(value=1.0, minimum=0, maximum=8, label="Length Penalty")
+                    repetition_penalty = gr.Slider(value=2.0, minimum=0, maximum=8, label="Repetition Penalty")
+                    cond_free_k = gr.Slider(value=2.0, minimum=0, maximum=8, label="Conditioning-Free K")
 
-                    gr.Button(value="Reload TTS").click(reload_tts)
 
         input_settings = [
             text,
@@ -603,7 +644,12 @@ def setup_gradio():
             diffusion_sampler,
             breathing_room,
             cvvp_weight,
-            experimentals,
+            top_p,
+            diffusion_temperature,
+            length_penalty,
+            repetition_penalty,
+            cond_free_k,
+            experimental_checkboxes,
         ]
 
         submit_event = submit.click(generate,