{"id":31624806,"url":"https://github.com/lowfuel/progrock-stable","last_synced_at":"2025-10-06T18:06:36.861Z","repository":{"id":57891195,"uuid":"526630134","full_name":"lowfuel/progrock-stable","owner":"lowfuel","description":"Stable Diffusion with some Proggy Enhancements","archived":false,"fork":true,"pushed_at":"2023-03-02T13:23:39.000Z","size":43667,"stargazers_count":168,"open_issues_count":9,"forks_count":19,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-07-28T11:33:20.400Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"CompVis/stable-diffusion","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lowfuel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-08-19T14:01:35.000Z","updated_at":"2024-05-28T03:51:46.000Z","dependencies_parsed_at":"2023-02-16T10:31:16.376Z","dependency_job_id":null,"html_url":"https://github.com/lowfuel/progrock-stable","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lowfuel/progrock-stable","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lowfuel%2Fprogrock-stable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lowfuel%2Fprogrock-stable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lowfuel%2Fprogrock-stable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lowfuel%2Fprogrock-stable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lowfuel","download_url":"https://codeload.github.com/lowfuel/progrock-stable/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lowfuel%2Fprogrock-stable/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278655145,"owners_count":26022968,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-06T18:03:36.675Z","updated_at":"2025-10-06T18:06:36.856Z","avatar_url":"https://github.com/lowfuel.png","language":"Jupyter Notebook","funding_links":[],"categories":["The Attic - previous links, retired for inactivity"],"sub_categories":["Extending Functionality"],"readme":"# Prog Rock Stable\nThis repository is no longer being updated (3/2/2023). \n\n# Quick updating note:\nIf you installed before 8/24/2022 and have just grabbed the latest code, you'll need to manually install a few extra items.\nMake sure you're in your prs conda environment, then do:\n```\npip install jsonmerge clean-fid resize-right torchdiffeq\n```\n\n# Installation instructions\n\n## Download Prog Rock Stable\nDownload this repository either by zip file (click the \"Code\" option above and select \"Download ZIP\"), or via git:\n```\ngit clone https://github.com/lowfuel/progrock-stable prs\ncd prs\n```\n\n## Setup a Conda environment\n*(MacOS M1/M2 users, see [here](#macos-setup) for Conda instructions, then move on to the next section)*\n\nCreate a [conda](https://conda.io/) environment named `prs`:\n```\nconda env create -f environment.yaml\nconda activate prs\n```\n\n## Download Stable Diffusion Weights\nDownload the latest [Stable Diffusion weights](https://huggingface.co/runwayml/stable-diffusion-v1-5) - download whichever checkpoint is appropriate for your needs, rename it to \"sd.ckpt\", and place it in the `models` subdirectory\n\nRun prs to make sure everything worked!\n```\npython prs.py\n```\n## Optional - A GUI is available!\n![image](https://user-images.githubusercontent.com/64171756/186978420-d18ad0f6-5a98-4e8c-ba2b-468b430231a1.png)\n\nSee instructions on the [Visual Diffusion](https://github.com/KnoBuddy/visualdiffusion/) repo page.\n\n# Basic Use\n\nTo use the default settings, but with your own text prompt:\n```\npython prs.py -p \"A painting of a troll under a bridge, by Hubert Robert\"\n```\n\n# Intermediate Use\n\nIt is recommended that you create your own settings file(s) inside the settings folder, and leave the orignial settings.json file as is.\n\nTo specify your own settings file, simply do:\n```\npython prs.py -s settings\\my_file.json\n```\nNote: You can supply multiple settings partial settings files, they will be layered on top of the previous ones in order, ALWAYS starting with the default settings.json. \n\n# Advanced Use\n## Run a series of prompts\nCreate a text file (let's call it myprompts.txt), then edit your settings file and set:\n```\n    \"from_file\": \"myprompts.txt\",\n```\nEach prompt will be run, in order, n_batches of times. So if n_batches = 5 you'll get 5 images for the first prompt, then five for the second, and so on.\n\n## Randomize things a bit\nThere are two ways to randomize your prompts.\n\n### Random selections from files\nPlacing a word in your prompt between _ characters will replace that word with a random selection from a txt file of the same name (inside the settings folder).\n\nFor example, ```\"A painting by _artist_\"``` would replace artist with a randomly selected entry in the file artist.txt\n\nA few starting files are provided.\n\n### Dynamic prompts\nA dynamic selection set from which the code will randomly choose one or more values.\nFor example:\n```\n    \"A \u003ccastle|inn|mansion|shop\u003e in New York\"\n```\nwould pick one of those values and leave out the rest, the prompt becoming (for example) \"A mansion in New York\".\nIf you want more than one of the choices, you can start it with this little trigger:\n```\n    \"A \u003c^^2|strange|wonderful|mysterious|weird|lovely\u003e car.\"\n```\nThis would select two items, perhaps becoming \"A wonderful weird car.\"\n\n# GoBIG! What it is and how to use it\nGoBIG is an upscaling technique, where a starting image is cut up into sections, and then each of those sections is re-rendered at a higher resolution. Once each section is done, they're all gathered and composited together, resulting in a new image that is 2x the size of the original.\n\n## Use\nThe simplest method is to add --gobig to your command line. This will render your initial image, then proceed immediately to the gobig process discussed above.\n\nHowever, more often than not you'll probably want to choose an existing render (or any image really) to start with. To do that, you add --gobig_init to your command *as well*.\n```\npython prs.py --gobig --gobig_init \"init_images/myfile.png\"\n```\n## Fine-tuning GoBIG\nThere are a few settings you can tweak to improve your results:\n- First and foremost is init_strength. This setting determines how much of the original image should be retained, and thus how many steps to skip in the render process. I recommend a number between 0.55 and 0.75, and you will need to experiment to find the perfect setting for your image.\n\n- The second is to use [RealESRGAN](https://github.com/xinntao/Real-ESRGAN/releases) to handle the initial resizing the starting image. To do this, install RealESRGAN and make sure it is in your path, then set \"resize_method\" to \"realesrgan\" in your settings. This will begin your process with a much cleaner image.\n\n- Lastly, consider tweaking the prompt from your original image to one that focuses more on texture and detail. Keep in mind that each section of the image will use the prompt, so if the image you are upscaling has a singular subject in one area (say, a bird), as it re-renders each section if \"bird\" is in the prompt it may try to add a bird to those smaller sections, resulting in an upscaled image that is not what you wanted.\n\n- Not every image does well with GoBIG. It is best used on images that have lots of content and fine detail everywhere. So, don't force it! Sometimes a simple upscaler like RealESRGAN will do a better job, especially on those images where your prompt might not apply to every section.\n\n- Finally, remember that the output itself doesn't need to be \"final\". Take the results from GoBIG and load it into an image editor, along with the original and the ESRGAN upscaled version, layer them, and keep the best areas from each for a true final image.\n\n# MacOS Setup\n\nInstall Homebrew:\n```\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n```\nRestart your terminal, then:\n```\nbrew install miniforge\nconda init zsh\n```\nRestart your terminal again, and setup your Conda environment:\n```\nconda env create -f mac-environment.yaml\nconda activate prs\n```\nYou can now continue with [installation above](#download-stable-diffusion-weights).\n\n## MacOS troubleshooting\nYou may get an error from pytorch about functional.py. To fix this, unfortunately for now you need to hand-edit the file it errors on. The path to this file should be visible in the error.\n\nIn the file, in layer_norm(), change \"input\" to \"input.contiguous()\" here:\n```\n    return torch.layer_norm(input.contiguous(), ...\n```\n\n# About Stable Diffusion\n*Stable Diffusion was made possible thanks to a collaboration with [Stability AI](https://stability.ai/) and [Runway](https://runwayml.com/) and builds upon our previous work:*\n\n[**High-Resolution Image Synthesis with Latent Diffusion Models**](https://ommer-lab.com/research/latent-diffusion-models/)\u003cbr/\u003e\n[Robin Rombach](https://github.com/rromb)\\*,\n[Andreas Blattmann](https://github.com/ablattmann)\\*,\n[Dominik Lorenz](https://github.com/qp-qp)\\,\n[Patrick Esser](https://github.com/pesser),\n[Björn Ommer](https://hci.iwr.uni-heidelberg.de/Staff/bommer)\u003cbr/\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flowfuel%2Fprogrock-stable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flowfuel%2Fprogrock-stable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flowfuel%2Fprogrock-stable/lists"}