Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(Studio 2.0) add Stable Diffusion features #2037

Merged
merged 28 commits into from
Mar 29, 2024
Merged

(Studio 2.0) add Stable Diffusion features #2037

merged 28 commits into from
Mar 29, 2024

Commits on Jan 17, 2024

  1. (WIP): Studio2 app infra and SD API

    UI/app structure and utility implementation.
    
    - Initializers for webui/API launch
    - Schedulers file for SD scheduling utilities
    - Additions to API-level utilities
    - Added embeddings module for LoRA, Lycoris, yada yada
    - Added image_processing module for resamplers, resize tools,
      transforms, and any image annotation (PNG metadata)
    - shared_cmd_opts module -- sorry, this is stable_args.py. It lives on.
      We still want to have some global control over the app exclusively
      from the command-line. At least we will be free from shark_args.
    - Moving around some utility pieces.
    - Try to make api+webui concurrency possible in index.py
    - SD UI -- this is just img2imgUI but hopefully a little better.
    - UI utilities for your nod logos and your gradio temps.
    
    Enable UI / bugfixes / tweaks
    monorimet committed Jan 17, 2024
    Configuration menu
    Copy the full SHA
    dbacc36 View commit details
    Browse the repository at this point in the history
  2. Studio2/SD: Use more correct LoRA alpha calculation (#2034)

    * Updates ProcessLoRA to use both embedded LoRA alpha, and lora_strength
    optional parameter (default 1.0) when applying LoRA weights.
    * Updates ProcessLoRA to cover more dim cases.
    * This bring ProcessLoRA into line with PR #2015 against Studio1
    one-lithe-rune authored and monorimet committed Jan 17, 2024
    Configuration menu
    Copy the full SHA
    cdf2eb5 View commit details
    Browse the repository at this point in the history
  3. Studio2: Remove duplications from api/utils.py (#2035)

    * Remove duplicate os import
    * Remove duplicate parse_seed_input function
    
    Migrating to JSON requests in SD UI
    
    More UI and app flow improvements, logging, shared device cache
    
    Model loading
    
    Complete SD pipeline.
    
    Tweaks to VAE, pipeline states
    
    Pipeline tweaks, add cmd_opts parsing to sd api
    one-lithe-rune authored and monorimet committed Jan 17, 2024
    Configuration menu
    Copy the full SHA
    7a0017d View commit details
    Browse the repository at this point in the history
  4. Add test for SD

    monorimet committed Jan 17, 2024
    Configuration menu
    Copy the full SHA
    a43c559 View commit details
    Browse the repository at this point in the history

Commits on Feb 2, 2024

  1. Small cleanup

    monorimet committed Feb 2, 2024
    Configuration menu
    Copy the full SHA
    019ba70 View commit details
    Browse the repository at this point in the history

Commits on Feb 7, 2024

  1. Shark2/SD/UI: Respect ckpt_dir, share and server_port args (#2070)

    * Takes whether to generate a gradio live link from the existing --share command
    line parameter, rather than hardcoding as True.
    * Takes server port from existing --server_port command line parameter, rather than
    hardcoding as 11911.
    * Default --ckpt_dir parameter to '../models'
    * Use --ckpt_dir rather than hardcoding ../models as the base directory for
    checkpoints, vae, and lora, etc
    * Add a 'checkpoints' directory below --ckpt_dir to match ComfyUI folder structure.
    Read custom_weights choices from there, and/or subfolders below there matching
    the selected base model.
    * Fix --ckpt_dir possibly not working correctly when an absolute rather than relative path
    is specified.
    * Relabel "Custom Weights" to "Custom Weights Checkpoint" in the UI
    one-lithe-rune authored Feb 7, 2024
    Configuration menu
    Copy the full SHA
    01575a8 View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2024

  1. Add StreamingLLM support to studio2 chat (#2060)

    * Streaming LLM
    
    * Update precision and add gpu support
    
    * (studio2) Separate weights generation for quantization support
    
    * Adapt prompt changes to studio flow
    
    * Remove outdated flag from llm compile flags.
    
    * (studio2) use turbine vmfbRunner
    
    * tweaks to prompts
    
    * Update CPU path and llm api test.
    
    * Change device in test to cpu.
    
    * Fixes to runner, device names, vmfb mgmt
    
    * Use small test without external weights.
    monorimet committed Feb 12, 2024
    Configuration menu
    Copy the full SHA
    25312cd View commit details
    Browse the repository at this point in the history
  2. HF-Reference LLM mode + Update test result to match latest Turbine. (#…

    …2080)
    
    * HF-Reference LLM mode.
    
    * Fixup test to match current output from Turbine.
    
    * lint
    
    * Fix test error message + Only initialize HF torch model when used.
    
    * Remove redundant format_out change.
    raikonenfnu authored and monorimet committed Feb 12, 2024
    Configuration menu
    Copy the full SHA
    230638a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    be4c49a View commit details
    Browse the repository at this point in the history
  4. Add StreamingLLM support to studio2 chat (#2060)

    * Streaming LLM
    
    * Update precision and add gpu support
    
    * (studio2) Separate weights generation for quantization support
    
    * Adapt prompt changes to studio flow
    
    * Remove outdated flag from llm compile flags.
    
    * (studio2) use turbine vmfbRunner
    
    * tweaks to prompts
    
    * Update CPU path and llm api test.
    
    * Change device in test to cpu.
    
    * Fixes to runner, device names, vmfb mgmt
    
    * Use small test without external weights.
    monorimet committed Feb 12, 2024
    Configuration menu
    Copy the full SHA
    1541b21 View commit details
    Browse the repository at this point in the history
  5. Formatting and init files.

    monorimet committed Feb 12, 2024
    Configuration menu
    Copy the full SHA
    5f675e1 View commit details
    Browse the repository at this point in the history
  6. Remove unused import.

    monorimet committed Feb 12, 2024
    Configuration menu
    Copy the full SHA
    a198934 View commit details
    Browse the repository at this point in the history
  7. Small fixes

    monorimet committed Feb 12, 2024
    Configuration menu
    Copy the full SHA
    39ebc45 View commit details
    Browse the repository at this point in the history

Commits on Feb 18, 2024

  1. Studio2/SD/UI: Improve various parts of the UI for Stable Diffusion (#…

    …2074)
    
    * Studio2/SD/UI: Improve various parts of the UI of Shark 2
    
    * Update Gradio pin to 4.15.0.
    * Port workarounds for Gradio >4.8.0 main container sizing from Shark 1.0.
    * Move nod Logo out of the SD tab and onto the top right of the main tab bar.
    * Set nod logo icon as the favicon (as current Shark 1.0).
    * Create a tabbed right hand panel within the SD UI sized to the viewport height.
    * Make Input Image tab 1 in the right hand panel.
    * Make output images, generation log, and  generation buttons, tab 2 in the
    right hand panel
    * Make config JSON display, with config load, save and clear, tab 3 in the
    right hand panel
    * Make gallery  area of the Output tab take up all vertical space the other controls
    on the tab do not.
    * Tidy up the controls on the Config tab somewhat.
    
    * Studio2/SD/UI: Reorganise inputs on Left Panel of SD tab
    
    * Rename previously added Right Panel Output tab to 'Generate'.
    * Move Batch Count, Batch Size, and Repeatable Seeds, off of Left Panel and onto 'Generate' Tab.
    * On 'Generate' tab, rename 'Generate Image(s)' button to 'Start', and 'Stop Batch' button to 'Stop'. They are now below the Batch inputs on a Generate tab so don't need the specificity.
    * Move Device, Low VRAM, and Precision inputs into their own 'Device Settings' Accordion control. (starts closed)
    * Rename 'Custom Weights Checkpoint' to 'Checkpoint Weights'
    * Move Checkpoint Weights, VAE Model, Standalone Lora Weights, and Embeddings Options controls, into their own 'Model Weights' Accordion control.  (starts closed)
    * Move Denoising Strength, and Resample Type controls into their own 'Input Image Processing' Accordion. (starts closed)
    * Move any remaining controls in the 'Advanced Options' Accorion directly onto the left panel, and remove then Accordion.
    * Enable the copy button for all text boxes on the SD tab.
    * Add emoji/unicode glphs to all top level controls and Accordions on the SD Left Panel.
    * Start with the 'Generate' as the initially selected tab in the SD Right Panel, working around Gradio issue #7805
    * Tweaks to SD Right Tab Panel vertical height.
    
    * Studio2/SD/UI: Sizing tweaks for Right Panel, and >1920 width
    
    * Set height of right panel using vmin rather than vh, with explicit affordances
    for fixed areas above and below.
    * Port >1920 width Gradio >4.8 CSS workaround from Shark 1.0.
    one-lithe-rune authored Feb 18, 2024
    Configuration menu
    Copy the full SHA
    75f4ed9 View commit details
    Browse the repository at this point in the history
  2. Studio2/SD: Fix sd pipeline up to "Windows not supported" (#2082)

    * Studio2/SD: Fix sd pipeline up to "Windows not supported"
    
    A number of fixes to the SD pipeline as run from the UI, up until the point that dynamo
    complains "Windows not yet supported for torch.compile".
    
    * Remove separate install of iree-runtime and iree-compile in setup_venv.ps1, and rely on the
    versions installed via the Turbine requirements.txt. Fixes #2063 for me.
    * Replace any "None" strings with python None when pulling the config in the UI.
    * Add 'hf_auth_token' param to api StableDiffusion class, defaulting to None, and then pass
    that in to the various Models where it is required and wasn't already being done before.
    * Fix clip custom_weight_params being passed to export_clip_model as "external_weight_file"
    rather than "external_weights"
    * Don't pass non-existing "custom_vae" parameter to the Turbine Vae Model, instead
    pass custom_vae as the "hf_model_id" if it is set. (this may be wrong in the custom vae
    cast, but stops the code *always* breaking).
    
    * Studio2/SD/UI: Improve UI config None handling
    
    * When populating the UI from a JSON Config set controls to "None" for null/None
    values.
    * When generating a JSON Config from the UI set props to null/None for controls
    set to "None".
    * Use null rather string 'None' in the default config
    
    ---------
    
    Co-authored-by: Ean Garvey <[email protected]>
    one-lithe-rune and monorimet authored Feb 18, 2024
    Configuration menu
    Copy the full SHA
    6dc39e6 View commit details
    Browse the repository at this point in the history

Commits on Feb 19, 2024

  1. Studio2/SD/UI: Further sd ui pipeline fixes (#2091)

    On Windows, this gets us all the way failing in iree compile of the with SD 2.1 base.
    
    - Fix merge errors with sd right pane config UI tab.
    - Remove non-requirement.txt install/build of torch/mlir/iree/SRT in setup_venv.ps1, fixing "torch.compile not supported on Windows" error.
    - Fix gradio deprecation warning for `root=` FileExplorer kwarg.
    - Comment out `precision` and `max_length` kwargs being passed to unet, as not yet supported on main Turbine branch. Avoids keyword argument error.
    one-lithe-rune authored Feb 19, 2024
    Configuration menu
    Copy the full SHA
    c507f7d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    92c11be View commit details
    Browse the repository at this point in the history

Commits on Feb 20, 2024

  1. Configuration menu
    Copy the full SHA
    60c013e View commit details
    Browse the repository at this point in the history

Commits on Mar 1, 2024

  1. Configuration menu
    Copy the full SHA
    f7d1af4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ca69fd5 View commit details
    Browse the repository at this point in the history

Commits on Mar 22, 2024

  1. Fix the .exe (#2101)

    gpetters-amd authored Mar 22, 2024
    Configuration menu
    Copy the full SHA
    44ef35f View commit details
    Browse the repository at this point in the history

Commits on Mar 25, 2024

  1. Fix _IREE_TARGET_MAP (#2103) (#2108)

    - Change target passed to iree for vulkan from 'vulkan'
    to 'vulkan-spriv', as 'vulkan' is not a valid value for
    --iree-hal-target-backends with the current iree compiler.
    
    Co-authored-by: Stefan Kapusniak <[email protected]>
    gpetters-amd and one-lithe-rune authored Mar 25, 2024
    Configuration menu
    Copy the full SHA
    81fba10 View commit details
    Browse the repository at this point in the history

Commits on Mar 27, 2024

  1. Configuration menu
    Copy the full SHA
    1827bc3 View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2024

  1. Cleanup sd model map.

    monorimet committed Mar 28, 2024
    Configuration menu
    Copy the full SHA
    0ade2ec View commit details
    Browse the repository at this point in the history
  2. Update dependencies.

    monorimet committed Mar 28, 2024
    Configuration menu
    Copy the full SHA
    f0ebfb0 View commit details
    Browse the repository at this point in the history
  3. Studio2/SD/UI: Update gradio to 4.19.2 (sd-studio2) (#2097)

    - Move pin for gradio from 4.15 -> 4.19.2 on the sd-studio2 branch
    one-lithe-rune authored Mar 28, 2024
    Configuration menu
    Copy the full SHA
    2996df7 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    73765cd View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2024

  1. Configuration menu
    Copy the full SHA
    9f59a16 View commit details
    Browse the repository at this point in the history