File size: 17,619 Bytes
4a7650f
17b483c
7638e59
 
 
4a7650f
df6cb9a
17b483c
 
 
 
 
 
 
df6cb9a
 
cfaaa08
 
 
df6cb9a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156ba8e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
df6cb9a
156ba8e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
df6cb9a
 
 
4a7650f
 
17b483c
4a7650f
17b483c
 
 
 
 
 
 
 
 
 
df6cb9a
17b483c
df6cb9a
156ba8e
17b483c
 
7638e59
17b483c
 
 
 
 
 
7638e59
17b483c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
import streamlit as st
import time
from diffusers import DiffusionPipeline
import matplotlib.pyplot as plt
import torch


if 'button_clicked' not in st.session_state:
    st.session_state.button_clicked = False

# Define a function to handle the button click
def on_button_click():
    st.session_state.button_clicked = True


modalities = [
    "COMPUTED TOMOGRAPHY (CT) scan", "DIGITAL BREAST TOMOSYNTHESIS image", "DIGITAL MAMMOGRAPHY imge",
    "MAGNETIC RESONANCE IMAGING (MRI) scan", "MICRO-CT scan", "PET-CT scan", 
    "POSITRON EMISSION TOMOGRAPHY (PET) scan", "RADIOGRAPHY image", "ULTRASONOGRAPHY image"
]

modalities = [i.lower() for i in modalities]

organs = [
    "ANUS", "AORTA", "BLADDER", "BONE", "BRAIN", "BREAST", "CERVIX", "CHEST", "COLON",
    "CORONARY HEART", "EAR", "ENDOMETRIUM", "ESOPHAGUS", "HEAD AND NECK", "KIDNEY", "LIVER", 
    "LUNG", "LYMPH NODE", "OVARY", "PANCREAS", "PELVIS", "PERIPHERAL ARTERIAL", "PHANTOM", 
    "PROSTATE", "RECTUM", "SOFT TISSUES", "UTERUS"
]

organs = [i.lower() for i in organs]

artists = [
    "Leonardo da Vinci", "Vincent van Gogh", "Pablo Picasso", "Claude Monet", "Rembrandt",
    "Michelangelo", "Raphael", "Henri Matisse", "Paul Cezanne", "Gustav Klimt",
    "Jackson Pollock", "Edgar Degas", "Francisco Goya", "Edouard Manet", "Andy Warhol",
    "Salvador Dalí", "Wassily Kandinsky", "Paul Gauguin", "Joan Miró", "Georges Seurat",
    "Édouard Vuillard", "Marc Chagall", "Kazimir Malevich", "Piet Mondrian", "Jean-Michel Basquiat",
    "Frida Kahlo", "Artemisia Gentileschi", "Caravaggio", "El Greco", "Eugène Delacroix",
    "J.M.W. Turner"
]


organ = st.selectbox('Organ', organs, index=None)
modality = st.selectbox('Modality', modalities, index=None)
style = st.selectbox('Style', artists, index=None)

