Put in a detailed text prompt and generate high-quality Hubble Deep Space Images! Now with Stable Diffusion 2.1!
Generated with the StableDiffusionPipeline
with a normal Google Colab GPU with 15 GB of VRAM.
Images are arranged in a 3x3
grid from using a batch_size
of 9
.
Details and code is provided in the Usage section.
Each of the following 3x3
examples took just over a minute to generate:
Hubble captures the death of a star: Old stars, nearing the end of their life, collapse under the weight of their own gravity and the outer layers explode as a 'supernova'. In this image Hubble captures the moments after collapse, where the star has exploded and left an empty void in its place, where a new black hole has emerged.
Pink-tinted plumes in the Large Magellanic Cloud: The aggressively pink plumes seen in this image are extremely uncommon, with purple-tinted currents and nebulous strands reaching out into the surrounding space.
Hubble snaps images of the birthplace of stars within a cluster: The dust and gas expand within the cluster due to the powerful influence of baby stars. With these new images comes improved detail and a clearer view for astronomers to study how early stars are born and change over time.
Hubble image of galaxies colliding: The distorted spirals of two distant galaxies colliding are captured here in a new image from the NASA/ESA Hubble Space Telescope. The typically symmetric spirals common in spiral galaxies appear significantly warped, as the shape of both galaxies is torn apart by their gravitational pulls.
The stellar plasma of Wolf 359: The red dwarf star Wolf 359 from the constellation Leo is captured in extreme detail in a new image from the NASA/ESA Hubble Space Telescope. Wolf 359, classified as a M6 red dwarf, has certain peculiar qualities indicated by an unusual ejection of plasma. The Hubble telescope was able to capture one such event
More examples can be found in the GitHub repository.
Yes, you heard that right! With the StableDiffusionPanoramaPipeline
from MultiDiffusion and enable_xformers_memory_efficient_attention
from xformers you can actually generate 1440p images on a normal Google Colab GPU with 15 GB of VRAM!
Details and code is provided in the Usage section.
Each of the following examples took just over an hour to generate, but are absolutely worth it:
Aqua-tinted plumes in the Large Magellanic Cloud: The deep aqua plumes seen in this image are extremely uncommon, with purple-tinted currents and nebulous strands reaching out into the surrounding space.
A slow and deadly dance: Most solar systems only contain a single star, while rarely binary star systems can contain two stars closely orbiting each other. With this new image, Hubble captures an extremely rare trinary star system, where three stars orbit each other in a daring yet dangerous dance.
- Developed by: Maxwell Weinzierl
- Model type: Diffusion-based text-to-image generation model
- Language(s): English
- License: CreativeML Open RAIL++-M License
- Model Description: This is a model that can be used to generate and modify images based on text prompts. It is a Latent Diffusion Model that uses a fixed, pretrained text encoder (OpenCLIP-ViT/H), with initial weights from stabilityai/stable-diffusion-2-1-base. It was fine-tuned on Supermaxman/esa-hubble.
- Resources for more information: GitHub Repository.
- Cite as:
@misc{weinzierl2023sdhubble2,
author = {Weinzierl, Maxwell A.},
title = {Hubble Diffusion v2: Stable Diffusion v2.1 fine tuned on ESA Hubble Deep Space Images & Captions},
year={2023},
howpublished= {\url{https://huggingface.co/Supermaxman/hubble-diffusion-2}}
}
Also, be sure to check out the prior version Hubble Diffusion v1!
We recommend using 🤗's Diffusers library to run Hubble Diffusion.
pip install transformers diffusers accelerate
import torch
from diffusers import StableDiffusionPipeline
model_id = "Supermaxman/hubble-diffusion-2"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to("cuda")
# saves GPU memory for small inference cost
pipe.enable_attention_slicing()
prompt = "Hubble snaps images of the birthplace of stars within a cluster: The dust and gas expand within the cluster due to the powerful influence of baby stars. With these new images comes improved detail and a clearer view for astronomers to study how early stars are born and change over time."
image = pipe(prompt).images[0]
image
pip install transformers diffusers accelerate xformers
import torch
from diffusers import StableDiffusionPanoramaPipeline, DDIMScheduler
model_id = 'Supermaxman/hubble-diffusion-2'
scheduler = DDIMScheduler.from_pretrained(model_id, subfolder="scheduler")
pipe = StableDiffusionPanoramaPipeline.from_pretrained(
model_id, scheduler=scheduler, torch_dtype=torch.float16
)
# saves significant GPU memory and can be faster for inference
pipe.enable_xformers_memory_efficient_attention()
pipe = pipe.to("cuda")
prompt = "A slow and deadly dance: Most solar systems only contain a single star, while rarely binary star systems can contain two stars closely orbiting each other. With this new image, Hubble captures an extremely rare trinary star system, where three stars orbit each other in a daring yet dangerous dance."
image = pipe(prompt).images[0]
image
Trained on ESA Hubble Deep Space Images & Captions using Google Colab Pro with a single A100 GPU for around 33,000 steps (about 12 hours, at a cost of about $20). More details can be found at the GitHub repo.
- Captioned Hubble Deep Space Scans dataset
- Model weights in Diffusers format
- Training code
- Hubble Diffusion v1
Trained by Maxwell Weinzierl (@Supermaxman1).
@misc{weinzierl2023sdhubble2,
author = {Weinzierl, Maxwell A.},
title = {Hubble Diffusion v2: Stable Diffusion v2.1 fine tuned on ESA Hubble Deep Space Images & Captions},
year={2023},
howpublished= {\url{https://huggingface.co/Supermaxman/hubble-diffusion-2}}
}