Coder Social home page Coder Social logo

rvion / cushystudio Goto Github PK

View Code? Open in Web Editor NEW
570.0 13.0 39.0 68.34 MB

๐Ÿ›‹ The AI and Generative Art platform for everyone

Home Page: https://docs.cushystudio.com/

License: GNU Affero General Public License v3.0

TypeScript 93.81% HTML 0.29% CSS 1.32% JavaScript 4.01% Batchfile 0.33% Shell 0.24%
ai comfyui cross-platform generative-ai generative-art live-coding

cushystudio's Introduction

๐Ÿ›‹๏ธ CushyStudio

The Generative AI Platform for everyone

Maturity Build Status Activity Join our Discord Follow _rvion on Twitter

CushyStudio is the go-to platform for easy generative AI use, empowering creatives of any level to effortlessly create stunning images, videos, and 3D models.

What You'll Love:

  • CushyApps: A collection of visual tools tailored for different artistic tasks. Simplify your AI art creation process and have fun exploring a wide range of versatile to niche tools in the Cushy Library.

  • CushyKit: Speed up your projects with our extensive toolkit for custom apps development and task automation. Quickly design interfaces, add custom logic, and access tools like ComfyUI in a user-friendly, preconfigured typescript environment.

Dive into the AI Revolution with CushyStudio. Unleash your creativity, share your projects, and connect with a vibrant community pushing the boundries of generative AI. Experience the fusion of simplicity and innovation.

Warning

โš ๏ธ CushyStudio is under active development, so you might encounter incomplete features or issues due to rapid updates. Your feedback is vital for us to refine and expand the project. Please report any critical problems you find in our discord or open a GitHub issue.


QuickStart guide:

  1. Have Git installed
  2. Clone this repository with git
    git clone https://github.com/rvion/CushyStudio
    cd CushyStudio
  3. Install with _windows_INSTALL.bat or _mac-linux-install.sh
  4. Start with _mac-linux-start.sh or _windows-start.bat

Screenshots and Videos

Table of contents

Getting Started

Going further

Community

cushystudio's People

Contributors

alexdorian7 avatar alexlevy0 avatar birdddev avatar diffus3 avatar freeo avatar gitbook-bot avatar gitwilburn avatar globidev avatar irldoggo avatar keilladraconis avatar manavb2214 avatar noellealarie avatar ricklove avatar rvion avatar vaibhav-009 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cushystudio's Issues

Hanging on `await flow.PROMPT()`

Using rvion.cushystudio-0.0.99.vsix and the current example given in the README, I'm not getting any output past the await flow.PROMPT() line (e.g. adding flow.showHTMLContent('TEST') to the next line does nothing). I'm not seeing any images either, although I do see them being generated in the ComfyUI output directory.

Seems like the completion event for the image generation isn't being sent/received correctly?

Here's the output log when it's hanging:

โ„น๏ธ found WORKFLOW demo-1
โ„น๏ธ ๐Ÿ”ฅ seed: 19040996
โ„น๏ธ prompt requested
โ„น๏ธ checkpoint:{"1":{"class_type":"CheckpointLoaderSimple","inputs":{"ckpt_name":"deliberate_v2.safetensors"}},"2":{"class_type":"EmptyLatentImage","inputs":{"width":512,"height":512,"batch_size":1}},"3":{"class_type":"CLIPTextEncode","inputs":{"text":"masterpiece, (chair:1.3)","clip":["1",1]}},"4":{"class_type":"CLIPTextEncode","inputs":{"text":"","clip":["1",1]}},"5":{"class_type":"KSampler","inputs":{"model":["1",0],"seed":19040996,"steps":20,"cfg":10,"sampler_name":"euler","scheduler":"normal","positive":["3",0],"negative":["4",0],"latent_image":["2",0],"denoise":0.8}},"6":{"class_type":"VAEDecode","inputs":{"samples":["5",0],"vae":["1",2]}},"7":{"class_type":"SaveImage","inputs":{"images":["6",0],"filename_prefix":"ComfyUI"}}}
โ„น๏ธ sending prompt to http://localhost:8188/prompt

Let me know if I can help debug in any way, I'd love to get this project working for me and love what you're doing here!

Typo Error in README.md

In the file, there is a typographical error in the following line:

The attribute name "tyle" appears to be a typo. It should be corrected to "style".

The line - "<tr tyle='vertical-align:top'>" must be corrected to : -

"<tr style='vertical-align:top'>"

Add hover tooltips to each toolbar menu items

Hover tooltip on all of these which also contains information about what you can do with each of the functionality or window.

For example the Civitai tooltip can specify that it's simply offered as a shortcut to the civitai website and it doesn't offer any fancy integration or features other than that. Thus these tooltips help to cut down on confusion as well as better communicate the capabilities and usage patterns of the application.

image

