Skip to content

Supermaxman/hubble-diffusion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hubble Diffusion v2: Stable Diffusion v2.1 fine tuned on ESA Hubble Deep Space Images & Captions

Put in a detailed text prompt and generate high-quality Hubble Deep Space Images! Now with Stable Diffusion 2.1!

512x512 Diffusion Examples

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.

old.png

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.

pink.png

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.

baby.png

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.

collide.png

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

wolf359.png

More examples can be found in the GitHub repository.

2560x1536 MultiDiffusion Examples

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.

aqua-2560-1536-128.png

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.

trinary-2560-1536-257.png

Model Details

@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!

Examples

We recommend using 🤗's Diffusers library to run Hubble Diffusion.

Usage

512x512 Generation

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

example.png

2560x1536 MultiDiffusion Generation

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

trinary-2560-1536-258.png

Model description

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.

Links

Trained by Maxwell Weinzierl (@Supermaxman1).

Citation

@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}}
} 

About

Stable Diffusion for Hubble Telescope Images

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages