≡ menu
× menu

cnnmmd

Installation: Individual


For example, you can chat with a default 2D character on the GUI workflow (ComfyUI) in two steps: [※1][※2]

# install
$ yes | ./manage.sh create
cnnmmd_xoxxox_mgrcmf_cmf_tlk_wsp_vox_gpt_001 --depend
# Launch
$ yes | ./manage.sh launch
cnnmmd_xoxxox_mgrcmf_cmf_tlk_wsp_vox_gpt_001 --depend
Reference: Plugin: cnnmmd_xoxxox_mgrcmf_cmf_tlk_wsp_vox_gpt_001

images

Here are some other workflows:


*1
With this plugin, the workflow creation app itself (ComfyUI) becomes the client, so there is no need to install or configure a separate client app.
※2
However, since this plugin uses an external service (OpenAI), you will need to configure the API in advance (if your computer has a GPU, you can use a local model. There is also a pseudo-language generation plugin, which does not require a GPU or API).

Installation: General


Installation: Server cluster

To install it, follow these steps - first, get and install the plugin management tool:

$ cd ${dirtop} # any folder
$ git clone https://github.com/cnnmmd/cnnmmd

$ cd ${dirtop}/cnnmmd/manage/bin

$ ./manage.sh create manage

From there, you can add/remove/start/stop all plugins (including the core of this tool) from the management tool (it also automatically creates container images and acquires, installs, and configures related apps). [※1][※2][※3][※4]

$ cd ${dirtop}/cnnmmd/manage/bin


$ ./manage.sh create ${plugin} # Add/Update
$ ./manage.sh delete ${plugin} # Delete
$ ./manage.sh launch ${plugin} # Start
$ ./manage.sh finish ${plugin} # Stop

By adding the option "--depend", all dependent plugins will be automatically added/removed/started/stopped. Also, if you set it to automatically enter OK when prompted (yes | ...), all processing can be done in one step: [※5][※6][※7]

# Add/update (get and install all plugins with dependencies, answer all questions)
$ yes | ./manage.sh create ${plugin} --depend

# Launch all plugins with dependencies, including this one
$ yes | ./manage.sh launch ${plugin} --depend


Setup: GUI workflow environment

If you use a GUI workflow environment (ComfyUI), the dependencies will be installed automatically - you can create and apply GUI workflows by going to:

http://localhost:11001/

If you are using an existing ComfyUI, please see here for instructions.



Installation: Client (character) group

For various client-side (character-side) applications, the resources included in each plugin must be installed individually according to the use of the application (the installation method is described in each plugin).


*1
The configuration and execution assumes the following environment: all servers for this tool run on containers (Docker) -- and since (as mentioned above) all operations are performed from the management tool, there is no need to learn container-specific operations (for normal use).
Windows: WSL2 + Docker / Docker Desktop (WSL2)
macOS + Docker Desktop
Linux (Ubuntu, ...) + Docker
※2
Depending on the container, it can take up anywhere between 2GB and 10GB of storage -- so you'll need to have a fair amount of free space (currently (2025.07) you should estimate around 64GB to use all your containers).
*3
Although you can run Docker Desktop on Windows, we recommend Docker on WSL2 for efficiency and space management.
*4
In the case of a microcontroller (Raspberry Pi), depending on the resources to be acquired and executed, memory limits may be exceeded. In such cases, you can cross-build for the ARM architecture in a container on your PC and transfer the created resources to the microcontroller (if you are using an ARM-based version of macOS, you can use the built version as is).
※5
Create a container image with all dependencies and install external apps (but you need to get the API key of the external service (such as OpenAI or NovelAI) in advance and store it in the appropriate file - if you don't want to use an external service, you can choose a local model (this requires a GPU on your computer), or there is a plugin that tries the conversation in a fixed way (this does not require any API configuration or GPU deployment).
※6
However, the questions may include information about files that need to be created and configured manually (such as API keys) and confirmation of the download of copyrighted material -- so you should always take execution logs and check the contents.
※7
A list of plugin repositories is located in the administration folder: cnnmmd/manage/cnf/cnfsrc.txt).

Adjustment (Customization)


All files in the tool (configuration files to executable files) can be adjusted (customized) -- basically, you replace the files, but some configuration files allow you to apply patch files (to modify parts or add items). [※1]

You can create as many custom folders as you like, and by applying or excluding them as appropriate, you can tailor the flow to suit your situation and needs.


*1
These adjustments can be made more flexibly using git, but this customization does not require git knowledge (although tracking the differences between the original and the custom version etc. will be done manually).

Exchange (creating and publishing plugins)


You can publish customized files as a plugin (put the files in a single folder, set the folder name as the creator + library name, register it in any repository (Git format), and publish the address).

Users can make use of the published plugins by registering their addresses in a patch file (cnfsrc_custom.txt) for their own repository list file -- duplicate items will be overwritten by the patch (but of course, use is at your own risk [※1] ).


*1
Dynamic libraries for intermediate connectors run inside the container, but if the plugin runs a script to set up the environment (if the manage/bin folder contains create.sh|delete.sh|launch.sh|finish.sh), the script will be executed on the host side (PC). Depending on the behavior of the script, it may put the host side (PC) at risk - for plugins from unknown creators, first just acquire them (create (import) : (y|n): y), and if there is a script, check the contents. If you cannot understand how it works, you may decide not to use the plugin.