models runwayml stable diffusion v1 5 - Azure/azureml-assets GitHub Wiki
Stable Diffusion is a latent text-to-image diffusion model capable of generating photo-realistic images given any text input. The Stable-Diffusion-v1-5 checkpoint was initialized with the weights of the Stable-Diffusion-v1-2 checkpoint and subsequently fine-tuned on 595k steps at resolution 512x512 on "laion-aesthetics v2 5+" and 10% dropping of the text-conditioning to improve classifier-free guidance sampling.
The model is intended for research purposes only. Possible research areas and tasks include
- Safe deployment of models which have the potential to generate harmful content.
- Probing and understanding the limitations and biases of generative models.
- Generation of artworks and use in design and other artistic processes.
- Applications in educational or creative tools.
- Research on generative models.
Stable Diffusion DreamBooth Finetuning is now avalable for this model on AzureML. DreamBooth is a method for personalizing text-to-image models. It fine-tunes these models using 5-10 images of a specific subject, allowing them to generate personalized images based on textual prompts.
The model developers used the following dataset for training the model:
- LAION-2B (en) and subsets thereof (see next section)
Stable Diffusion v1-5 is a latent diffusion model which combines an autoencoder with a diffusion model that is trained in the latent space of the autoencoder. During training,
- Images are encoded through an encoder, which turns images into latent representations. The autoencoder uses a relative downsampling factor of 8 and maps images of shape H x W x 3 to latents of shape H/f x W/f x 4
- Text prompts are encoded through a ViT-L/14 text-encoder.
- The non-pooled output of the text encoder is fed into the UNet backbone of the latent diffusion model via cross-attention.
- The loss is a reconstruction objective between the noise that was added to the latent and the prediction made by the UNet.
Following Stable Diffusion checkpoint is provided, which was trained as follows.
stable-diffusion-v1-5
Resumed from stable-diffusion-v1-2
- 595,000 steps at resolution 512x512
on "laion-aesthetics v2 5+" and 10 % dropping of the text-conditioning to improve classifier-free guidance sampling.
- Hardware: 32 x 8 x A100 GPUs
- Optimizer: AdamW
- Gradient Accumulations: 2
- Batch: 32 x 8 x 2 x 4 = 2048
- Learning rate: warmup to 0.0001 for 10,000 steps and then kept constant
Evaluations with different classifier-free guidance scales (1.5, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0) and 50 PNDM/PLMS sampling steps show the relative improvements of the checkpoints:
Evaluated using 50 PLMS steps and 10000 random prompts from the COCO2017 validation set, evaluated at 512x512 resolution. Not optimized for FID scores.
- The model does not achieve perfect photorealism
- The model cannot render legible text
- The model does not perform well on more difficult tasks which involve compositionality, such as rendering an image corresponding to “A red cube on top of a blue sphere”
- Faces and people in general may not be generated properly.
- The model was trained mainly with English captions and will not work as well in other languages.
- The autoencoding part of the model is lossy
- The model was trained on a large-scale dataset LAION-5B which contains adult material and is not fit for product use without additional safety mechanisms and considerations.
- No additional measures were used to deduplicate the dataset. As a result, we observe some degree of memorization for images that are duplicated in the training data. The training data can be searched at https://rom1504.github.io/clip-retrieval/ to possibly assist in the detection of memorized images.
While the capabilities of image generation models are impressive, they can also reinforce or exacerbate social biases. Stable Diffusion v1 was trained on subsets of LAION-2B(en), which consists of images that are primarily limited to English descriptions. Texts and images from communities and cultures that use other languages are likely to be insufficiently accounted for. This affects the overall output of the model, as white and western cultures are often set as the default. Further, the ability of the model to generate content with non-English prompts is significantly worse than with English-language prompts.
The intended use of this model is with the Safety Checker in Diffusers.
This checker works by checking model outputs against known hard-coded NSFW concepts.
The concepts are intentionally hidden to reduce the likelihood of reverse-engineering this filter.
Specifically, the checker compares the class probability of harmful concepts in the embedding space of the CLIPTextModel
after generation of the images.
The concepts are passed into the model with the generated image and compared to a hand-engineered weight for each NSFW concept.
The model should not be used to intentionally create or disseminate images that create hostile or alienating environments for people. This includes generating images that people would foreseeably find disturbing, distressing, or offensive; or content that propagates historical or current stereotypes.
The model was not trained to be factual or true representations of people or events, and therefore using the model to generate such content is out-of-scope for the abilities of this model.
Using the model to generate content that is cruel to individuals is a misuse of this model. This includes, but is not limited to:
- Generating demeaning, dehumanizing, or otherwise harmful representations of people or their environments, cultures, religions, etc.
- Intentionally promoting or propagating discriminatory content or harmful stereotypes.
- Impersonating individuals without their consent.
- Sexual content without consent of the people who might see it.
- Mis- and disinformation
- Representations of egregious violence and gore
- Sharing of copyrighted or licensed material in violation of its terms of use.
- Sharing content that is an alteration of copyrighted or licensed material in violation of its terms of use.
The CreativeML OpenRAIL M license is an Open RAIL M license, adapted from the work that BigScience and the RAIL Initiative are jointly carrying in the area of responsible AI licensing. See also the article about the BLOOM Open RAIL license on which our license is based.
Task | Use case | Dataset | Python sample (Notebook) | CLI with YAML |
---|---|---|---|---|
Text-to-image | Text-to-image | dog-example | diffusers-dreambooth-dog-text-to-image.ipynb | diffusers-dreambooth-dog-text-to-image.sh |
Note: The inferencing script of this model is optimized for high-throughput, low latency using Deepspedd-mii library. Please use
version 4
of this model for inferencing using default (FP32) diffusion pipeline implementation.
Inference type | Python sample (Notebook) | CLI with YAML |
---|---|---|
Real time | text-to-image-online-endpoint.ipynb | text-to-image-online-endpoint.sh |
Batch | text-to-image-batch-endpoint.ipynb | text-to-image-batch-endpoint.sh |
Inference with Azure AI Content Safety (AACS) samples
Inference type | Python sample (Notebook) |
---|---|
Real time | safe-text-to-image-online-deployment.ipynb |
Batch | safe-text-to-image-batch-endpoint.ipynb |
- num_inference_steps: The number of de-noising steps. More de-noising steps usually lead to a higher quality image at the expense of slower inference, defaults to 50.
- guidance_scale: A higher guidance scale value encourages the model to generate images closely linked to the text
prompt
at the expense of lower image quality. Guidance scale is enabled whenguidance_scale > 1
, defaults to 7.5.
These
parameters
are optional inputs. If you need support for new parameters, please file a support ticket.
{
"input_data": {
"columns": ["prompt"],
"data": ["a photograph of an astronaut riding a horse", "lion holding hunted deer in grass fields"],
"index": [0, 1],
"parameters": {
"num_inference_steps": 50,
"guidance_scale": 7.5
}
}
}
[
{
"prompt": "a photograph of an astronaut riding a horse",
"generated_image": "image1",
"nsfw_content_detected": false
},
{
"prompt": "lion holding hunted deer in grass fields",
"generated_image": "image2",
"nsfw_content_detected": true
}
]
Note:
- "image1" and "image2" strings are base64 format.
- If "nsfw_content_detected" is True then generated image will be totally black.
Version: 12
SharedComputeCapacityEnabled
hiddenlayerscanned
license : creativeml-openrail-m
task : text-to-image
huggingface_model_id : runwayml/stable-diffusion-v1-5
author : Runway
training_dataset : LAION-2B (en)
inference_supported_envs : ['ds-mii']
inference_compute_allow_list : ['Standard_NC6s_v3', 'Standard_NC12s_v3', 'Standard_NC24s_v3', 'Standard_ND40rs_v2', 'Standard_ND96amsr_A100_v4', 'Standard_ND96asr_v4']
finetune_compute_allow_list : ['Standard_NC6s_v3', 'Standard_NC12s_v3', 'Standard_NC24s_v3', 'Standard_ND40rs_v2', 'Standard_ND96amsr_A100_v4', 'Standard_ND96asr_v4']
View in Studio: https://ml.azure.com/registries/azureml/models/runwayml-stable-diffusion-v1-5/version/12
License: creativeml-openrail-m
SharedComputeCapacityEnabled: True
SHA: 1d0c4ebf6ff58a5caecab40fa1406526bca4b5b9
finetuning-tasks: text-to-image
finetune-min-sku-spec: 6|1|112|736
finetune-recommended-sku: Standard_NC6s_v3, Standard_NC12s_v3, Standard_NC24s_v3, Standard_ND40rs_v2, Standard_ND96amsr_A100_v4, Standard_ND96asr_v4
inference-min-sku-spec: 6|1|112|736
inference-recommended-sku: Standard_NC6s_v3, Standard_NC12s_v3, Standard_NC24s_v3, Standard_ND40rs_v2, Standard_ND96amsr_A100_v4, Standard_ND96asr_v4