Git Product home page Git Product logo

cushystudio's Introduction

๐Ÿ›‹๏ธ CushyStudio

The easiest and most powerful Stable Diffusion frontend

Static Badge GitHub commit activity (branch) GitHub Sponsors


Discover a world of Actions

  • CushyStudio Actions are interactive generative "apps" with dedicated UIs.
  • They make it super easy and fun to explore all generative art has to offer.
  • CushyStudio allows you to run, create, and share Actions

For Artists

  • โœ… Non-technical Actions interfaces

    • Per use-case UI
    • Simple widgets
  • ๐Ÿš‚ Fast previews, real-time feedback

    • Interactive at its core
    • Real-time actions with continuous generations
  • ๐Ÿ–Œ๏ธ Built-in commodities

    • Image and Mask editors
    • Modular Layout to keep every creative tool at hand

For Creatives

  • ๐Ÿš€ The most practical toolset to build actions

    • Pre-configured ecosystem: NO SETUP NEEDED
    • Built-in ComfyUI to Action converter
    • Graphical Action builder
    • A full TypeScript Action SDK + Compiler to go further
  • ๐Ÿง  ComfyUI engine At its core

    • All custom nodes are supported
    • Deep integration with ComfyUI Graph
    • A well-thought interface to explore and play with nodes
  • ๐Ÿ’ช From 0 to 100 in no time

    • Modularize, reuse, and grow your toolset
    • Share your actions with the world

Installation

Ensure you have:

Install CushyStudio by running these commands in a terminal

git clone https://github.com/rvion/CushyStudio
cd CushyStudio
npm install
npm start

Quickstart Guide

When you start CushyStudio ... TODO

See it in action

Global Video

TODO: place video here

Screenshots

Features

Work with remote ComfyUI as if they were local

  • Automatically download images in your local outputs folder
  • Automatically upload files

Switch between ComfyUI remotes like you would

  • โœ… Quickly switch between various ComfyUI setups
  • โณ Parallelize work across multiple instances

Edit the list of ComfyUI setups in CONFIG.json

2023-10-18_21-28-13.mp4

ComfyUI compatible: Convert workflow to Action.

๐Ÿ›‹๏ธ CushyStudio is directly compatible with ComfyUI workflow json format and images. Add them to the action folder to quickly use them inside CushyStudio.

Real-time enabled

2023-10-19_00-39-13.mp4

Built-in CivitAI integration

  • โœ… Embedded Civitai browser
  • โœ… Civitai custom ComfyUI Nodes support
  • โœ… Dedicated Civitai input widgets to augment your own actions

Built-in full-featured Image Editor

Layers, effects, masks, blending modes, ...and more. Always one click away

Easy to extend

๐Ÿ‘‰ In case you have a problem, check the logs and report what you see

Click here to see how to reveal the debug console

3. Create your own Actions to streamline any image or video production

Light ย  ย  ย  ย  Dark

  1. Define your own UI
  2. Build one or many prompts with custom logic in TypeScript
  3. Type-safe experience pushed to the MAXIMUM
    1. Every single value/enum is typed
    2. A built-in standard library made to quickly build your dream workflow
    3. Use lambda to get completion only for the node that produces the value needed

Quickstart Guide For Action Creators

๐Ÿ›‹๏ธ CushyStudio comes packed with features to allow you to create your own AI-powered image and video creation tools.

In Cushy, tools are called Actions.

Creating actions is easy because ๐Ÿ›‹๏ธ CushyStudio

  1. On startup, ensure CushyStudio is connected to some ComfyUI server

    • A whole TypeScript Action SDK will be generated in the schema/ folder
    • All your custom nodes, models, and images will be converted to enums, classes, helpers, etc, allowing you to create actions with maximum type safety and completion.
  2. Create a folder in the actions/ subfolder at the root

  3. Create any myaction.ts file inside this folder

  4. Open the whole CushyStudio repository in Visual Studio Code

    • ๐Ÿ‘‰ Open the whole CushyStudio installed repository
    • NOT just the action folder, NOR the action file itself, but:
  5. Initialize your action from some basic code or generated code from existing workflows

    action('demo1-basic', {
        author: 'rvion',
        // A. define the UI
        ui: (form) => ({
            positive: form.str({ label: 'Positive', default: 'flower' }),
        }),
        // B. defined the execution logic
        run: async (action, form) => {
            //  build a ComfyUI graph
            const graph = action.nodes
            const ckpt = graph.CheckpointLoaderSimple({ ckpt_name: 'albedobaseXL_v02.safetensors' })
            const seed = action.randomSeed()
            const sampler = graph.KSampler({
                seed: seed,
                steps: 20,
                cfg: 14,
                sampler_name: 'euler',
                scheduler: 'normal',
                denoise: 0.8,
                model: ckpt,
                positive: graph.CLIPTextEncode({ text: form.positive, clip: ckpt }),
                negative: graph.CLIPTextEncode({ text: '', clip: ckpt }),
                latent_image: graph.EmptyLatentImage({ width: 512, height: 512, batch_size: 1 }),
            })
    
            graph.SaveImage({
                images: graph.VAEDecode({ samples: sampler, vae: ckpt }),
                filename_prefix: 'ComfyUI',
            })
    
            // run the graph you built
            await action.PROMPT()
        },
    })
  6. See how actions look like by dropping any ComfyUI workflow or image into the action and looking at the converted.ts

An Action is a file containing

  • An UI definition (widgets, form, styles, default values, tabs, etc...) (a bit like Gradio in Python)
  • A piece of code that runs your action
  • ...And more

Publish your Action pack

Publishing your action is easy!

  1. Create a GitHub repository. (https://github.com/new)

  2. Commit your actions files (follow instructions given by Git Hub on the new repository page).

  3. Open an issue asking to add your action pack to the marketplace.

SHOW EXAMPLE
cd actions/rvion

git init
Initialized empty Git repository in /Users/loco/dev/CushyStudio/actions/rvion/.git/

git add .

git commit -m "first commit"
[master (root-commit) 602fab1] first commit
 4 files changed, 146 insertions(+)
 create mode 100644 mask-face.ts
 create mode 100644 rembg.ts
 create mode 100644 replace-part.ts
 create mode 100644 test.ts

git remote add origin [email protected]:rvion/cushy-example-actions.git

Then open an issue asking there

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.