> ## Documentation Index
> Fetch the complete documentation index at: https://docs.daydream.live/llms.txt
> Use this file to discover all available pages before exploring further.

# Features

> ControlNets, IP Adapter, and prompt scheduling in TouchDesigner

# TouchDesigner Features

The Daydream TouchDesigner plugin exposes all the power of StreamDiffusion through an intuitive parameter interface.

## Parameters Reference

| Parameter                | Description                                                       |
| ------------------------ | ----------------------------------------------------------------- |
| **Prompt Schedule**      | Weighted prompts: `[("anime style", 1.0), ("oil painting", 0.5)]` |
| **Prompt Interpolation** | How to blend between prompts: `linear` or `slerp`                 |
| **Negative Prompt**      | What to avoid: "blurry, low quality, flat"                        |
| **Seed Schedule**        | Weighted seeds: `[(42, 1.0), (123, 0.5)]`                         |
| **Seed Interpolation**   | How to blend between seeds: `linear` or `slerp`                   |
| **Randomize Seeds**      | Button to set all seeds to random values                          |
| **Guidance**             | How closely to follow the prompt (1.0-3.0)                        |
| **Delta**                | Strength of diffusion effect (0.0-1.0)                            |
| **Steps**                | Number of inference steps (1-4)                                   |
| **ControlNet scales**    | Strength of each conditioning type (0.0-1.0)                      |
| **IP Adapter**           | Enable/disable style transfer                                     |
| **IP Adapter Scale**     | Strength of style influence                                       |
| **IP Adapter Type**      | `regular` or `faceid`                                             |

## Prompt Scheduling

The killer feature for live performances: smoothly transition between prompts over time.

```python theme={null}
# Single prompt
prompt = "cyberpunk cityscape, neon lights"

# Weighted blend of prompts
prompt_schedule = [
    ("anime style portrait", 0.7),
    ("oil painting", 0.3),
]
```

With `slerp` interpolation, transitions are smooth and organic - perfect for VJ sets.

<Tip>
  Use prompt scheduling with TouchDesigner's animation channels to create evolving visuals that respond to music or time.
</Tip>

## Seed Scheduling

Control randomness while maintaining smooth transitions:

```python theme={null}
# Single seed for consistency
seed = 42

# Weighted blend of seeds
seed_schedule = [
    (42, 0.8),
    (123, 0.2),
]
```

Click **Randomize Seeds** to generate fresh random values for experimentation.

## ControlNets

ControlNets preserve structure from your input video. Available types depend on the model:

### SDXL Models

| ControlNet | What It Preserves      | Best For                       |
| ---------- | ---------------------- | ------------------------------ |
| Depth      | 3D structure, distance | Faces, scenes with depth       |
| Canny      | Sharp edges, outlines  | Line art, detailed edges       |
| Tile       | Texture patterns       | Upscaling, detail preservation |

### SD1.5 Models

| ControlNet  | What It Preserves  | Best For              |
| ----------- | ------------------ | --------------------- |
| Depth       | 3D structure       | Faces, objects        |
| Canny       | Sharp edges        | Linework, silhouettes |
| Tile        | Texture            | Detail preservation   |
| TemporalNet | Motion consistency | Reducing flicker      |

### SD2.1 Models

| ControlNet  | What It Preserves | Best For             |
| ----------- | ----------------- | -------------------- |
| OpenPose    | Body poses        | Dance, movement      |
| HED         | Soft edges        | Organic shapes       |
| Canny       | Sharp edges       | Architecture         |
| Depth       | Distance          | Spatial scenes       |
| Color       | Color composition | Palette preservation |
| TemporalNet | Motion            | Video stability      |

<Note>
  Adjust ControlNet scales to balance between following the prompt and preserving input structure. Start with 0.5 and adjust from there.
</Note>

Learn more about ControlNets in the [ControlNets Tutorial](/knowledge-hub/tutorials/controlnets).

## IP Adapter (Style Transfer)

Apply the style of a reference image to your video:

1. Enable **IP Adapter** in the parameters
2. Load a style reference image
3. Adjust **Scale** (higher = stronger style influence)
4. Choose **Type**:
   * `regular` - General style transfer
   * `faceid` - Face-specific (SDXL only)

<Tip>
  IP Adapter works best with SDXL and SD1.5 models. SD2.1 doesn't support it.
</Tip>

Learn more in the [IP Adapters Tutorial](/knowledge-hub/tutorials/ip-adapters).

## Model Selection

Choose the right model for your use case:

| Model          | Speed   | Quality | ControlNets | IP Adapter |
| -------------- | ------- | ------- | ----------- | ---------- |
| SD Turbo       | Fastest | Good    | 6 types     | No         |
| SDXL Turbo     | Fast    | Best    | 3 types     | Yes        |
| Dreamshaper 8  | Medium  | Great   | 4 types     | Yes        |
| Openjourney v4 | Medium  | Great   | 4 types     | Yes        |

## Performance Tips

1. **Resolution**: Start with 512x512, increase only if needed
2. **Steps**: 2-3 steps is usually enough for real-time
3. **ControlNets**: Enable only what you need; each adds latency
4. **Delta**: Lower values = more stable, higher = more responsive

## Example: VJ Setup

Here's a typical setup for a live VJ performance:

1. **Input**: Live camera or video loop
2. **Model**: SDXL Turbo for quality, SD Turbo for speed
3. **ControlNets**:
   * Depth at 0.6 (preserve structure)
   * Canny at 0.3 (keep edges)
4. **Prompt Schedule**: Animate between themes with CHOPs
5. **IP Adapter**: Cycle through style images

```mermaid theme={null}
flowchart LR
    A[Camera] --> B[Daydream]
    B --> C[Feedback TOP]
    C --> D[Output]
    C --> E[CHOP]
    E -->|modulate prompts/seeds| B
```

## Next Steps

* [Integration API](/sdks/touchdesigner/integration) - Python scripting
* [Step Schedule Tutorial](/knowledge-hub/tutorials/step-schedule) - Optimize performance
* [Parameters Reference](/api/parameters/SDXL) - Full parameter documentation
