From edde4dc2faf7a60e97c21673ee5714bfd29b7032 Mon Sep 17 00:00:00 2001 From: cmdr2 Date: Sun, 4 Sep 2022 19:31:34 +0530 Subject: [PATCH] v2 moving to the main branch --- .gitignore | 3 + Dockerfile | 15 - How to install and run.txt | 24 + OldPortDockerfile | 15 - build.bat | 39 ++ build.sh | 39 ++ docker-compose.yml | 28 -- environment.yaml | 7 + index.html | 912 ------------------------------------- main.py | 73 --- media/config-v5.jpg | Bin 0 -> 56080 bytes modifiers.json | 92 ---- old_port_main.py | 36 -- requirements.txt | 3 - server | 3 - 15 files changed, 112 insertions(+), 1177 deletions(-) delete mode 100644 Dockerfile create mode 100644 How to install and run.txt delete mode 100644 OldPortDockerfile create mode 100644 build.bat create mode 100644 build.sh delete mode 100644 docker-compose.yml create mode 100644 environment.yaml delete mode 100644 index.html delete mode 100644 main.py create mode 100644 media/config-v5.jpg delete mode 100644 modifiers.json delete mode 100644 old_port_main.py delete mode 100644 requirements.txt delete mode 100755 server diff --git a/.gitignore b/.gitignore index bee8a64b..5b668843 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ __pycache__ +installer +installer.tar +dist \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 01014ae5..00000000 --- a/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM python:3.9 - -RUN mkdir /app -WORKDIR /app - -RUN apt update - -COPY requirements.txt ./ -RUN pip install --no-cache-dir -r requirements.txt - -COPY . . - -EXPOSE 9000 - -ENTRYPOINT ["uvicorn", "main:app", "--reload", "--host", "0.0.0.0", "--port", "9000"] \ No newline at end of file diff --git a/How to install and run.txt b/How to install and run.txt new file mode 100644 index 00000000..2f35d75b --- /dev/null +++ b/How to install and run.txt @@ -0,0 +1,24 @@ +Congrats on downloading Stable Diffusion UI, version 2! + +If you haven't downloaded Stable Diffusion UI yet, please download from https://github.com/cmdr2/stable-diffusion-ui + +After downloading, to install please follow these instructions: + +For Windows: +- Please double-click the "Start Stable Diffusion UI.cmd" file inside the "stable-diffusion-ui" folder. + +For Linux: +- Please open a terminal, and go to the "stable-diffusion-ui" directory. Then run ./start.sh + +That file will automatically install everything. After that it will start the Stable Diffusion interface in a web browser. + +To start the UI in the future, please run the same command mentioned above. + + +If you have any problems, please: +1. Try the troubleshooting steps at https://github.com/cmdr2/stable-diffusion-ui/wiki/Troubleshooting +2. Or, seek help from the community at https://discord.com/invite/u9yhsFmEkB +3. Or, file an issue at https://github.com/cmdr2/stable-diffusion-ui/issues + +Thanks +cmdr2 (and contributors to the project) \ No newline at end of file diff --git a/OldPortDockerfile b/OldPortDockerfile deleted file mode 100644 index 22990ee2..00000000 --- a/OldPortDockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM python:3.9 - -RUN mkdir /app -WORKDIR /app - -RUN apt update - -COPY requirements.txt ./ -RUN pip install --no-cache-dir -r requirements.txt - -COPY . . - -EXPOSE 8000 - -ENTRYPOINT ["uvicorn", "old_port_main:app", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/build.bat b/build.bat new file mode 100644 index 00000000..e5e30b6a --- /dev/null +++ b/build.bat @@ -0,0 +1,39 @@ +@mkdir dist\stable-diffusion-ui + +@echo "Downloading components for the installer.." + +@call conda env create --prefix installer -f environment.yaml +@call conda activate .\installer + +@echo "Setting up startup scripts.." + +@mkdir installer\etc\conda\activate.d +@copy scripts\post_activate.bat installer\etc\conda\activate.d\ + +@echo "Creating a distributable package.." + +@call conda install -c conda-forge -y conda-pack +@call conda pack --n-threads -1 --prefix installer --format tar + +@cd dist\stable-diffusion-ui +@mkdir installer + +@call tar -xf ..\..\installer.tar -C installer + +@mkdir scripts + +@copy ..\..\scripts\on_env_start.bat scripts\ +@copy "..\..\scripts\Start Stable Diffusion UI.cmd" . +@copy ..\..\LICENSE . +@copy "..\..\CreativeML Open RAIL-M License" . +@copy "..\..\How to install and run.txt" . + +@echo "Build ready. Zip the 'dist\stable-diffusion-ui' folder." + +@echo "Cleaning up.." + +@cd ..\.. + +@rmdir /s /q installer + +@del installer.tar \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100644 index 00000000..582f81da --- /dev/null +++ b/build.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +mkdir -p dist/stable-diffusion-ui + +echo "Downloading components for the installer.." + +source ~/miniconda3/etc/profile.d/conda.sh + +conda install -c conda-forge -y conda-pack + +conda env create --prefix installer -f environment.yaml +conda activate ./installer + +echo "Creating a distributable package.." + +conda pack --n-threads -1 --prefix installer --format tar + +cd dist/stable-diffusion-ui +mkdir installer + +tar -xf ../../installer.tar -C installer + +mkdir scripts + +cp ../../scripts/on_env_start.sh scripts/ +cp "../../scripts/start.sh" . +cp ../../LICENSE . +cp "../../CreativeML Open RAIL-M License" . +cp "../../How to install and run.txt" . + +echo "Build ready. Zip the 'dist/stable-diffusion-ui' folder." + +echo "Cleaning up.." + +cd ../.. + +rm -rf installer + +rm installer.tar \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 584b63c2..00000000 --- a/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -version: '3.3' - -services: - stability-ai: - container_name: sd - ports: - - '5000:5000' - image: 'r8.im/stability-ai/stable-diffusion@sha256:be04660a5b93ef2aff61e3668dedb4cbeb14941e62a3fd5998364a32d613e35e' - deploy: - resources: - reservations: - devices: - - capabilities: [gpu] - - stable-diffusion-ui: - container_name: sd-ui - ports: - - '9000:9000' - build: - context: . - dockerfile: Dockerfile - volumes: - - .:/app - depends_on: - - stability-ai - -networks: - default: diff --git a/environment.yaml b/environment.yaml new file mode 100644 index 00000000..6ac07d5c --- /dev/null +++ b/environment.yaml @@ -0,0 +1,7 @@ +name: stable-diffusion-ui-installer +channels: + - defaults + - conda-forge +dependencies: + - conda + - git diff --git a/index.html b/index.html deleted file mode 100644 index 6d71d3bd..00000000 --- a/index.html +++ /dev/null @@ -1,912 +0,0 @@ - - - - - - -
-
-
-
-
-
 
