### Node: `XY OSC Control @ vrch.ai` (vrch.ai/control/osc) 1. **Add the `XY OSC Control @ vrch.ai` node to your ComfyUI workflow.** 2. **Configure the Node:** - **Server IP (`server_ip`):** Enter the IP address of the OSC server (default is your local IP address). - **Port (`port`):** Specify the port number on which the OSC server is listening (default is `8000`). - **Path (`path`):** Set the OSC address path to listen for messages (default is `"/xy"`). - **X Input Range:** - **`x_input_min`:** Minimum expected X input value (default is `0.0`). - **`x_input_max`:** Maximum expected X input value (default is `1.0`). - **X Output Range:** - **`x_output_min`:** Minimum X output value (integer, default is `0`). - **`x_output_max`:** Maximum X output value (integer, default is `100`). - **`x_output_invert`:** Invert the X output mapping if checked (default is `False`). - **`x_output_default`:** Default X value used when no OSC data is received (default is `50`). - **Y Input Range:** - **`y_input_min`:** Minimum expected Y input value (default is `0.0`). - **`y_input_max`:** Maximum expected Y input value (default is `1.0`). - **Y Output Range:** - **`y_output_min`:** Minimum Y output value (integer, default is `0`). - **`y_output_max`:** Maximum Y output value (integer, default is `100`). - **`y_output_invert`:** Invert the Y output mapping if checked (default is `False`). - **`y_output_default`:** Default Y value used when no OSC data is received (default is `50`). - **Debug (`debug`):** Enable debug mode to print detailed logs (default is `False`). 3. **Use the Node:** - **Send OSC Messages:** - Send OSC messages to the specified `path` with either two arguments (`x` and `y` values) or to sub-paths `path/x` and `path/y` with single values. - **Data Mapping:** - The node maps the incoming `x` and `y` values from the input range to the output range, optionally inverting the mapping. - **Default Values:** - If no OSC data is received or the server connection fails, the node will use the specified default values. - **Outputs:** - **`X_INT`, `Y_INT`**: The remapped integer values of X and Y. - **`X_FLOAT`, `Y_FLOAT`**: The remapped float values of X and Y. - **`X_RAW`, `Y_RAW`**: The raw input values received from OSC messages. 4. **Connect Outputs:** - Use the outputs to control other nodes or parameters within your ComfyUI workflow. **Note:** - Ensure your OSC client is sending messages to the correct `server_ip`, `port`, and `path`. - The input and output ranges allow you to calibrate and map values as needed. - Default values provide a fallback when no OSC messages are received. - The node supports both combined (`/xy` with two arguments) and separate (`/xy/x` and `/xy/y`) OSC messages. --- ### Node: `XYZ OSC Control @ vrch.ai` (vrch.ai/control/osc) 1. **Add the `XYZ OSC Control @ vrch.ai` node to your ComfyUI workflow.** 2. **Configure the Node:** - **Server IP (`server_ip`):** Enter the IP address of the OSC server (default is your local IP address). - **Port (`port`):** Specify the port number on which the OSC server is listening (default is `8000`). - **Path (`path`):** Set the OSC address path to listen for messages (default is `"/xyz"`). - **X Input Range:** - **`x_input_min`:** Minimum expected X input value (default is `0.0`). - **`x_input_max`:** Maximum expected X input value (default is `1.0`). - **X Output Range:** - **`x_output_min`:** Minimum X output value (integer, default is `0`). - **`x_output_max`:** Maximum X output value (integer, default is `100`). - **`x_output_invert`:** Invert the X output mapping if checked (default is `False`). - **`x_output_default`:** Default X value used when no OSC data is received (default is `50`). - **Y Input Range:** - **`y_input_min`:** Minimum expected Y input value (default is `0.0`). - **`y_input_max`:** Maximum expected Y input value (default is `1.0`). - **Y Output Range:** - **`y_output_min`:** Minimum Y output value (integer, default is `0`). - **`y_output_max`:** Maximum Y output value (integer, default is `100`). - **`y_output_invert`:** Invert the Y output mapping if checked (default is `False`). - **`y_output_default`:** Default Y value used when no OSC data is received (default is `50`). - **Z Input Range:** - **`z_input_min`:** Minimum expected Z input value (default is `0.0`). - **`z_input_max`:** Maximum expected Z input value (default is `1.0`). - **Z Output Range:** - **`z_output_min`:** Minimum Z output value (integer, default is `0`). - **`z_output_max`:** Maximum Z output value (integer, default is `100`). - **`z_output_invert`:** Invert the Z output mapping if checked (default is `False`). - **`z_output_default`:** Default Z value used when no OSC data is received (default is `50`). - **Debug (`debug`):** Enable debug mode to print detailed logs (default is `False`). 3. **Use the Node:** - **Send OSC Messages:** - Send OSC messages to the specified `path` with three arguments (`x`, `y`, and `z` values) or to sub-paths `path/x`, `path/y`, and `path/z` with single values. - **Data Mapping:** - The node maps the incoming `x`, `y`, and `z` values from the input ranges to the output ranges, optionally inverting the mappings. - **Default Values:** - If no OSC data is received or the server connection fails, the node will use the specified default values. - **Outputs:** - **`X_INT`, `Y_INT`, `Z_INT`**: The remapped integer values of X, Y, and Z. - **`X_FLOAT`, `Y_FLOAT`, `Z_FLOAT`**: The remapped float values of X, Y, and Z. - **`X_RAW`, `Y_RAW`, `Z_RAW`**: The raw input values received from OSC messages. 4. **Connect Outputs:** - Use the outputs to control other nodes or parameters within your ComfyUI workflow. **Note:** - Ensure your OSC client is sending messages to the correct `server_ip`, `port`, and `path`. - The input and output ranges allow you to calibrate and map values as needed. - Default values provide a fallback when no OSC messages are received. - The node supports both combined (`/xyz` with three arguments) and separate (`/xyz/x`, `/xyz/y`, `/xyz/z`) OSC messages. --- ### Node: `INT OSC Control @ vrch.ai` (vrch.ai/control/osc) 1. **Add the `INT OSC Control @ vrch.ai` node to your ComfyUI workflow.** 2. **Configure the Node:** - **Server IP (`server_ip`):** Enter the IP address of the OSC server (default is your local IP address). - **Port (`port`):** Specify the port number on which the OSC server is listening (default is `8000`). - **Path (`path`):** Set the OSC address path to listen for messages (default is `"/path"`). - **Input Range:** - **`input_min`:** Minimum expected input value (default is `0.0`). - **`input_max`:** Maximum expected input value (default is `1.0`). - **Output Range:** - **`output_min`:** Minimum output value (integer, default is `0`). - **`output_max`:** Maximum output value (integer, default is `100`). - **`output_invert`:** Invert the output mapping if checked (default is `False`). - **`output_default`:** Default value used when no OSC data is received (default is `0`). - **Debug (`debug`):** Enable debug mode to print detailed logs (default is `False`). 3. **Use the Node:** - **Send OSC Messages:** - Send OSC messages to the specified `path` with a single value. - **Data Mapping:** - The node maps the incoming value from the input range to the output range, optionally inverting the mapping. - **Default Value:** - If no OSC data is received or the server connection fails, the node will use the specified default value. - **Outputs:** - **`VALUE`**: The remapped integer value. - **`RAW_VALUE`**: The raw input value received from the OSC message. 4. **Connect Outputs:** - Use the `VALUE` output to control integer parameters in your workflow. **Note:** - Ensure your OSC client is sending messages to the correct `server_ip`, `port`, and `path`. - Adjust the input and output ranges to suit your application's needs. - The default value provides a fallback when no OSC messages are received. - The node clamps and maps values to ensure they stay within the specified ranges. --- ### Node: `FLOAT OSC Control @ vrch.ai` (vrch.ai/control/osc) 1. **Add the `FLOAT OSC Control @ vrch.ai` node to your ComfyUI workflow.** 2. **Configure the Node:** - **Server IP (`server_ip`):** Enter the IP address of the OSC server (default is your local IP address). - **Port (`port`):** Specify the port number on which the OSC server is listening (default is `8000`). - **Path (`path`):** Set the OSC address path to listen for messages (default is `"/path"`). - **Input Range:** - **`input_min`:** Minimum expected input value (default is `0.0`). - **`input_max`:** Maximum expected input value (default is `1.0`). - **Output Range:** - **`output_min`:** Minimum output value (float, default is `0.0`). - **`output_max`:** Maximum output value (float, default is `100.0`). - **`output_invert`:** Invert the output mapping if checked (default is `False`). - **`output_default`:** Default value used when no OSC data is received (default is `0.0`). - **Debug (`debug`):** Enable debug mode to print detailed logs (default is `False`). 3. **Use the Node:** - **Send OSC Messages:** - Send OSC messages to the specified `path` with a single value. - **Data Mapping:** - The node maps the incoming value from the input range to the output range, optionally inverting the mapping. - **Default Value:** - If no OSC data is received or the server connection fails, the node will use the specified default value. - **Outputs:** - **`VALUE`**: The remapped float value. - **`RAW_VALUE`**: The raw input value received from the OSC message. 4. **Connect Outputs:** - Use the `VALUE` output to control float parameters in your workflow. **Note:** - Ensure your OSC client is sending messages to the correct `server_ip`, `port`, and `path`. - Adjust the input and output ranges to suit your application's needs. - The default value provides a fallback when no OSC messages are received. - The node clamps and maps values to ensure they stay within the specified ranges. --- ### Node: `SWITCH OSC Control @ vrch.ai` (vrch.ai/control/osc) 1. **Add the `SWITCH OSC Control @ vrch.ai` node to your ComfyUI workflow.** 2. **Configure the Node:** - **Server IP (`server_ip`):** Enter the IP address of the OSC server (default is your local IP address). - **Port (`port`):** Specify the port number on which the OSC server is listening (default is `8000`). - **Paths:** - **`path1`** to **`path8`**: Set the OSC address paths for each of the 8 switches (defaults are `"/toggle1"` to `"/toggle8"`). - **Debug (`debug`):** Enable debug mode to print detailed logs (default is `False`). 3. **Use the Node:** - **Send OSC Messages:** - Send OSC messages to the specified paths with a value indicating the switch state (`0` for OFF, `1` for ON). - **Outputs:** - **`SWITCH_1`** to **`SWITCH_8`**: Boolean outputs representing the state of each switch. 4. **Connect Outputs:** - Use the switch outputs to control boolean parameters or logic in your workflow. **Note:** - Ensure your OSC client is sending messages to the correct `server_ip`, `port`, and paths. - Each switch corresponds to a separate OSC path, allowing independent control. --- ### Node: `TEXT Switch OSC Control @ vrch.ai` (vrch.ai/control/osc) 1. **Add the `TEXT Switch OSC Control @ vrch.ai` node to your ComfyUI workflow.** 2. **Configure the Node:** - **Texts:** - **`text1`** to **`text8`**: Enter up to 8 text options to switch between. - **Server IP (`server_ip`):** Enter the IP address of the OSC server (default is your local IP address). - **Port (`port`):** Specify the port number on which the OSC server is listening (default is `8000`). - **Path (`path`):** Set the OSC address path to listen for messages (default is `"/radio1"`). - **Debug (`debug`):** Enable debug mode to print detailed logs (default is `False`). 3. **Use the Node:** - **Send OSC Messages:** - Send OSC messages to the specified `path` with a single integer argument representing the index of the text to select (`0` to `7`). - **Output:** - **`TEXT_OUTPUT`**: The selected text based on the received index. 4. **Connect Output:** - Use the `TEXT_OUTPUT` to feed into other nodes that accept string inputs. **Note:** - Ensure the index sent in the OSC message is within the valid range (`0` to `7`). - If an invalid index is received, the node retains the previous output. --- ### Node: `IMAGE Switch OSC Control @ vrch.ai` (vrch.ai/control/osc) 1. **Add the `IMAGE Switch OSC Control @ vrch.ai` node to your ComfyUI workflow.** 2. **Configure the Node:** - **Image Inputs:** - **`image0`** to **`image3`**: Connect up to 4 image inputs to switch between. - **Server IP (`server_ip`):** Enter the IP address of the OSC server (default is your local IP address). - **Port (`port`):** Specify the port number on which the OSC server is listening (default is `8000`). - **Path (`path`):** Set the OSC address path to listen for messages (default is `"/radio1"`). - **Debug (`debug`):** Enable debug mode to print detailed logs (default is `False`). 3. **Use the Node:** - **Send OSC Messages:** - Send OSC messages to the specified `path` with a single integer argument representing the index of the image to select (`0` to `3`). - **Output:** - **`IMAGE`**: The selected image based on the received index. 4. **Connect Output:** - Use the `IMAGE` output to feed into other nodes that accept image inputs. **Note:** - Ensure that the image inputs are properly connected and that the indices sent correspond to the available images. - If an invalid index is received or the image at that index is not connected, the node outputs `None`. --- ### Node: `ANY Value OSC Control @ vrch.ai` (vrch.ai/control/osc) 1. **Add the `ANY Value OSC Control @ vrch.ai` node to your ComfyUI workflow.** 2. **Configure the Node:** - **Server IP (`server_ip`):** Enter the IP address of the OSC server (default is your local IP address). - **Port (`port`):** Specify the port number on which the OSC server is listening (default is `8000`). - **Path (`path`):** Set the OSC address path to listen for messages (default is `"/path"`). - **Debug (`debug`):** Enable debug mode to print detailed logs (default is `False`). 3. **Use the Node:** - **Send OSC Messages:** - Send OSC messages to the specified `path` with a single argument of any type: integer, float, string, or boolean. - **Value Detection:** - The node detects the type of the received value and updates the corresponding output while resetting the others to default values. - If the value is an **integer**, it updates the **`INT`** output. - If the value is a **float**, it updates the **`FLOAT`** output. - If the value is a **string**, it updates the **`TEXT`** output. - If the value is a **boolean**, it updates the **`BOOL`** output. 4. **Outputs:** - **`INT`**: Outputs the integer value received (default is `0`). - **`FLOAT`**: Outputs the float value received (default is `0.0`). - **`TEXT`**: Outputs the string value received (default is an empty string `""`). - **`BOOL`**: Outputs the boolean value received (default is `False`). 5. **Connect Outputs:** - Use the appropriate output to feed into other nodes in your workflow based on the expected data type. **Note:** - Ensure your OSC client is sending messages to the correct `server_ip`, `port`, and `path`. - Only one output will be updated at a time, corresponding to the type of the received value; the other outputs will reset to their default values. - If the received value is of an unsupported type, the node will not update any outputs. - This node is useful when you need to receive dynamic values of varying types over OSC without knowing the exact type in advance. --- ### Node: `OSC Control Settings @ vrch.ai` (vrch.ai/control/osc) 1. **Add the `OSC Control Settings @ vrch.ai` node to your ComfyUI workflow.** 2. **Configure the Node:** - **Server IP (`server_ip`):** Specify the IP address of the OSC server. By default, this is set to the local IP address of your machine. - **Port (`port`):** Set the port number on which the OSC server is listening. The default value is `8000`, but you can specify any valid port number between `0` and `65535`. - **Debug (`debug`):** Enable this option to activate debug mode, which will print detailed logs to help with troubleshooting. The default is `False`. 3. **Use the Node:** - This node initializes and configures the OSC server settings in your workflow. It does not actively send or receive OSC messages but serves as a central configuration point for OSC communication. - If `debug` is enabled, the node outputs debug information, including the server IP and port details, to the console for verification and troubleshooting. 4. **Outputs:** - **`SERVER_IP`**: Outputs the configured IP address for the OSC server as a string. - **`PORT`**: Outputs the configured port number for the OSC server as an integer. 5. **Connect Outputs:** - Use the `SERVER_IP` and `PORT` outputs to link this configuration to other OSC nodes in your workflow, ensuring that all nodes are using the same IP and port settings. **Note:** - Ensure that the OSC client is configured to communicate with the specified `server_ip` and `port`. - This node is useful for setting up a consistent OSC configuration across multiple nodes within a ComfyUI workflow, centralizing the IP and port details for easy management. - When `debug` mode is active, it helps you monitor OSC activity by outputting server connection details to the console. --- ### Node: `Delay OSC Control @ vrch.ai` (vrch.ai/control/osc) 1. **Add the `Delay OSC Control @ vrch.ai` node to your ComfyUI workflow.** 2. **Configure the Node:** - **Any Input (`any_input`):** Connect the input you want to delay. - **Server IP (`server_ip`):** Enter the IP address of the OSC server (default is your local IP address). - **Port (`port`):** Specify the port number on which the OSC server is listening (default is `8000`). - **Path (`path`):** Set the OSC address path to listen for messages (default is `"/path"`). - **Input Range:** - **`input_min`:** Minimum expected OSC message value (default is `0.0`). - **`input_max`:** Maximum expected OSC message value (default is `1.0`). - **Output Range:** - **`output_min`:** Minimum delay period in milliseconds (integer, default is `0`). - **`output_max`:** Maximum delay period in milliseconds (integer, default is `1000`). - **`output_invert`:** Invert the delay mapping if checked (default is `False`). - **`output_default`:** Default delay period used when no OSC data is received (integer, default is `0`). - **Debug (`debug`):** Enable debug mode to print detailed logs (default is `False`). 3. **Use the Node:** - **Send OSC Messages:** - Send OSC messages to the specified `path` with a single float value representing the desired delay factor. - **Data Mapping:** - The node maps the incoming OSC value from `[input_min, input_max]` to `[output_min, output_max]` milliseconds, optionally inverting the mapping. - **Default Value:** - If no OSC data is received or the server connection fails, the node will use the specified default value. - **Functionality:** - Upon receiving an OSC message, the node pauses the workflow for the mapped delay period and then outputs the `any_input` value. 4. **Outputs:** - **`ANY_OUTPUT`**: The delayed output value (same as `any_input`). - **`DELAY_PERIOD`**: The delay period in milliseconds. - **`RAW_VALUE`**: The raw OSC message value received, useful for debugging. **Note:** - **Blocking Behavior:** The node uses `time.sleep` to synchronously pause the workflow. Use reasonable delay periods to avoid making the interface unresponsive. - **Default Value:** The default value provides a fallback when no OSC messages are received or when there are connection issues. - **Debugging:** Enable `debug` to view detailed logs of OSC message reception and delay processing. - **OSC Configuration:** Ensure your OSC client sends messages to the correct `server_ip`, `port`, and `path`. ---