Note: the tooltip should be proper minimal tooltips, not the distracting popup balloon as we currently have with the Actions button. I also suggest replacing that ballon with the proper tooltip suggested here.

Can't start dev server

Failed to load resource: the server responded with a status of 404 (Not Found)
Logger.ts:54 [INFO] monaco ready
Logger.ts:54 [INFO] typescript ready (4.5.5)
chunk-RCPA6UVN.js:1 Uncaught (in promise) TypeError: window.TAURI_IPC is not a function
at chunk-RCPA6UVN.js:1:542
at new Promise ()
at c (chunk-RCPA6UVN.js:1:397)
at a (chunk-HNLFKTAJ.js:1:68)
at Module.o (chunk-J5WVX3SY.js:3:29)
at CushyStudio.CREATE (CushyStudio.ts:23:49)
at AppUI.tsx:22:42
at mountMemo (react-dom.development.js:17225:19)
at Object.useMemo (react-dom.development.js:17670:16)
at useMemo (react.development.js:1650:21)
DevTools failed to load source map: Could not load content for chrome-extension://cfhdojbkjhnklbpkdaibdccddilifddb/browser-polyfill.js.map: System error: net::ERR_FILE_NOT_FOUND

A way to edit run names

Would be great to have a way to rename the runs, instead of "run1,run2,run3" we could have a function in the code to rename this to whatever we like ! this way we can organize test runs for example "testing_x_thing_n" or "doing_cats" inside the project folder.

Typo Error in README.md

In the file, there is a typographical error in the following line:

The attribute name "tyle" appears to be a typo. It should be corrected to "style".

The line - "<tr tyle='vertical-align:top'>" must be corrected to : -

"<tr style='vertical-align:top'>"

Allow opening workflows as tab by drag n drop from externally

Let's say I have an old output from ComfyUI and I want to load the workflow in CushiStudio to work with it. Currently I have to copy the image to my Cushy library, but what if instead I could simply drag and drop into the application and it opens the tab?

doc issue?

I ran

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

And I got this:
Screenshot 2023-10-09 at 7 09 20 PM

Are there some missing instructions, e.g. "Install ComfyUI first"?
N00bs gonna n00b.

Incorrect filesystem paths for vscode file URIs

Issue

Import flow fails on non-nix systems.

Other functionality may be impacted, this was the only place immediately apparent.

Solution

In multiple places, vscode.Uri.file(<path>).path is used to get the filesystem path; however, vscode.Uri.file(<path>).fsPath should be used instead.

Example: Workspace#importCurrentFileAsComfyUIPNG uses
const relPathStr = vscode.Uri.file(absPath).path.replace(this.wspUri.fsPath, '.'). The this.wspUri.fsPath is correct; however, vscode.Uri.file(absPath).path is not. This causes the replace to fail and thus the import to fail. Switching to vscode.Uri.file(absPath).fsPath fixes this issue.

The same issue is present in Workspace#importCurentFileAsComfyJSON.

Flow Summary and Image Output Area Empty

Currently the output window goes completely blank on every run. Once I close the pane, and re-run the workflow, it flashes some output for a moment and then goes blank until I close it again. This feels possibly related to the flow summary as this behavior used to only happen when I attempted to generate a flow summary.

Suggestion: rename 'Actions' button to 'Library'

I think Actions is too vague, it's not clear which actions we are talking about as it could also be the actions I already have open i.e. my tabs. Library on the other hand connects it to the folder and makes it clear that it's the template not yet loaded into a buffer to use it.

image

Consider creating a stable branch

In the past I tried CushyStudio a month or two and gave up on it because I couldn't seem to get ahold of a working commit. Right now I am trying it again and wow it's impressive, keep up the great work folks, finally we are starting to get real production-grade software. However even though it worked fine, certain things seem very WIP or bleeding edge, so I think a stable branch could could save some superfluous tickets and improve the adoption further!

UI inconsistencies

The name "mask" is push down for some reason.
The image selectors are not the same if they are a group or not are Opt or not.
image

Design concerns about the `ask*` API

Right now it seems that we're queuing a "step" for each ask request and popping them in LIFO fashion
This makes the following workflow behave rather unexpectingly:

WORKFLOW('multi-ask', async (_graph, flow) => {
    const aOrB = await Promise.race([
        flow.askBoolean('A').then(() => 'A'), 
        flow.askBoolean('B').then(() => 'B')
    ])
    flow.print(aOrB)
})

We correctly get 2 sets of buttons, but no matter which one is clicked, B is always printed (it was created last and therefore is popped first)

As a possibly related issue, clicking a button that was displayed during a previous run will also resolve the ask step from the current run

Lora popup: should not auto-disappear when the cursor leaves if it has focus

#59 introduced a new popup for loras and it's very useful, but if you click into the input fields and let go of the mouse to enter values, it will disappear if the mouse accidentally leaves goes out of the popup's bounds.