# artist_prompts = {
#     'Leonardo da Vinci': f"A detailed {organ} {modality} in the intricate and detailed style of Leonardo da Vinci's anatomical drawings. The {modality} should show the {organ} structure with medical precision, combining scientific accuracy with Renaissance artistry.",
#     'Vincent van Gogh': f"A detailed {organ} {modality} in the style of Van Gogh, with the swirling, vibrant colors and bold brushstrokes characteristic of his paintings. The {modality} should show the {organ} structure with medical precision, set against a background reminiscent of 'Starry Night.'",
#     'Pablo Picasso': f"A detailed {organ} {modality} depicted in the abstract and fragmented style of Pablo Picasso's Cubism. The {modality} should show the {organ} structure with medical precision, using geometric shapes and bold lines.",
#     'Claude Monet': f"A detailed {organ} {modality} in the impressionistic and soft-focus style of Claude Monet. The {modality} should show the {organ} structure with medical precision, using delicate brushstrokes and a subtle color palette.",
#     'Rembrandt': f"A detailed {organ} {modality} rendered in the dramatic and richly textured style of Rembrandt. The {modality} should show the {organ} structure with medical precision, using deep shadows and warm highlights.",
#     'Michelangelo': f"A detailed {organ} {modality} sculpted in the grand and dynamic style of Michelangelo. The {modality} should show the {organ} structure with medical precision, emphasizing intricate details and a sense of movement.",
#     'Raphael': f"A detailed {organ} {modality} in the harmonious and balanced style of Raphael. The {modality} should show the {organ} structure with medical precision, using clear lines and soft colors.",
#     'Henri Matisse': f"A detailed {organ} {modality} in the vibrant and expressive style of Henri Matisse. The {modality} should show the {organ} structure with medical precision, using bold colors and fluid lines.",
#     'Paul Cezanne': f"A detailed {organ} {modality} in the structured and methodical style of Paul Cezanne. The {modality} should show the {organ} structure with medical precision, using carefully arranged shapes and a harmonious color palette.",
#     'Gustav Klimt': f"A detailed {organ} {modality} in the ornate and decorative style of Gustav Klimt. The {modality} should show the {organ} structure with medical precision, using intricate patterns, gold leaf, and symbolic elements.",
#     'Jackson Pollock': f"A detailed {organ} {modality} in the chaotic and energetic style of Jackson Pollock's action painting. The {modality} should show the {organ} structure with medical precision, using splatters and drips of paint.",
#     'Edgar Degas': f"A detailed {organ} {modality} in the graceful and observational style of Edgar Degas. The {modality} should show the {organ} structure with medical precision, using delicate lines and soft pastels.",
#     'Francisco Goya': f"A detailed {organ} {modality} in the dark and dramatic style of Francisco Goya. The {modality} should show the {organ} structure with medical precision, using stark contrasts and a haunting atmosphere.",
#     'Edouard Manet': f"A detailed {organ} {modality} in the bold and modern style of Edouard Manet. The {modality} should show the {organ} structure with medical precision, using strong contrasts and a focus on contemporary realism.",
#     'Andy Warhol': f"A detailed {organ} {modality} in the pop art style of Andy Warhol. The {modality} should show the {organ} structure with medical precision, using bright colors, repetitive patterns, and a playful, commercial aesthetic.",
#     'Salvador Dalí': f"A detailed {organ} {modality} in the surreal and dreamlike style of Salvador Dalí. The {modality} should show the {organ} structure with medical precision, incorporating fantastical elements and imaginative twists.",
#     'Wassily Kandinsky': f"A detailed {organ} {modality} in the abstract and colorful style of Wassily Kandinsky. The {modality} should show the {organ} structure with medical precision, using vibrant hues and geometric shapes.",
#     'Paul Gauguin': f"A detailed {organ} {modality} in the exotic and symbolic style of Paul Gauguin. The {modality} should show the {organ} structure with medical precision, using rich colors and simplified forms.",
#     'Joan Miró': f"A detailed {organ} {modality} in the playful and abstract style of Joan Miró. The {modality} should show the {organ} structure with medical precision, using whimsical shapes and bright colors.",
#     'Georges Seurat': f"A detailed {organ} {modality} in the pointillist style of Georges Seurat. The {modality} should show the {organ} structure with medical precision, using tiny dots of color meticulously arranged.",
#     'Édouard Vuillard': f"A detailed {organ} {modality} in the intimate and decorative style of Édouard Vuillard. The {modality} should show the {organ} structure with medical precision, using soft colors and intricate patterns.",
#     'Marc Chagall': f"A detailed {organ} {modality} in the dreamlike and fantastical style of Marc Chagall. The {modality} should show the {organ} structure with medical precision, using floating figures and vivid colors.",
#     'Kazimir Malevich': f"A detailed {organ} {modality} in the minimalist and geometric style of Kazimir Malevich. The {modality} should show the {organ} structure with medical precision, using simple shapes and pure colors.",
#     'Piet Mondrian': f"A detailed {organ} {modality} in the neoplasticist style of Piet Mondrian. The {modality} should show the {organ} structure with medical precision, using a grid of black lines and primary colors.",
#     'Jean-Michel Basquiat': f"A detailed {organ} {modality} in the raw and expressive style of Jean-Michel Basquiat. The {modality} should show the {organ} structure with medical precision, using bold lines and graffiti-like elements.",
#     'Frida Kahlo': f"A detailed {organ} {modality} in the deeply personal and symbolic style of Frida Kahlo. The {modality} should show the {organ} structure with medical precision, using vivid colors and emotional intensity.",
#     'Artemisia Gentileschi': f"A detailed {organ} {modality} in the dramatic and powerful style of Artemisia Gentileschi. The {modality} should show the {organ} structure with medical precision, using strong contrasts and dynamic composition.",
#     'Caravaggio': f"A detailed {organ} {modality} in the intense and chiaroscuro style of Caravaggio. The {modality} should show the {organ} structure with medical precision, using stark lighting and dramatic shadows.",
#     'El Greco': f"A detailed {organ} {modality} in the elongated and expressive style of El Greco. The {modality} should show the {organ} structure with medical precision, using distorted forms and vibrant colors.",
#     'Eugène Delacroix': f"A detailed {organ} {modality} in the romantic and dynamic style of Eugène Delacroix. The {modality} should show the {organ} structure with medical precision, using bold colors and energetic brushstrokes.",
#     'J.M.W. Turner': f"A detailed {organ} {modality} in the atmospheric and luminous style of J.M.W. Turner. The {modality} should show the {organ} structure with medical precision, using soft, swirling colors and a sense of light and movement."
# }

