StableBias / app.py
sashavor
adding first section draft
9c168fe
raw
history blame
2.98 kB
import gradio as gr
from PIL import Image
import os
def get_identity_images(path="images/identities"):
ims = Image.open([os.path.join(path,im) for im in os.listdir(path)])
return ims
with gr.Blocks() as demo:
gr.Markdown("""
## Stable Bias: Analyzing Societal Representations in Diffusion Models
""")
gr.HTML('''
<p style="margin-bottom: 10px; font-size: 94%">This is the demo page for the "Stable Bias" paper, which aims to explore and quantify social biases in text-to-image systems. <br> This work was done by <a href='https://huggingface.co/sasha' style='text-decoration: underline;' target='_blank'> Alexandra Sasha Luccioni (Hugging Face) </a>, <a href='https://huggingface.co/cakiki' style='text-decoration: underline;' target='_blank'> Christopher Akiki (ScaDS.AI, Leipzig University)</a>, <a href='https://huggingface.co/meg' style='text-decoration: underline;' target='_blank'> Margaret Mitchell (Hugging Face) </a> and <a href='https://huggingface.co/yjernite' style='text-decoration: underline;' target='_blank'> Yacine Jernite (Hugging Face) </a> .</p>
''')
gr.HTML('''
<p style="margin-bottom: 14px; font-size: 100%"> As AI-enabled Text-to-Image systems are becoming increasingly used, characterizing the social biases they exhibit is a necessary first step to lowering their risk of discriminatory outcomes. <br> We propose a new method for exploring and quantifying social biases in these kinds of systems by directly comparing collections of generated images designed to showcase a system’s variation across social attributes — gender and ethnicity — and target attributes for bias evaluation — professions and gender-coded adjectives. <br> We compare three models: Stable Diffusion v.1.4, Stable Diffusion v.2., and Dall-E 2, and present some of our key findings below:</p>
''')
with gr.Accordion("Identity group results (ethnicity and gender)", open=False):
gr.HTML('''
<p style="margin-bottom: 14px; font-size: 100%"> One of the approaches that we adopted in our work is hierarchical clustering of the images generated by the text-to-image systems in response to prompts that include identity terms with regards to ethnicity and gender. <br> We computed 3 different numbers of clusters (12, 24 and 48) and created an <a href='https://huggingface.co/spaces/society-ethics/DiffusionFaceClustering' style='text-decoration: underline;' target='_blank'> Identity Representation Demo </a> that allows for the exploration of the different clusters and their contents. <br> </p>
''')
with gr.Row():
impath = "images/identities"
identity_gallery = gr.Gallery([os.path.join(impath,im) for im in os.listdir(impath)],
label="Identity cluster images images", show_label=False, elem_id="gallery"
).style(grid=3, height="auto")
demo.launch(debug=True)