Instead it should remain open if I have clicked anywhere into the popup and require clicking outside to close it.

"Invalid method encountered' - Error connecting to ComfyUI Server

When connecting to the running ComfyUI-Server in Cushy-Studio I get this error (in the terminal):

Traceback (most recent call last):
File "E:\ComfyUI\python_embeded\lib\site-packages\aiohttp\web_[protocol.py](http://protocol.py/)", line 332, in data_received
messages, upgraded, tail = self._request_parser.feed_data(data)
File "aiohttp_http_parser.pyx", line 551, in aiohttp._http_parser.HttpParser.feed_data
aiohttp.http_exceptions.BadStatusLine: 400, message="Bad status line 'Invalid method encountered'"

(Windows, Version from today)

Checkpoint dropdown list doesn't fit with 'dense' layout

If I enable the mobile layout, the dropdown list with all my SD checkpoints feels good, but in the dense layout it seems out of the place, too airy compared to the rest of the UI. I also feel that the list could be a lot longer, imo it's fine to take up the whole available vertical space up to the window bounds.

Error at start, it still works though ๐Ÿคทโ€โ™€๏ธ

C:\CushyStudio>npm start

> [email protected] start
> concurrently --kill-others -n vite,electron -c yellow,blue "npm run front:dev" "electron -i src/shell"

[electron]
[electron] [๐Ÿช] electronPath: C:\CushyStudio\node_modules\electron\dist
[electron] [๐Ÿช] icon path: C:\CushyStudio\src\public\CushyLogo-512.png
[electron] [๐Ÿช] failed to patch icon ExitCodeError: Command failed with a non-zero return code (1):
[electron] C:\CushyStudio\node_modules\rcedit\bin\rcedit-x64.exe C:\CushyStudio\node_modules\electron\dist\electron.exe --set-file-version CushyStudio --set-product-version CushyStudio --set-icon C:\CushyStudio\src\public\CushyLogo-512.png
[electron]
[electron] Fatal error: Unable to parse version string for FileVersion
[electron]     at ChildProcess.<anonymous> (C:\CushyStudio\node_modules\@malept\cross-spawn-promise\dist\src\index.js:99:24)
[electron]     at ChildProcess.emit (node:events:514:28)
[electron]     at cp.emit (C:\CushyStudio\node_modules\cross-spawn\lib\enoent.js:34:29)
[electron]     at maybeClose (node:internal/child_process:1091:16)
[electron]     at Socket.<anonymous> (node:internal/child_process:449:11)
[electron]     at Socket.emit (node:events:514:28)
[electron]     at Pipe.<anonymous> (node:net:323:12) {
[electron]   cmd: 'C:\\CushyStudio\\node_modules\\rcedit\\bin\\rcedit-x64.exe',
[electron]   args: [
[electron]     'C:\\CushyStudio\\node_modules\\electron\\dist\\electron.exe',
[electron]     '--set-file-version',
[electron]     'CushyStudio',
[electron]     '--set-product-version',
[electron]     'CushyStudio',
[electron]     '--set-icon',
[electron]     'C:\\CushyStudio\\src\\public\\CushyLogo-512.png'
[electron]   ],
[electron]   stdout: '',
[electron]   stderr: 'Fatal error: Unable to parse version string for FileVersion\r\n',
[electron]   code: 1
[electron] }
[electron] waiting for cushy to start
[vite]
[vite] > [email protected] front:dev
[vite] > vite dev
[vite]
[vite]
[vite]   VITE v4.4.11  ready in 756 ms
[vite]
[vite]   โžœ  Local:   http://localhost:8788/
[vite]   โžœ  Network: use --host to expose
[electron] waiting for cushy to start
[electron] 200

LICENSE ?

got things sorted out ! Thanks comfyanonymous, tekakutli , and Exouxas

Here are my goals with CushyStudio :

  • Make a cool project that I love to play with.
  • Have fun with the Community (& grow a community ?).
  • Share a fun journey with collaborators.
  • No paywall, no restricted features, no crippling the project for the sake of making money.
  • Ensure the project remains free and open source.
  • Make some money in a non agressive way from those who can, to keep working and supporting CushyStudio.
  • I don't want people to be afraid of using CushyStudio because of some license problem.
  • I also don't want people reselling CushyStudio.
  • and I don't want to work for free.

=> I'll probably go with GPL + Contributor License Agreement (CLA)

and while it's free and open-source for all, in the meantime, I'll be able to:

  • Solicit donations, (though a Patreon or github support)
  • Sell support, either by contract or by incident.
  • Sell development services, where people pay you to add features to the software.
  • Sell a non-GPL version for large companies who want their custom build with custom integrations.
  • WON'T DO: sell a premium version with extra feature.

open to your feedback !

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.