{
  "$type": "site.standard.document",
  "content": "---\ntitle: \"Running stable diffusion in a singularity container\"\ndescription: \"Rough notes and a Python script for running Stable Diffusion in a Singularity\n  container with NVIDIA GPUs.\"\n---\n\nsingularity pull docker://nvcr.io/nvidia/pytorch:22.08-py3\n\ngit clone https://github.com/lstein/stable-diffusion.git\n\nSINGULARITYENV_CUDA_VISIBLE_DEVICES=0 singularity shell --nv\n../sifs/pytorch_22.08-py3.sif\n\nsource /opt/conda/etc/profile.d/conda.sh && conda activate ldm\n\nffmpeg -framerate 30 -pattern*type glob -i '*.webp' -c:v libx264 -pix*fmt\nyuv420p genesis.mp4 ffmpeg -framerate 5 -pattern_type glob -i '*-Joel-\\*.webp'\n-c:v libx264 -pix_fmt yuv420p Joel.mp4\n\nideas for actually packaging this stuff...\n\n- https://stackoverflow.com/a/66598345\n\n```python\nimport re\nimport json\nimport torch\nfrom torch.multiprocessing import spawn\nfrom torch import autocast\nfrom diffusers import StableDiffusionImg2ImgPipeline\nfrom PIL import Image\n\nmodel_id = \"CompVis/stable-diffusion-v1-4\"\npipe = StableDiffusionImg2ImgPipeline.from_pretrained(model_id, use_auth_token=True).to(\"cuda\")\n\ndef load_json_file(filename):\n    with open(filename) as f:\n        return json.load(f)\n\ndef slugify(s):\n    ## my kingdom for a pipe operator\n    s = re.sub(r\" \", \"_\", s)\n    s = re.sub(r\"[',:]\", \"\", s)\n    return s\n\ndef verse_generator(book):\n    for chapter in load_json_file(f\"../Bible-kjv/{book}.json\")[\"chapters\"]:\n        for verse in chapter[\"verses\"]:\n            yield (book, chapter[\"chapter\"], verse[\"verse\"], verse[\"text\"])\n\ndef generate(prompt, init_image):\n    with autocast(\"cuda\"):\n        return pipe(prompt, init_image)[\"sample\"][0]\n\ndef generate_book_video(book):\n    image = Image.new(\"RGB\", (512, 512), color = \"white\")\n    for i, verse in enumerate(verse_generator(book)):\n        print(verse)\n        image = generate(verse[3], image)\n        image.save(f\"output/{i:04d}-{verse[0]}-{verse[1]}-{verse[2]}.webp\")\n\n\nif __name__ == \"__main__\":\n    books = load_json_file(\"../Bible-kjv/Books.json\")\n    generate_book_video(\"Joel\")\n    #spawn(generate, (\"purple ball\", img), 9)\n```\n",
  "createdAt": "2026-05-13T23:14:48.350Z",
  "description": "Rough notes and a Python script for running Stable Diffusion in a Singularity container with NVIDIA GPUs.",
  "path": "/blog/2022/09/02/running-stable-diffusion-in-a-singularity-container",
  "publishedAt": "2022-09-02T00:00:00.000Z",
  "site": "at://did:plc:tevykrhi4kibtsipzci76d76/site.standard.publication/self",
  "textContent": "Rough notes and a Python script for running Stable Diffusion in a Singularity container with NVIDIA GPUs.",
  "title": "Running stable diffusion in a singularity container"
}