artist_prompts = {
  "Leonardo da Vinci": f"""High-resolution {modality} of the {organ} with clear anatomy, rendered in Leonardo da Vinci's style with meticulous detail, soft shading, and realistic proportions on a parchment-like background (optional: focus on {organ} only, black background).""",
  "Vincent van Gogh": f"""High-resolution {modality} of the {organ} with clear anatomy, rendered in Van Gogh's style with thick swirling brushstrokes and vibrant colors (blues, yellows, greens) on a textured canvas (optional: focus on {organ} only, black background, slight glow).""",
  "Pablo Picasso": f"""High-resolution {modality} of the {organ} with a cubist style inspired by Pablo Picasso, featuring fragmented and geometric shapes with a limited color palette (optional: focus on {organ} only, black background).""",
  "Claude Monet": f"""High-resolution {modality} of the {organ} with a subtle, impressionistic style inspired by Claude Monet, featuring soft brushstrokes and blurred details with a focus on light and color (optional: focus on {organ} only, muted background).""",
  "Rembrandt": f"""High-resolution {modality} of the {organ} with a chiaroscuro style inspired by Rembrandt, featuring dramatic lighting, deep shadows, and rich details (optional: focus on {organ} only, dark background).""",
  "Michelangelo": f"""High-resolution {modality} of the {organ} with a detailed anatomical style inspired by Michelangelo, emphasizing musculature and form with a focus on realism (optional: focus on {organ} only, light background).""",
  "Raphael": f"""High-resolution {modality} of the {organ} with a harmonious and balanced style inspired by Raphael, featuring idealized proportions and soft lighting (optional: focus on {organ} only, muted background).""",
  "Henri Matisse": f"""High-resolution {modality} of the {organ} with a bold and colorful style inspired by Henri Matisse, featuring flat shapes and simplified forms (optional: focus on {organ} only, contrasting background).""",
  "Paul Cezanne": f"""High-resolution {modality} of the {organ} with a geometric and structured style inspired by Paul Cezanne, featuring geometric shapes and overlapping planes (optional: focus on {organ} only, muted background).""",
  "Gustav Klimt": f"""High-resolution {modality} of the {organ} with an ornamental and decorative style inspired by Gustav Klimt, featuring intricate patterns and gold accents (optional: focus on {organ} only, dark background).""",
  "Jackson Pollock": f"""High-resolution {modality} of the {organ} with an abstract expressionist style inspired by Jackson Pollock, featuring energetic gestures and dripped paint (optional: focus on {organ} only, contrasting background).""",
  "Edgar Degas": f"""High-resolution {modality} of the {organ} with a realistic and dynamic style inspired by Edgar Degas, focusing on movement and anatomy (optional: focus on {organ} in action, muted background).""",
  "Francisco Goya": f"""High-resolution {modality} of the {organ} with a dark and dramatic style inspired by Francisco Goya, featuring strong contrasts and expressive brushstrokes (optional: focus on {organ} only, dark background).""",
  "Edouard Manet": f"""High-resolution {modality} of the {organ} with a realistic and observational style inspired by Edouard Manet, focusing on light and shadow (optional: focus on {organ} only, muted background).""",
  "Andy Warhol": f"""High-resolution {modality} of the {organ} with a pop art style inspired by Andy Warhol, featuring bold colors and repeated patterns (optional: focus on {organ} only, contrasting background).""",
  "Salvador Dalí": f"""High-resolution {modality} of the {organ} with a surrealist style inspired by Salvador Dalí, featuring dreamlike imagery and distorted perspectives (optional: focus on {organ} only, dreamlike background).""",
  "Wassily Kandinsky": f"""High-resolution {modality} of the {organ} with an abstract style inspired by Wassily Kandinsky, featuring vibrant colors, geometric shapes, and dynamic compositions (optional: emphasize lines and circles, focus on {organ} only, black background).""",
  "Paul Gauguin": f"""High-resolution {modality} of the {organ} with a post-impressionist style inspired by Paul Gauguin, featuring bold colors, flat shapes, and exotic imagery (optional: focus on {organ} only, patterned background).""",
"Joan Miró": f"""High-resolution {modality} of the {organ} with a whimsical and playful style inspired by Joan Miró, featuring biomorphic shapes, vibrant colors, and childlike wonder (optional: focus on {organ} only, bright background).""",
"Georges Seurat": f"""High-resolution {modality} of the {organ} with a pointillist style inspired by Georges Seurat, featuring small dots of color that create a cohesive image when viewed from afar (optional: focus on {organ} only, muted background).""",
"Édouard Vuillard": f"""High-resolution {modality} of the {organ} with an intimate and decorative style inspired by Édouard Vuillard, featuring muted colors, flat patterns, and domestic scenes (optional: focus on {organ} only, patterned background).""",
"Marc Chagall": f"""High-resolution {modality} of the {organ} with a dreamlike and poetic style inspired by Marc Chagall, featuring floating figures, vibrant colors, and symbolic imagery (optional: focus on {organ} only, dreamlike background).""",
"Kazimir Malevich": f"""High-resolution {modality} of the {organ} with a suprematist style inspired by Kazimir Malevich, featuring geometric shapes (squares, circles, lines) in a limited color palette (optional: focus on {organ} only, black background).""",
"Piet Mondrian": f"""High-resolution {modality} of the {organ} with a neoplasticism style inspired by Piet Mondrian, featuring black lines, rectangular shapes, and primary colors (optional: focus on {organ} only, white background).""",
"Jean-Michel Basquiat": f"""High-resolution {modality} of the {organ} with a neo-expressionist style inspired by Jean-Michel Basquiat, featuring bold colors, raw energy, and symbolic imagery with text (optional: focus on {organ} only, contrasting background).""",
"Frida Kahlo": f"""High-resolution {modality} of the {organ} with a surrealist and self-portrait style inspired by Frida Kahlo, featuring bold colors, symbolic elements, and an exploration of identity (optional: focus on {organ} only, contrasting background).""",
"Artemisia Gentileschi": f"""High-resolution {modality} of the {organ} with a dramatic and chiaroscuro style inspired by Artemisia Gentileschi, featuring strong lighting, emotional expression, and realistic anatomy (optional: focus on {organ} only, dark background).""",
"Caravaggio": f"""High-resolution {modality} of the {organ} with a tenebrist style inspired by Caravaggio, featuring dramatic lighting, deep shadows, and intense realism (optional: focus on {organ} only, dark background).""",
"El Greco": f"""High-resolution {modality} of the {organ} with a mannerist style inspired by El Greco, featuring elongated figures, dramatic lighting, and emotional intensity (optional: focus on {organ} only, muted background).""",
"Eugène Delacroix": f"""High-resolution {modality} of the {organ} with a romantic style inspired by Eugène Delacroix, featuring movement, passionate expression, and dramatic lighting (optional: focus on {organ} in action, contrasting background).""",
"J.M.W. Turner": f"""High-resolution {modality} of the {organ} with a romantic and atmospheric style inspired by J.M.W. Turner, featuring light and shadow effects, dramatic landscapes, and a sense of movement (optional: focus on {organ} only, swirling background)."""
}



prompt_lst = [organ, modality, style]

if None not in prompt_lst:
    st.session_state.button_disabled = False
else:
    st.session_state.button_disabled = True


if st.session_state.button_clicked:
    st.session_state.button_disabled = True
    st.session_state.button_clicked = False
    st.button('Submit', disabled=st.session_state.button_disabled)
    with st.spinner('Processing...'):
        print(prompt_lst)

        prompt = artist_prompts[style]
        print(prompt)
        pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16, variant="fp16")
        pipe.to("cuda")

        image = pipe(prompt=prompt).images[0]
    
    st.image(image)
    
    st.session_state.button_disabled = False
    

else:
    st.button('Submit', on_click=on_button_click, disabled=st.session_state.button_disabled)