- server starting.. -
-

Stable Diffusion UI v1

-
-
-
- - -
- -
-
-
- - -
- -
-
-
- - -
-
-
- -
- -
-
-
- - -
- -
 
- -
-

Advanced Settings

-
    -
  • -
  • -
  • - -
  • -
  • - -
  • -
  • -
  • -

  • -
  •  
  • -
  • -
-
- -
-

Image Modifiers (art styles, tags etc)

-
-
-
-
- -
-
Type a prompt and press the "Make Image" button.

You can also add modifiers like "Realistic", "Pencil Sketch", "ArtStation" etc by browsing through the "Image Modifiers" section and selecting the desired modifiers.

Click "Advanced Settings" for additional settings like seed, image size, number of images to generate etc.

Enjoy! :)
- -
-
-
-
-
- -
 
- - -
- - - - - - diff --git a/main.py b/main.py deleted file mode 100644 index 5d65b488..00000000 --- a/main.py +++ /dev/null @@ -1,73 +0,0 @@ -from fastapi import FastAPI, HTTPException -from starlette.responses import FileResponse -from pydantic import BaseModel - -import requests - -LOCAL_SERVER_URL = 'http://stability-ai:5000' -PREDICT_URL = LOCAL_SERVER_URL + '/predictions' - -app = FastAPI() - -# defaults from https://huggingface.co/blog/stable_diffusion -class ImageRequest(BaseModel): - prompt: str - init_image: str = None # base64 - mask: str = None # base64 - num_outputs: str = "1" - num_inference_steps: str = "50" - guidance_scale: str = "7.5" - width: str = "512" - height: str = "512" - seed: str = "30000" - prompt_strength: str = "0.8" - -@app.get('/') -def read_root(): - return FileResponse('index.html') - -@app.get('/ping') -async def ping(): - try: - requests.get(LOCAL_SERVER_URL) - return {'OK'} - except: - return {'ERROR'} - -@app.post('/image') -async def image(req : ImageRequest): - data = { - "input": { - "prompt": req.prompt, - "num_outputs": req.num_outputs, - "num_inference_steps": req.num_inference_steps, - "width": req.width, - "height": req.height, - "seed": req.seed, - "guidance_scale": req.guidance_scale, - } - } - - if req.init_image is not None: - data['input']['init_image'] = req.init_image - data['input']['prompt_strength'] = req.prompt_strength - - if req.mask is not None: - data['input']['mask'] = req.mask - - if req.seed == "-1": - del data['input']['seed'] - - res = requests.post(PREDICT_URL, json=data) - if res.status_code != 200: - raise HTTPException(status_code=500, detail=res.text) - - return res.json() - -@app.get('/media/ding.mp3') -def read_root(): - return FileResponse('media/ding.mp3') - -@app.get('/modifiers.json') -def read_modifiers(): - return FileResponse('modifiers.json') diff --git a/media/config-v5.jpg b/media/config-v5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a23267f4f6c83fbda3517a7bbb7b2bb8afbaa8db GIT binary patch literal 56080 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 literal 0 HcmV?d00001 diff --git a/modifiers.json b/modifiers.json deleted file mode 100644 index 692de138..00000000 --- a/modifiers.json +++ /dev/null @@ -1,92 +0,0 @@ -[ - ["Drawing Style", [ - "Sketch", - "Doodle", - "Children's Drawing", - "Line Art", - "Dot Art", - "Crosshatch", - "Detailed and Intricate", - "Cel Shading" - ]], - ["Visual Style", [ - "2D", - "Cartoon", - "8-bit", - "16-bit", - "Graphic Novel", - "Visual Novel", - "Street Art", - "Fantasy", - "Realistic", - "Photo", - "Hard Edge Painting", - "Mural", - "Mosaic", - "Hydrodipped", - "Modern Art", - "Concept Art", - "Digital Art", - "CGI", - "Anaglyph", - "Comic Book", - "Lithography" - ]], - ["Pen", [ - "Graphite", - "Colored Pencil", - "Ink", - "Chalk", - "Pastel Art", - "Oil Paint" - ]], - ["Carving and Etching", [ - "Etching", - "Wood-Carving", - "Papercutting", - "Paper-Mache", - "Paper Model", - "Linocut", - "Pyrography" - ]], - ["Camera", [ - "HD", - "Color Grading", - "Film Grain", - "White Balance", - "Golden Hour", - "Glamor Shot", - "War Photography", - "Lens Flare", - "Polaroid", - "Vintage" - ]], - ["Color", [ - "Colorful", - "Electric Colors", - "Warm Color Palette", - "Infrared", - "Beautiful Lighting" - ]], - ["Emotions", [ - "Happy", - "Excited", - "Sad", - "Lonely", - "Angry", - "Good", - "Evil" - ]], - ["Style of an artist or community", [ - "by Andy Warhol", - "Artstation", - "by Asaf Hanuka", - "by Aubrey Beardsley", - "by H.R. Giger", - "by Hayao Mizaki", - "by Salvador Dali", - "by Tivadar Csontváry Kosztka", - "by Lisa Frank", - "by Pablo Piccaso" - ]] -] \ No newline at end of file diff --git a/old_port_main.py b/old_port_main.py deleted file mode 100644 index 432ea847..00000000 --- a/old_port_main.py +++ /dev/null @@ -1,36 +0,0 @@ -from fastapi import FastAPI -from fastapi.responses import HTMLResponse - -app = FastAPI() - -@app.get('/', response_class=HTMLResponse) -def read_root(): - return ''' - -

The UI has moved to http://localhost:9000. The current address that you used (ending with :8000) will be removed in the future, so please use http://localhost:9000 going ahead (and in any bookmarks you've saved).

- -

Why has the address changed?

-

The previously used port (8000) is often used by other servers, which results in port conflicts. So the project's port number has been changed, while the project is still young. Otherwise port-conflicts with 8000 will be a common source of new-user issues in the future.

-

Sorry about this, and apologies for the inconvenience :)

- ''' diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 6d9c7c3f..00000000 --- a/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -requests -fastapi==0.80.0 -uvicorn==0.18.2 diff --git a/server b/server deleted file mode 100755 index 849154b4..00000000 --- a/server +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -echo "Please use 'docker-compose up &' to start the server, and 'docker-compose down' to stop the server" \ No newline at end of file