text:
Abiding
Accelerating
Accepting
Accomplishing
Achieving
Acquiring
Acceding
Activating
Adapting
Adding
Addressing
Administering
Admiring
admitting
adopting
advising
affording
agreeing
alerting
alighting
allowing
altering
amusing
analyzing
announcing
annoying
answering
anticipating
apologizing
appearing
applauding
applauding
appointing
appraising
appreciating
approving
arbitrating
arguing
arising
arranging
arresting
arriving
ascertaining
asking
assembling
assessing
assisting
assuring
attaching
attacking
attaining
attempting
attending
attracting
auditing
avoiding
awakening
backing
baking
balancing
banning
banging
baring
bating
bathing
battling
being
beaming
bearing
beating
becoming
begging
beginning
behaving
beholding
belonging
bending
besetting
betting
biding
binding
biting
bleaching
bleeding
blessing
blinding
blinking
blotting
blowing
blushing
boasting
boiling
bolting
bombing
booking
boring
borrowing
bouncing
bowing
boxing
braking
branching
breaking
breathing
breeding
briefing
bringing
broadcasting
bruising
brushing
bubbling
budgeting
building
bumping
burning
bursting
burying
busting
buying
buzzing
calculating
calling
camping
caring
carrying
carving
casting
cataloging
catching
causing
challenging
changing
charging
charting
chasseing
cheating
checking
cheering
chewing
choking
choosing
chopping
claiming
clapping
clarifying
classifying
cleaning
clearing
clinging
clipping
closeting
clothing
coaching
coiling
collecting
coloring
combing
coming
commanding
communicating
comparing
competing
compiling
complaining
completing
composing
computing
conceiving
concentrating
conceptualizing
concerning
concluding
conducting
confessing
confronting
confusing
connecting
conserving
considering
consisting
consolidating
constructing
consulting
containing
continuing
contracting
controlling
converting
coordinating
copying
correcting
correlating
costing
coughing
counseling
counting
covering
cracking
crashing
crawling
creating
creeping
critiquing
crossing
crushing
crying
curing
curling
curving
cutting
cycling
damming
damaging
dancing
daring
dealing
decaying
deceiving
deciding
decorating
defining
delaying
delegating
delighting
delivering
demonstrating
depending
describing
deserting
deserving
designing
destroying
detailing
detecting
determining
developing
devising
diagnosing
digging
directing
disagreeing
disappearing
disapproving
disarming
discovering
disliking
dispensing
displaying
disproving
dissecting
distributing
diving
diverting
dividing
doing
doubling
doubting
drafting
dragging
draining
dramatizing
drawing
dreaming
dressing
drinking
dripping
driveling
dropping
drowning
drumming
drying
dusting
dwelling
earning
eating
editing
educating
eliminating
embarrassing
employing
emptying
enacting
encouraging
ending
enduring
enforcing
engineering
enhancing
enjoying
enlisting
ensuring
entering
entertaining
escaping
establishing
estimating
evaluating
examining
exceeding
exciting
excusing
executing
exercising
exhibiting
existing
expanding
expecting
expediting
experimenting
explaining
exploding
expressing
extending
extracting
facing
facilitating
fading
failing
fancying
fastening
faxing
fearing
feeding
feeling
fencing
fetching
fighting
fileting
filling
filming
finalizing
financing
finding
firing
fitting
fixing
flapping
flashing
fleeing
flinging
floating
flooding
flowing
flowering
flying
folding
following
fooling
forbidding
forcing
forecasting
foregoing
foreseeing
foretelling
forgetting
forgiving
forming
formulating
forsaking
framing
freezing
frightening
frying
gathering
gazing
generating
getting
giving
glowing
gluing
going
governing
grabbing
graduating
grating
greasing
greeting
grinning
grinding
griping
groaning
growing
guaranteeing
guarding
guessing
guiding
hammering
handing
handling
handwriting
hanging
happening
harassing
harming
hating
haunting
heading
healing
heaping
hearing
heating
helping
hiding
hitting
holding
hooking
hoping
hoping
hovering
hugging
humming
hunting
hurrying
hurting
hypothesizing
identifying
ignoring
illustrating
imagining
implementing
impressing
improving
improvising
including
increasing
inducing
influencing
informing
initiating
injecting
injuring
inlaying
innovating
inputting
inspecting
inspiring
installing
instituting
instructing
insuring
integrating
intending
intensifying
interesting
interfering
interlaying
interpreting
interrupting
interviewing
introducing
inventing
inventorying
investigating
inviting
irritating
itching
jailing
jamming
jogging
joining
joking
judging
juggling
jumping
justifying
keeping
keeping
kicking
killing
kissing
kneeling
knitting
knocking
knotting
knowing
labeling
landing
lasting
laughing
launching
laying
leading
leaning
leaping
learning
leavening
lecturing
lading
lending
letting
leveling
licensing
licking
lying
littering
lighting
lightening
likening
listing
listening
livening
loading
locating
locking
logging
longing
looking
losing
loving
maintaining
making
manning
managing
manipulating
manufacturing
mapping
marching
marking
marketing
marrying
matching
mating
mattering
meaning
measuring
meddling
mediating
meeting
melting
melting
memorizing
mending
mentoring
milking
mining
misleading
missing
misspelling
mistaking
misunderstanding
mixing
moaning
modeling
modifying
monitoring
mooring
motivating
mourning
moving
mowing
muddling
mugging
multiplying
murdering
nailing
naming
navigating
needing
negotiating
nesting
nodding
nominating
normalizing
noting
noticing
numbering
obeying
objecting
observing
obtaining
occurring
offending
offering
officiating
opening
operating
ordering
organizing
orienteering
originating
overcoming
overdoing
overdrawing
overflowing
overhearing
overtaking
overthrowing
owing
owning
packing
paddling
painting
parking
parting
participating
passing
pasting
patting
pausing
paying
pecking
pedaling
peeling
peeping
perceiving
perfecting
performing
permitting
persuading
phoning
photographing
picking
piloting
pinching
pining
pinpointing
pioneering
placing
planning
planting
playing
pleading
pleasing
plugging
pointing
poking
polishing
popping
possessing
posting
pouring
practicing
praise ding
praying
preaching
preceding
predicting
preferring
preparing
prescribing
presenting
preserving
presetting
presiding
pressing
pretending
preventing
pricking
printing
processing
procuring
producing
professing
programing
progressing
projecting
promising
promoting
proofreading
proposing
protecting
proving
providing
publicizing
pulling
pumping
punching
puncturing
punishing
purchasing
pushing
putting
qualifying
questioning
quitting
racing
radiating
raining
raising
ranking
rating
reaching
reading
realigning
realizing
reasoning
receiving
recognizing
recommending
reconciling
recording
recruiting
reducing
referring
reflecting
refusing
regretting
regulating
rehabilitating
reigning
reinforcing
rejecting
rejoicing
relating
relaxing
releasing
relying
remaining
remembering
reminding
removing
rendering
reorganizing
repairing
repeating
replacing
replying
reporting
representing
reproducing
requesting
rescuing
researching
resolving
responding
restore ding
restructuring
retiring
retrieving
returning
reviewing
revising
rhyming
riding
riding
ringing
rinsing
rising
risking
robing
rocking
rolling
rotting
rubbing
ruining
ruling
running
rushing
sacking
sailing
satisfying
saving
sawing
saying
scaring
scattering
scheduling
scolding
scorching
scraping
scratching
screaming
screwing
scribbling
scrubbing
sealing
searching
securing
seeing
seeking
selecting
selling
sending
sensing
separating
serving
servicing
setting
settling
sewing
shading
shaking
shaping
sharing
shaving
shearing
shedding
sheltering
shining
shivering
shocking
shoeing
shooting
shopping
showing
shrinking
shrugging
shutting
sighing
signing
signaling
simplifying
sinning
singing
sinking
sipping
siting
sketching
skiing
skipping
slapping
slaying
sleeping
sliding
slinging
slinking
slipping
slitting
slowing
smashing
smelling
smiling
smiting
smoking
snatching
sneaking
sneezing
sniffing
snoring
snowing
soaking
solving
soothing
soothsaying
sorting
sounding
sowing
sparing
sparking
sparkling
speaking
specifying
speeding
spelling
spending
spilling
spinning
spiting
splitting
spoiling
spotting
spraying
spreading
springing
sprouting
squashing
squeaking
squealing
squeezing
staining
stamping
standing
staring
starting
staying
stealing
steering
stepping
sticking
stimulating
stinging
stinking
stirring
stitching
stopping
storing
strapping
streamlining
strengthening
stretching
striding
striking
stringing
striping
striving
stroking
structuring
studying
stuffing
subletting
subtracting
succeeding
sucking
suffering
suggesting
suiting
summarizing
supervising
supplying
supporting
supposing
surprising
surrounding
suspecting
suspending
swearing
sweating
sweeping
swelling
swimming
swinging
switching
symbolizing
synthesizing
systemizing
tabulating
taking
talking
taming
taping
targeting
tasting
teaching
tearing
teasing
telephoning
telling
tempting
terrifying
testing
thanking
thawing
thinking
thriving
throwing
thrusting
ticking
tickling
teeing
timing
tipping
tiring
touching
touring
towing
tracing
trading
training
transcribing
transferring
transforming
translating
transporting
trapping
traveling
treading
treating
trembling
tricking
tripping
trotting
troubling
troubleshooting
trusting
trying
tugging
tumbling
turning
tutoring
twisting
typing
undergoing
understanding
undertaking
undressing
unfastening
unifying
uniting
unlocking
unpacking
unifying
updating
upgrading
upholding
upsetting
using
utilizing
vanishing
verbalizing
verifying
vexing
visiting
wailing
waiting
wakening
walking
wandering
wanting
warming
warning
washing
wasting
watching
watering
wavering
wearing
weaving
wedding
weeping
weighing
welcoming
wending
wetting
whining
whipping
whirling
whispering
whistling
wining
winding
winking
wiping
wishing
withdrawing
withholding
withstanding
wobbling
wondering
working
worrying
wrapping
wrecking
wrestling
wriggling
wringing
writing
x-raying
yawning
yelling
zipping
zooming


text:
Aardvark
African Elephant
African Tree Pangolin
Albatross
Alligator
Alpaca
Anaconda
Angel Fish
Ant
Anteater
Antelope
Archer Fish
Armadillo
Asian Elephant
Atlantic Puffin
Aye-Aye
Arab horse
Baboon
Badger
Bald Eagle
Bandicoot
Bangle Tiger
Barnacle
Barracuda
Basilisk
Bass
Basset Hound
Bat
Bearded Dragon
Beaver
Bee
Beetle
Beluga Whale
Bird
Big-horned sheep
Bird of paradise
Bison
Bilby
Billy goat
Black Bear
Black Fly
Black Rhino
Black Footed Rhino
Black Widow Spider
Blackbird
Blowfish
Blue Jay
Blue Whale
Boa
Boar
Bob-Cat
Bonobo
Bottle-Nose dolphin
Bornean Orang-utan
Boxer dog
Brown Bear
Buck
Budgie
Buffalo
Bull
Bull frog
Bull Mastiff
Butterfly
Buzzard
Border Collie
Caribou
Cheetah
Common Dolphin
Common seal
Caiman lizard
Camel
Canary
Carp
Cassowary
Cat
Caterpillar
Cattle
Catfish
Chameleon
Centipede
Chicken
Chimpanzee
Chihuahua
Chinchilla
Chipmunk
Clam
Chupacabra
Clown Fish
Cobra
Cocker Spaniel
Cockatiel
Cockatoo
Cockroach
Cod
Coho
Corn Snake
Cougar
Cow
Coyote
Crab
Crane
Crawfish
Cray fish
Cricket
Crocodile
Crow
Cuckoo bird
Cuttle fish
Deer
Dog
Du-gong
Dalmation
Dacshund
Damsel fly
Dart Frog
Devi Fish (Giant Sting ray)
Diamond back rattler
Dik-dik
Dingo
Dinosaur
Doberman Pinscher
Dodo bird
Dolphin
Dolly Varden
Donkey
Door mouse
Dormouse
Draft horse
Dove
Dragonfly
Drake
Duck
Duckbill Platypus
Dugong
Dung beetle
Eurasian Lynx
Eagle
Earthworm
Earwig
Echidna
Eclectus
Eel
Egret
Elephant
Elephant Seal
Elk
Emu
Erne
Falcon
Finch
Fish
Firefly
Flamingo
Flatworm
Fly
Ferret
Fox
Fresh Water Crocodile
Frill-neck lizard
Frog
Galapagos Land Iguana
Galapagos Tortoise
Gazelle
Giant Anteater
Giant panda
Giraffe
Gnat
Goat
Goose
Gopher
Gorilla
Grasshopper
Green fly
Grey Whale
Great White Shark
Green poison dart frog
Green Sea Turtle
Groundhog
Hammerhead shark
Hare
Hawk
Hedgehog
Heron
Herring
Hippopotamus
Horse
Hyena
Hyrax
Irrawaddy Dolphin
Iguana
Iguanodon
Impala
Inchworm
Insect
Jellyfish
Jackal
Jackrabbit
Jaguar
June bug
Kangaroo
Killer Whale
King Cobra
Kingfisher
Koala
Komodo Dragon
Kookaburra
Krill
Lama
Lamb
Lancelet
Leatherback sea turtle
Leech
Lemming
Lemur
Leopard
Lice
Lion
Lionfish
Llama
Lobster
Lynx
Manatee
Man-Of-War
Mantis
Marmot
Marsupials
Meerkat
Mink
Mole
Mollusks
Monarch Butterfly
Mongoose
Monkey
Moose
Mountain Lion
Mouse
Mule
Muskox
Muskrat
Naked Mole Rat
Narwhal
Nautilus
Newt
Ocelot
Octopus
Opossum
Orangutan
Orca
Osprey
Ostrich
Otter
Owl
Ox
Pademelon
Panda
Panther
Peacock
Pelican
Penguin
Pig
Pigeon
Platypus
Polar Bear
Porcupine
Praying Mantis
Prawn
Puma
Quail
Quetzal
Quoll
Quokka
Rabbit
Raccoon
Rat
Ray
Reindeer
Rhino
Ringworm
Rhinoceros
Robin
Rooster
Roundworm
Salmon
Salt water alligator
Sandpiper
Seahorse
Seal
Sea anemone
Sea Lion
Sea urchin
Scallop
Scorpion
Shark
Sheep
Shrimp
Siberian Husky
Siberian Tiger
Skunks
Slender Loris
Sloth
Sloth bear
Slugs
Snails
Snake
Snow Hare
Snow Fox
Snow Leopard
Somali Wild Ass
Sponge
Spectacled Bear
Squid
Squirrel
Starfish
Stork
Swan
Swordfish
Tapir
Tasmanian Devil
Tiger
Tadpole
Tamarin
Tapeworm
Tarantula
Tarpan
Tazmanian devil
Tazmanian tiger
Terrapin
Tick
Tiger shark
Tortoise
Trout
Turkey
Turtle
Uakari
Umbrella bird
Urchin
Urutu
Vicuna
Viper
Vulture
Vampire bat
Velociraptor
Vole
Viper Fish
Velvet worm
Vervet
Walrus
Warbler
Warthog
Wasp
Water Buffalo
Water Dragons
Wallaby
Whale
Whale Shark
White Rhino
Whippet
White tailed deer
Whooper
Whooping Crane
Weasel
Weevil
Wolf
Wolf Spider
Wolverine
Woodchuck
Woodpecker
Widow Spider
Wren
Wombat
Wildcat
Wildebeest
X-ray fish
Yak
Yellow Bellied Marmot
Yellow belly sapsucker
Yellow finned tuna
Yeti
Yorkshire terrier
Zander
Zebra
Zebra Finch
Zebra Dove
Zorilla
Zebu

repo_name: ausbitbank/stable-diffusion-discord-bot

repo_language: JavaScript

mime_type: text/x-c++


text:
🙂
😀
😃
😄
😁
😅
😆
🤣
😂
🙃
😉
😊
😇
😎
🤓
🧐
🥳
🥰
😍
🤩
😘
😗
☺
😚
😙
🥲
😋
😛
😜
🤪
😝
🤑
🤗
🤭
🤫
🤔
😐
🤐
🤨
😑
😶
😏
😒
🙄
😬
😮💨
🤥
😪
😴
😌
😔
🤤
😷
🤒
🤕
🤢
🤮
🤧
🥵
🥶
🥴
😵
🤯
😕
😟
🙁
☹
😮
😯
😲
😳
🥺
😦
😧
😨
😰
😥
😢
😭
😱
😖
😣
😞
😓
😩
😫
🥱
😤
😡
😠
🤬
😈
👿
💀
☠
💩
🤡
👹
👺
👻
👽
👾
🤖
😺
😸
😹
😻
😼
😽
🙀
😿
😾
🙈
🙉
🙊
💋
💌
💘
💝
💖
💗
💓
💞
💕
💟
❣
💔
❤🔥
❤🩹
❤
🧡
💛
💚
💙
💜
🤎
🖤
🤍
💯
💢
💥
💫
💦
💨
🕳
💣
💬
👁🗨
🗨
🗯
💭
💤
👋
🤚
🖐
✋
🖖
👌
🤌
🤏
✌
🤞
🤟
🤘
🤙
👈
👉
👆
👇
🖕
☝
👍
👎
✊
👊
🤛
🤜
👏
🙌
👐
🤲
🤝
🙏
✍
💅
🤳
💪
🦾
🦵
🦿
🦶
👂
🦻
👃
🧠
👣
🫀
🫁
🦷
🦴
👀
👁
👅
👄
Pe
🧑
👶
🧒
👦
👧
👱
👨
🧔
🧔
🧔
👨🦰
👨🦱
👨🦳
👨🦲
👩
👩🦰
👩🦱
👩🦳
👩🦲
👱
👱
🧓
👴
👵
🙍
🙍
🙍
🙎
🙎
🙎
🙅
🙅
🙅
🙆
🙆
🙆
💁
💁
💁
🙋
🙋
🙋
🧏
🧏
🧏
🙇
🙇
🙇
🤦
🤦
🤦
🤷
🤷
🤷
🧑⚕
👨⚕
👩⚕
🧑🎓
👨🎓
🧑🏫
👨🏫
👩🏫
🧑⚖
👨⚖
👩⚖
🧑🌾
👨🌾
👩🌾
🧑🍳
👨🍳
👩🍳
🧑🔧
👨🔧
👩🔧
🧑🏭
👨🏭
👩🏭
🧑💼
👨💼
👩💼
🧑🔬
👨🔬
👩🔬
🧑💻
👨💻
👩💻
🧑🎤
👨🎤
👩🎤
🧑🎨
👨🎨
👩🎨
🧑✈
👨✈
👩✈
🧑🚀
👨🚀
👩🚀
🧑🚒
👨🚒
👩🚒
👮
👮
👮
🕵
🕵
🕵
💂
💂
💂
🥷
👷
👷
👷
🤴
👸
👳
👳
👳
👲
🧕
🤵
🤵
🤵
👰
👰
👰
🤰
🤱
🧑🍼
👩🍼
👨🍼
👼
🎅
🤶
🧑🎄
🦸
🦸
🦸
🦹
🦹
🦹
🧙
🧙
🧙
🧚
🧚
🧚
🧛
🧛
🧛
🧜
🧜
🧜
🧝
🧝
🧝
🧞
🧞
🧞
🧟
🧟
🧟
💆
💆
💆
💇
💇
💇
🚶
🚶
🚶
🧍
🧍
🧍
🧎
🧎
🧎
🧑🦯
👨🦯
👩🦯
🧑🦼
👨🦼
👩🦼
🧑🦽
👨🦽
👩🦽
🏃
🏃
🏃
💃
🕺
🕴
👯
👯
👯
🧖
🧖
🧖
🧗
🧗
🧗
🤺
🏇
⛷
🏂
🏌
🏌
🏌
🏄
🏄
🏄
🚣
🚣
🚣
🏊
🏊
🏊
⛹
⛹
⛹
🏋
🏋
🏋
🚴
🚴
🚴
🚵
🚵
🚵
🤸
🤸
🤸
🤼
🤼
🤼
🤽
🤽
🤽
🤾
🤾
🤾
🤹
🤹
🤹
🧘
🧘
🧘
🛀
🛌
👪
👨👩👦
👨👩👧
👨👩
👨👩
👨👩
👨👨👦
👨👨👧
👨👨
👨👨
👨👨
👩👩👦
👩👩👧
👩👩
👩👩
👩👩
👨👦
👨👦👦
👨👧
👨👧👦
👨👧👧
👩👦
👩👦👦
👩👧
👩👧👦
👩👧👧
🧑🤝🧑
👭
👫
👬
💏
👩❤💋
👨❤💋
👩❤💋
💑
🗣
👤
👥
🫂
🐵
🐒
🦍
🦧
🐶
🐕
🦮
🐕🦺
🐩
🐺
🦊
🦝
🐱
🐈
🐈⬛
🦁
🐯
🐅
🐆
🐴
🐎
🦄
🦓
🦌
🦬
🐮
🐄
🐂
🐃
🐷
🐖
🐗
🐽
🐏
🐑
🐐
🐪
🐫
🦙
🦒
🐘
🦣
🦏
🦛
🐭
🐁
🐀
🐹
🐰
🐇
🐿
🦫
🦔
🦇
🐻
🐻❄
🐨
🐼
🦥
🦦
🦨
🦘
🦡
🐾
🦃
🐔
🐓
🐣
🐤
🐥
🐦
🐧
🕊
🦅
🦆
🦢
🦉
🦤
🪶
🦩
🦜
🐸
🐊
🐢
🦎
🐍
🐲
🐉
🦕
🦖
🐳
🐋
🐬
🦭
🐟
🐠
🐡
🦈
🐙
🐚
🐌
🦋
🐛
🐜
🐝
🪲
🐞
🦗
🪳
🕷
🕸
🦂
🦟
🪰
🪱
🦠
💐
🌸
💮
🏵
🌹
🥀
🌺
🌻
🌼
🌷
🌱
🪴
🌲
🌳
🌴
🌵
🌾
🌿
☘
🍀
🍁
🍂
🍃
🪴
🪴
🍇
🍈
🍉
🍊
🍋
🍌
🍍
🥭
🍎
🍏
🍐
🍑
🍒
🍓
🫐
🥝
🍅
🫒
🥥
🥑
🍆
🥔
🥕
🌽
🌶
🫑
🥒
🥬
🥦
🧄
🧅
🍄
🥜
🫑
🌰
🍞
🥐
🥖
🫓
🥨
🥯
🥞
🧇
🧀
🍖
🍗
🥩
🥓
🍔
🍟
🍕
🌭
🥪
🌮
🌯
🫔
🥙
🧆
🥚
🍳
🥘
🍲
🫕
🥣
🥗
🍿
🧈
🧂
🥫
🍱
🍘
🍙
🍚
🍛
🍜
🍝
🍠
🍢
🍣
🍤
🍥
🥮
🍡
🥟
🥠
🥡
🦀
🦞
🦐
🦑
🦪
🍨
🍧
🍦
🍩
🍪
🎂
🍰
🧁
🥧
🍫
🍬
🍭
🍮
🍯
🍼
🥛
☕
🫖
🍵
🍶
🍾
🍷
🍸
🍹
🍺
🍻
🥂
🥃
🥤
🧋
🧃
🧉
🧊
🥢
🍽
🍴
🥄
🔪
🧋
🏺
🌍
🌎
🌏
🌐
🗺
🧭
⛰
🏔
🌋
🗻
🏕
🏖
🏜
🏝
🏞
🏟
🏛
🏗
🧱
🪨
🪵
🛖
🏘
🏚
🏠
🏡
🏢
🏣
🏤
🏥
🏦
🏨
🏩
🏪
🏫
🏬
🏭
🏯
🏰
💒
🗼
🗽
⛪
🕌
🛕
🕍
⛩
🕋
⛲
⛺
🌁
🌃
🏙
🌅
🌄
🌆
🌇
🌉
♨
🎠
🎡
🎢
💈
🎪
🚂
🚃
🚄
🚅
🚆
🚇
🚈
🚉
🚊
🚝
🚞
🚋
🚌
🚍
🚎
🚐
🚑
🚒
🚓
🚔
🚕
🚖
🚗
🚘
🚙
🛻
🚚
🚛
🚜
🏎
🏍
🛵
🦽
🦼
🌑
🌒
🌓
🌔
🌕
🌖
🌗
🌘
🌙
🌚
🌛
🌜
🌡
☀
🌝
🌞
🪐
⭐
🌟
🌠
🌌
☁
⛅
⛈
🌤
🌥
🌦
🌧
🌨
🌩
🌪
🌫
🌬
🌀
🌈
🌂
☂
☔
⛱
⚡
❄
☃
⛄
☄
🔥
💧
🌊
🎃
🎄
🎆
🎇
🧨
✨
🎈
🎉
🎊
🎋
🎍
🎎
🎏
🎑
🧧
🎀
🎁
🎗
🎟
🎫
🎖
🏆
🏅
⚽
⚾
🥎
🏀
🏐
🏈
🏉
🎾
🥏
🎳
🏏
🏑
🏒
🥍
🏓
🏸
🥊
🥋
🥅
⛳
⛸
🎣
🤿
🎽
🎿
🛷
🥌
🎯
🪀
🪁
🎱
🔮
🪄
🧿
🪄
🎮
🕹
🎰
🎲
🧩
🧸
🪅
🪆
🪆
♠
♥
♣
♟
🃏
🀄
🎴
🎭
🖼
🎨
🧵
🪡
🧶
🪢
Cl
👓
🕶
🥽
🥼
🦺
👔
👕
👖
🧣
🧤
🧥
🧦
👗
👘
🥻
🩱
🩲
🩳
👙
👚
👛
👜
👝
🛍
🎒
🩴
👞
👟
🥾
🥿
👠
👡
🩰
👢
👑
👒
🎩
🎓
🧢
🪖
⛑
📿
💄
💍
💎
🔇
🔈
🔉
🔊
📢
📣
📯
🔔
🔕
🎼
🎵
🎶
🎙
🎚
🎛
🎤
🎧
📻
🎷
🪗
🎸
🎹
🎺
🎻
🪕
🥁
🪘
📱
📲
☎
📞
📟
📠
🔋
🔌
💻
🖥
🖨
⌨
🖱
🖲
💽
💾
💿
📀
🧮
Li
🎥
🎞
📽
🎬
📺
📷
📸
📹
📼
🔍
🔎
🕯
💡
🔦
🏮
🪔
📔
📕
📖
📗
📘
📙
📚
📓
📒
📃
📜
📄
📰
🗞
📑
🔖
🏷
💰
🪙
💴
💵
💶
💷
💸
💳
🧾
💹
✉
📧
📩
📤
📥
📦
📫
📪
📬
📭
📮
🗳
✏
✒
🖋
🖊
🖌
🖍
📝
💼
📁
📂
🗂
📅
📆
📇
📈
📉
📊
📋
📌
📍
📎
🖇
📏
📐
✂
🗃
🗄
🗑
🔒
🔓
🔏
🔐
🔑
🗝
🔨
🪓
⛏
⚒
🛠
🗡
⚔
🔫
🪃
🏹
🛡
🪚
🔧
🪛
🔩
⚙
🗜
⚖
🦯
🔗
⛓
🪝
🧰
🧲
🪜
Sc
⚗
🧪
🧫
🧬
🔬
🔭
📡
💉
🩸
💊
🩹
🩺
🚪
🛗
🪞
🪟
🛏
🛋
🪑
🚽
🪠
🚿
🛁
🪤
🪒
🧴
🧷
🧹
🧺
🧻
🪣
🧼
🪥
🧽
🧯
🛒
🚬
⚰
🪦
⚱
🗿
🪧


text:
oil painting
matte painting
unreal engine render
rendered in maya
rendered in zbrush
rendered in cinema4d
pencil sketch
watercolor painting
3D VR painting
1950s pulp sci-fi cover
8k resolution
digital painting
highly detailed
vector image
schematic
artistic photograph
surveillance footage
graffiti
sculpture
Veduta painting
Panorama
Fresco painting
Chiaroscuro painting
Gouache Painting
Tempera Painting
Trompe L’oeil
Impasto painting
Sfumato painting
Byzantine mosaic
digital painting
pastel painting
Grisaille painting
Perspective painting
Veduta painting
Sotto In Su
Ukiyo-e
Baroque painting
Luminism painting
visionary hypermaximalism
depiction
low-poly
anime
mixed media
flat shading
#film
pop art
fine art
RTX on
shot on 70mm
filmed in IMAX
Marvel Comics
Flemish Baroque
vray tracing
Playstation 5 screenshot
2d game art
surrealist
hyperrealism
tilt shift
depth of field
volumetric lighting
storybook illustration
parallax
dutch golden age


text:
A. B. Jackson
A. J. Casson
A. R. Middleton Todd
A.D.M. Cooper
Aaron Bohrod
Aaron Douglas
Aaron Nagel
Abbott Handerson Thayer
Abdur Rahman Chughtai
Abidin Dino
Abraham Begeyn
Abraham Bloemaert
Abraham Bosschaert
Abraham de Vries
Abraham Hondius
Abraham Mignon
Abraham Storck
Abraham van Beijeren
Abraham van Calraet
Abraham van den Tempel
Abraham Willaerts
Abram Arkhipov
Achille Leonardi
Ada Gladys Killins
Ada Hill Walker
Adam Bruce Thomson
Adam Chmielowski
Adam Dario Keel
Adam Elsheimer
Adam Manyoki
Adam MarczyÅ„ski
Adam Pijnacker
Adam Saks
Adam Willaerts
Adolf Bierbrauer
Adolf Born
Adolf Dietrich
Adolf Hitler
Adolph Gottlieb
Adolph Menzel
Adolphe Willette
Adriaen Brouwer
Adriaen Coorte
Adriaen Hanneman
Adriaen Isenbrant
Adriaen van de Velde
Adriaen van de Venne
Adriaen van der Werff
Adriaen van Ostade
Adrian Zingg
Aelbert Cuyp
Aert de Gelder
Aert van der Neer
Aertgen van Leyden
Afewerk Tekle
Agnes Lawrence Pelton
Agnes Martin
Agnolo Bronzino
Agnolo Gaddi
Agostino Carracci
Aguri Uchida
Ahmed Yacoubi
Ai Xuan
Aileen Eagleton
Ai-Mitsu
Akseli Gallen-Kallela
Alain Tasso
Alan Sutherland
Alasdair Grant Taylor
Alasdair Gray
Albert Anker
Albert Bertelsen
Albert Bierstadt
Albert Dubois-Pillet
Albert Edelfelt
Albert Gleizes
Albert Guillaume
Albert Henry Krehbiel
Albert Irvin
Albert J. Welti
Albert Joseph Moore
Albert Keller
Albert Kotin
Albert Marquet
Albert Namatjira
Albert Nemethy
Albert Swinden
Albert Welti
Alberto Burri
Alberto Giacometti
Alberto Morrocco
Alberto Sughi
Albin Egger-Lienz
Albrecht Altdorfer
Aleksander Gierymski
Aleksander Gine
Aleksander Kobzdej
Aleksander Kotsis
Aleksandr Gerasimov
Aleksandr Ivanovich Laktionov
Alessandro Allori
Alessandro Galli Bibiena
Alesso Baldovinetti
Alex Katz
Alex Ross
Alexander Brook
Alexander Calder
Alexander Carse
Alexander Deyneka
Alexander Ivanov
Alexander Johnston
Alexander Kanoldt
Alexander Kucharsky
Alexander Litovchenko
Alexander Mann
Alexander Milne Calder
Alexander Nasmyth
Alexander Robertson
Alexander Rodchenko
Alexander Roslin
Alexander Runciman
Alexander Scott
Alexander Stirling Calder
Alexander V. Kuprin
Alexandre Benois
Alexandre Cabanel
Alexei Kondratyevich Savrasov
Alexej von Jawlensky
Alexey Merinov
Alexey Venetsianov
Alexis Grimou
Alexis Simon Belle
Alfons von Czibulka
Alfons Walde
Alfred East
Alfred Edward Chalon
Alfred Freddy Krupa
Alfred Janes
Alfred Jensen
Alfred Krupa
Alfred Leslie
Alfred Leyman
Alfred Manessier
Alfred Richard Gurrey Sr.
Alfred Sisley
Alfred Thompson Bricher
Alfred Wallis
Alfredo Volpi
Algernon Talmage
Alice Bailly
Alice Mason
Alice Neel
Alice Prin
Alison Debenham
Alison Geissler
Alison Kinnaird
Alison Watt
Allaert van Everdingen
Allan Brooks
Allan Linder
Allan Ramsay
Allen Butler Talcott
Allen Jones
Alma Thomas
Almada Negreiros
Aloysius O'Kelly
Alphonse Legros
Alphonse Mucha
Alson S. Clark
Altichiero
Alton Tobey
Altoon Sultan
Alvan Fisher
Amadeo de Souza Cardoso
Amalia Lindegren
Ambreen Butt
Ambrose McCarthy Patterson
Ambrosius Bosschaert
Ambrosius Bosschaert II
Ambrosius Holbein
Amelia Robertson Hill
Americo Makk
Ammi Phillips
Amos Ferguson
An Gyeon
An Zhengwen
Ancell Stronach
Anders Zorn
Andor Basch
Andre de Krayewski
Andrea del Sarto
Andrea del Verrocchio
Andrea Mantegna
Andrea Orcagna
Andrea Pozzo
Andreas Achenbach
Andrei Kolkoutine
Andrei Rublev
Andrei Ryabushkin
Andrew Allan
Andrew Bell
Andrew Geddes
Andrew Henderson
Andrew Law
Andrew Robertson
Andrew Stevovich
Andrew Wyeth
Andrey Esionov
Andrey Yefimovich Martynov
Andries Both
Andries Stock
Andrzej Pronaszko
Andy Warhol
Aneurin Jones
Angelica Kauffman
Aniello Falcone
Anita Malfatti
Ann Thetis Blacker
Anna Ancher
Anna Boch
Anna Findlay
Anna Hotchkis
Anna Katharina Block
Anna Maria Barbara Abesch
Annabel Eyres
Annabel Kidston
Anne Dunn
Anne Nasmyth
Anne Redpath
Anne Rigney
Anne Ryan
Anne Said
Anne Savage
Annibale Carracci
Annie Abernethie Pirie Quibell
Annie Rose Laing
Anselm Kiefer
Anthony Angarola
Anthony Devas
Anthony van Dyck
Antoine Ignace Melling
Antoine Le Nain
Antoine Wiertz
Anton Graff
Anton Lehmden
Anton Mauve
Anton Solomoukha
Antonello da Messina
Antoni Brodowski
Antoni Pitxot
Antonie Palamedesz
Antonio Canova
Antonio Cavallucci
Antonio Ciseri
Antonio de la Gandara
Antonio Donghi
Antonio Galli Bibiena
Antonio Rotta
Antonio Saura
Apelles
Apollinary Vasnetsov
Arabella Rankin
Araceli Gilbert
Aramenta Dianthe Vail
Archibald Robertson
Archibald Skirving
Archibald Standish Hartrick
Arent Arentsz
Arie Smit
Aristide Maillol
Arkhip Kuindzhi
Arlington Nelson Lindenmuth
Armand Guillaumin
Armin Baumgarten
Armin Hansen
Arnold Blanch
Arnold Bronckhorst
Arnold Franz Brasz
Arnold Mesches
Arshile Gorky
Art Brenner
Art Frahm
Art Green
Artemisia Gentileschi
Arthur B. Carles
Arthur Boyd
Arthur Hughes
Arthur Lismer
Arthur Melville
Arthur Merric Boyd
Arthur Pan
Arthur Quartley
Arthur Sarkissian
Arthur Streeton
Arthur Webster Emerson
Artur Grottger
Arturo Rivera
Arvid Nyholm
Asger Jorn
Asher Brown Durand
Attila Meszlenyi
August Lemmer
August Macke
August Querfurt
Auguste Baud-Bovy
Auguste Herbin
Augustus Dunbier
Augustus Earle
Augustus John
Augustus Vincent Tack
Augustyn Mirys
Auseklis Ozols
Austin Osman Spare
Avigdor Arikha
Awataguchi Takamitsu
Aya Goda
Ay-O
Balcomb Greene
Balthasar van der Ast
Balthus
Bapu
Barbara Balmer
Barbara Greg
Barbara Longhi
Barbara Nasmyth
Barent Fabritius
Barnett Newman
Barthel Bruyn the Elder
Barthel Bruyn the Younger
Bartholomeus Breenbergh
Bartholomeus Strobel
Bartholomeus van Bassen
Bartholomeus van der Helst
Bartolomeo Cesi
Bartolomeo Vivarini
Basil Blackshaw
Basuki Abdullah
Beatrice Ethel Lithiby
Beatrice Huntington
Beatrix Potter
Beauford Delaney
Bedwyr Williams
Beeple
Ben Enwonwu
Ben Nicholson
Bencho Obreshkov
Benjamin Block
Benjamin Gerritsz Cuyp
Benjamin West
Benjamin Williams Leader
Bernard Accama
Bernard Buffet
Bernard Fleetwood-Walker
Bernard Meninsky
Bernard van Orley
Bernardino Mei
Bernardo Bellotto
Bernardo Cavallino
Bernardo Daddi
Bernardo Strozzi
Bernat Sanjuan
Bernd Fasching
Bernt Tunold
Bertalan Karlovszky
Berthe Morisot
Bertram Brooker
Bessie Wheeler
Bettina Heinen-Ayech
Betty Churcher
Betty Merken
Betye Saar
Bholekar Srihari
Bian Jingzhao
Bian Shoumin
Bill Lewis
Bill Traylor
Billie Waters
Billy Childish
Bob Ross
Bob Thompson
Boetius Adamsz Bolswert
Bogi Fabian
Bohumil Kubista
Boleslaw Cybis
Boris Kustodiev
Boris Vladimirski
Bouchta El Hayani
Bracha L. Ettinger
Bradley Walker Tomlin
Brenda Chamberlain
Brett Whiteley
Breyten Breytenbach
Brian Alfred
Brian Dunlop
Brian Froud
Brian Thomas
Brice Marden
Bridget Riley
Brigid Derham
Bruce McLean
Bruce Nauman
Bruce Onobrakpeya
Bruno Liljefors
Bryan Organ
Byeon Sang-byeok
Byron Galvez
Caesar Andrade Faini
Caesar van Everdingen
Cafer Bater
Cagnaccio di San Pietro
Camille Bombois
Camille Bouvagne
Camille Pissarro
Camille Souter
Camilo Egas
Camilo Mori
Canaletto
Candido Bido
Candido Portinari
Cao Buxing
Cao Zhibai
Caravaggio
Carel Fabritius
Carel Weight
Carel Willink
Carey Morris
Carl Arnold Gonzenbach
Carl Eugen Keel
Carl Eytel
Carl Frederik von Breda
Carl Gustaf Pilo
Carl Heinrich Bloch
Carl Hoppe
Carl Larsson
Carl Morris
Carl Rahl
Carl Spitzweg
Carl Walter Liner
Carle Hessay
Carl-Henning Pedersen
Carlo Carlone
Carlo Crivelli
Carlo Galli Bibiena
Carlo Maderna
Carlo Martini
Carlo Mense
Carlo Randanini
Carlos Berlanga
Carlos Catasse
Carlos Schwabe
Carlos Trillo Name
Caro Niederer
Carol Bove
Carol Sutton
Caroline Chariot-Dayez
Caroline Gotch
Caroline Lucy Scott
Caroline Mytinger
Carpoforo Tencalla
Caspar David Friedrich
Caspar Netscher
Caspar van Wittel
Caspar Wolf
Cassandra Austen
Cassius Marcellus Coolidge
Caterina Tarabotti
Catrin G Grosse
Cecile Walton
Cecilia Beaux
Cecily Brown
Celia Fiennes
Celia Frances Bedford
Ceri Richards
Cerith Wyn Evans
Chafik Charobim
Chaim Soutine
Chang Dai-chien
Chantal Joffe
Charles Alphonse du Fresnoy
Charles Alston
Charles Angrand
Charles Billich
Charles Bird King
Charles Blackman
Charles Codman
Charles Conder
Charles Crodel
Charles Cundall
Charles Demuth
Charles E. Burchfield
Charles Fremont Conner
Charles Furneaux
Charles Ginner
Charles Gleyre
Charles H. Woodbury
Charles Harold Davis
Charles Haslewood Shannon
Charles Hinman
Charles Hopkinson
Charles Joshua Chaplin
Charles Le Brun
Charles Le Roux
Charles Mahoney
Charles Marion Russell
Charles McAuley
Charles Mozley
Charles Ragland Bunnell
Charles Rennie Mackintosh
Charles Ricketts
Charles Roka
Charles Rollier
Charles S. Kaelin
Charles Thomson
Charles Uzzell-Edwards
Charles W. Bartlett
Charles Williams
Charles Willson Peale Daubigny
Charlotte Nasmyth
Charmion von Wiegand
Chen Chi
Chen Chun
Chen Daofu
Chen Hong
Chen Hongshou
Chen Jiru
Chen Lin
Chen Lu
Chen Rong
Chen Yifei
Cheng Jiasui
Cheng Shifa
Cheng Zhengkui
Cherryl Fountain
Chica Macnab
Chiho Aoshima
Childe Hassam
Chinwe Chukwuogo-Roy
Chizuko Yoshida
Choi Buk
Christabel Dennison
Christen Dalsgaard
Christian August Lorentzen
Christian Hilfgott Brand
Christian Jane Fergusson
Christian Krohg
Christian Rohlfs
Christian W. Staudinger
Christo
Christoffel van den Berghe
Christoffer Wilhelm Eckersberg
Christoph Amberger
Christoph Ludwig Agricola
Christopher Perkins
Christopher Williams
Christopher Wood
Chuck Close
Cicely Hey
Cimabue
Cindy Wright
Claes Corneliszoon Moeyaert
Claes Jansz. Visscher
Claire Dalby
Claire Falkenstein
Clara Weaver Parrish
Clarence Holbrook Carter
Clarice Beckett
Clark Voorhees
Claude Bonin-Pissarro
Claude Lorrain
Claude Monet
Claude Rogers
Cleve Gray
Clifford Ellis
Clifford Ross
Clovis Trouille
Clyfford Still
Colijn de Coter
Colin Campbell Cooper
Colin Gill
Colin Hayes
Colin McCahon
Colin Middleton
Colin Moss
Conrad Marca-Relli
Conroy Maddox
Constance Copeman
Constance Gordon-Cumming
Constance-Anne Parker
Constant
Constant Permeke
Constantin Hansen
Constantine Andreou
Coppo di Marcovaldo
Cor Melchers
Corneille
Cornelia MacIntyre Foley
Cornelis Anthonisz
Cornelis Bisschop
Cornelis Claesz van Wieringen
Cornelis de Heem
Cornelis de Man
Cornelis Dusart
Cornelis Engebrechtsz
Cornelis Pietersz Bega
Cornelis Saftleven
Cornelis van Haarlem
Cornelis van Poelenburgh
Cornelis Verbeeck
Cornelisz Hendriksz Vroom the Younger
Correggio
Cosmo Alexander
Craig Mullins
Cristache Gheorghiu
Cristofano Allori
Csaba Markus
Cui Bai
Cui Zizhong
Cuno Amiet
Cy Twombly
D. Howard Hitchcock
Dahlov Ipcar
Dai Jin
Dai Xi
Damien Hirst
Dan Christensen
Daniel Chodowiecki
Daniel Garber
Daniel Maclise
Daniel Schultz
Daniel Seghers
Daniel Taylor
Dante Gabriel Rossetti
Daphne Allen
Daphne Fedarb
Daphne McClure
Daryush Shokof
David Alfaro Siqueiros
David Allan
David Annand
David Bailly
David Bomberg
David Boyd
David Brewster
David Budd
David Burton-Richardson
David Cooke Gibson
David Diao
David Donaldson
David Dougal Williams
David Eugene Henry
David G. Sorensen
David Garner
David Gilmour Blythe
David Hockney
David Imms
David Macbeth Sutherland
David Michie
David Octavius Hill
David Park
David Paton
David Ramsay Hay
David Roberts
David Simpson
David Teniers III
David Teniers the Elder
David Teniers the Younger
David Watson Stevenson
David Wilkie
David Wojnarowicz
David Young Cameron
De Hirsh Margules
Dechko Uzunov
Dee Whitcomb
Delmer J. Yoakum
Demetrios Farmakopoulos
Denis Eden
Dennis Ashbaugh
Dennis Flanders
Dennis H. Farber
Dennis Miller Bunker
Derek Chittock
Derek Hill
Derek Jarman
Derold Page
Didier Mouron
Diego Giacometti
Diego Rivera
Dieric Bouts
Dietmar Damerau
Dimitre Manassiev Mehandjiysky
Ding Guanpeng
Ding Yunpeng
Dionisio Baixeras Verdaguer
Dionisius
Dirck de Bray
Dirck de Quade van Ravesteyn
Dirck Hals
Dirck van Baburen
Dirck van Delen
Dirck van der Lisse
Dirk Crabeth
Dirk Helmbreker
Ditlev Blunck
Dmitry Levitzky
Doc Hammer
Dod Procter
Domenichino
Domenico di Pace Beccafumi
Domenico Ghirlandaio
Domenico Induno
Domenico Pozzi
Domenico Quaglio the Younger
Domenico Zampieri
Don Eddy
Don Reichert
Donato Giancola
Donald Judd
Donald Roller Wilson
Donald Sherwood
Dong Qichang
Dong Yuan
Dora Carrington
Doris Blair
Doris Boulton-Maude
Dorning Rasbotham
Dorothea Braby
Dorothea Tanning
Dorothea Warren O'Hara
Dorothy Bradford
Dorothy Burroughes
Dorothy Coke
Dorothy Elizabeth Bradford
Dorothy Johnstone
Dorothy King
Dorothy Lockwood
Dosso Dossi
Doug Ohlson
Douglas Bourgeois
Douglas Robertson Bisset
Dr. Atl
Drew Struzan
Du Jin
Du Qiong
Duccio
Dugald Sutherland MacColl
Dulah Marie Evans
Duncan Grant
Dwight William Tryon
E. Charlton Fortune
E. T. A. Hoffmann
E. William Gollings
È˜tefan Luchian
Eamon Everall
Ed Paschke
Eden Box
Edgar Ainsworth
Edgar Degas
Edgar Schofield Baum
Edi Rama
Edith Edmonds
Edith Grace Wheatley
Edith Lawrence
Edmond Aman-Jean
Edmond Bille
Edmond Xavier Kapp
Edmund Blampied
Edmund Charles Tarbell
Edmund Greacen
Edna Mann
Eduard von Steinle
Eduardo Kingman
Eduardo Lefebvre Scovell
Eduardo Paolozzi
Edvard Munch
Edward Armitage
Edward Arthur Walton
Edward Atkinson Hornel
Edward Avedisian
Edward Bailey
Edward Baird
Edward Ben Avram
Edward Clark
Edward Corbett
Edward Dugmore
Edward George Handel Lucas
Edward Henry Potthast
Edward Hicks
Edward Hopper
Edward Lamson Henry
Edward Marshall Boehm
Edward Mitchell Bannister
Edward Otho Cresap Ord II
Edward Robert Hughes
Edward Ruscha
Edward Simmons
Edward Wadsworth
Edward Willis Redfield
Edwin Austin Abbey
Edwin Dickinson
Edwin G. Lucas
Edwin Landseer
Eero Snellman
Egbert van der Poel
Egbert van Heemskerck
Eglon van der Neer
Egon Schiele
Egon von Vietinghoff
Eileen Aldridge
Einar Hakonarson
Ei-Q
Ejler Bille
Ejnar Nielsen
El Greco
El Lissitzky
Elaine Hamilton
Elbridge Ayer Burbank
Eleanor Best
Eleanor Hughes
Eleanor Layfield Davis
Elena Guro
Elias Goldberg
Elinor Proby Adams
Eliot Hodgkin
Elisabeth Collins
Eliseu Visconti
Elizabeth Charleston
Elizabeth Durack
Elizabeth Forbes
Elizabeth Jane Lloyd
Elizabeth MacNicol
Elizabeth Murray
Elizabeth Polunin
Elizabeth York Brunton
Ella Guru
Ellen Gallagher
Ellsworth Kelly
Elmer Bischoff
Elmyr de Hory
Elsa Beskow
Else Alfelt
Elsie Dalton Hewland
Elsie Few
Elsie Henderson
Elsie Vera Cole
Emanuel de Witte
Emanuel Leutze
Emanuel Witz
Emil Bisttram
Emil Carlsen
Emil Fuchs
Emil Lindenfeld
Emil Nolde
Emil Orlik
Emile Auguste Carolus-Duran
Emile Lahner
Emiliano Di Cavalcanti
Emilio Grau Sala
Emily Carr
Emily Mason
Emily Murray Paterson
Emily Shanks
Emma Andijewska
Emma Lampert Cooper
Emperor Huizong of Song
Enguerrand Quarton
Enrico Baj
Enrique Grau
Enrique Simonet
Enzo Cucchi
Eppo Doeve
Eric Auld
Eric de Kolb
Eric Taylor
Erich Heckel
Erik Ortvad
Erik Pevernagie
Erlund Hudson
Ernest Briggs
Ernest Buckmaster
Ernest Heber Thompson
Ernest Morgan
Ernest Procter
Ernest William Christmas
Ernest Zobole
Ernie Barnes
Ernst Ludwig Kirchner
Ernst Thoms
Erwin Bowien
Esaias Boursse
Esaias van de Velde
Esther Blaikie MacKinnon
Estuardo Maldonado
Eszter Mattioni
Ethel Schwabacher
Ettore Tito
Euan Uglow
Eugeen Van Mieghem
Eugene J. Martin
Eugene Montgomery
Eugenio de Arriba
Eugenio Granell
Eva Frankfurther
Evan Charlton
Evaristo Baschenis
Eve Disher
Eve Ryder
Evelyn Abelson
Evelyn Cheston
Everett Shinn
Everett Warner
Evert Collier
F. Scott Hess
Fairfield Porter
Fan Kuan
Fan Qi
Fang Congyi
Fanny McIan
Farid Mansour
Fathi Hassan
Fay Pomerance
Fede Galizia
Federico Barocci
Federico Uribe
Federico Zandomeneghi
Federico Zuccari
Fedot Sychkov
Fei Danxu
Felice Casorati
Felicity Charlton
Felipe Seade
Ferdinand Bol
Ferdinand Hodler
Ferdynand Ruszczyc
Ferenc Joachim
Fern Coppedge
Fernand Pelez
Fernand Verhaegen
Fernando Amorsolo
Fernando Botero
Fernando Gerassi
Filippino Lippi
Fiona Rae
Fitz Hugh Lane
Flavia Blois
Fletcher Martin
Flora Macdonald Reid
Florence Engelbach
Floris van Dyck
Floris van Schooten
Ford Madox Brown
Fra Angelico
Fra Bartolomeo
Fra Filippo Lippi
Frances C. Fairman
Frances Currey
Frances Hodgkins
Frances MacDonald
Francesco Albani
Francesco Bartolozzi
Francesco Bonsignori
Francesco Clemente
Francesco Cozza
Francesco del Cossa
Francesco Filippini
Francesco Furini
Francesco Guardi
Francesco Hayez
Francesco Raibolini
Francesco Zuccarelli
Francis Bacon
Francis Bourgeois
Francis Cadell
Francis Davis Millet
Francis Ernest Jackson
Francis Focer Brown
Francis Helps
Francis Picabia
Francisco de Burgos Mantilla
Francisco de Holanda
Francisco Oller
Franciszek Å»murko
Franciszek Kostrzewski
Franciszek Smuglewicz
Frank Auerbach
Frank Barrington Craig
Frank Buchser
Frank DuMond
Frank Frazetta
Frank J. Girardin
Frank Leonard Brooks
Frank Mason
Frank McKelvey
Frank Montague Moore
Frank O'Meara
Frank Stella
Frank Weston Benson
Frans Hals
Frans Koppelaar
Frans Masereel
Frans van Mieris the Elder
Frans van Mieris the Younger
Franz Fedier
Franz Hegi
Franz Karl Basler-Kopp
Franz Kline
Franz Marc
Franz Stuck
Franz von Lenbach
Franz Xaver Winterhalter
Fred A. Precht
Fred Cress
Fred Mitchell
Frederic Leighton
Frederic Remington
Frederick Carl Frieseke
Frederick Edwin Church
Frederick Goodall
Frederick Hammersley
Frederick McCubbin
Frederik de Moucheron
Frederik Vermehren
Frida Kahlo
Friedel Dzubas
Friedensreich Hundertwasser
Friedrich Gauermann
Friedrich Traffelet
Friedrich von Amerling
Frits Thaulow
Fritz Baumann
Fritz Bultman
Fritz Glarner
Fritz Puempin
Fritz von Dardel
Fritz von Uhde
Fu Baoshi
Fujishima Takeji
Fujiwara Nobuzane
Fujiwara Takanobu
Fuller Potter
Fyodor Alekseyev
Fyodor Rokotov
Fyodor Slavyansky
Fyodor Vasilyev
Gabor Breznay
Gabriel Metsu
Gaetano Previati
Gaetano Sabatini
Gai Qi
Gang Hui-an
Gang Se-hwang
Gao Cen
Gao Fenghan
Gao Kegong
Gao Qipei
Gao Xiang
Gaston Anglade
Gavin Hamilton
Gavin Nolan
Gawen Hamilton
Gee Vaucher
Geertgen tot Sint Jans
Gen Paul
Genco Gulan
Gene Davis
Genevieve Springston Lynch
Gentile Bellini
Gentile Tondino
Geoffrey Dyer
Geoffrey Olsen
Georg Baselitz
Georg Friedrich Kersting
Georg Friedrich Schmidt
Georg Muche
Georg Scholz
Georg Schrimpf
George Aleef
George Ault
George B. Sutherland
George Bain
George Barker
George Barret Jr.
George Barret Sr.
George Bell
George Bellows
George Benjamin Luks
George Biddle
George Bogart
George Caleb Bingham
George Catlin
George Claessen
George Earl Ortman
George Fiddes Watt
George Frederic Watts
George Frederick Harris
George Gardner Symons
George Grosz
George Hendrik Breitner
George Henry
George Herbert Baker
George Inness
George Jamesone
George Lambourn
George Manson
George Morrison
George Papazov
George Passantino
George Paul Chalmers
George Pirie
George Reid
George Romney
George Stubbs
George Wyllie
Georges Braque
Georges de La Tour
Georges Emile Lebacq
Georges Lacombe
Georges Lemmen
Georges Rouault
Georges Seurat
Georges Stein
Georgia O'Keeffe
Georgina Hunt
Gerald Kelley
Gerald Kelly
Gerald van Honthorst
Gerard David
Gerard de Lairesse
Gerard Houckgeest
Gerard Seghers
Gerard Soest
Gerard ter Borch
Gerbrand van den Eeckhout
Gerda Wegener
Gerhard Richter
Gerrit Adriaenszoon Berckheyde
Gerrit Dou
Gertrude Abercrombie
Gertrude Greene
Gertrude Harvey
Giacomo Balla
Giambattista Pittoni
Gian Lorenzo Bernini
Gianfredo Camesi
Gilbert Stuart
Gillis Rombouts
Gino Severini
Giocondo Albertolli
Giorgio Cavallon
Giorgio de Chirico
Giorgio De Vincenzi
Giorgio Giulio Clovio
Giorgio Morandi
Giorgione
Giotto
Giovanni Antonio Galli
Giovanni Battista Cipriani
Giovanni Battista Gaulli
Giovanni Battista Innocenzo Colombo
Giovanni Battista Piazzetta
Giovanni Battista Tiepolo
Giovanni Bellini
Giovanni Bernardino Asoleni
Giovanni Bernardino Azzolini
Giovanni Bernardino Mazzolini
Giovanni Boldini
Giovanni Fattori
Giovanni Francesco Barbieri
Giovanni Giacometti
Giovanni Lanfranco
Giovanni Paolo Cavagna
Giovanni Paolo Pannini
Giovanni Pelliccioli
Girolamo Muziano
Giuseppe Abbati
Giuseppe Antonio Petrini
Giuseppe Arcimboldo
Giuseppe Avanzi
Giuseppe Bernardino Bison
Giuseppe De Nittis
Giuseppe Grisoni
Giuseppe Tominz
Gladys Dawson
Gladys Kathleen Bell
Glennray Tutor
Glenys Cour
Godfrey Blow
Godfried Schalcken
Gong Kai
Gong Xian
Gonzalo Endara Crow
Gottfried Helnwein
Govert Dircksz Camphuysen
Govert Flinck
Grace Clements
Grace Cossington Smith
Grace English
Grace Pailthorpe
Grace Polit
Graham Forsythe
Graham Sutherland
Grant Wood
Gregorio Lazzarini
Gregorio Prestopino
Gregorius Sickinger
Gregory Gillespie
Grigoriy Myasoyedov
Grillo Demo
Griselda Allan
Gu An
Gu Hongzhong
Gu Kaizhi
Gu Zhengyi
Guan Daosheng
Guido Reni
Guity Novin
Guo Chun
Guo Xi
Gustaf Munch-Petersen
Gustav Klimt
Gustave Boulanger
Gustave Caillebotte
Gustave Courbet
Gustave Moreau
Guy Rose
Gwen Barnard
Gwen John
Gwenny Griffiths
Gwilym Prichard
Gyula Basch
Gyula Derkovits
H. R. Giger
Hamilton Sloan
Hamish MacDonald
Han Gan
Hanabusa ItchÅ
Hanabusa ItchÅ II
Hannah Frank
Hannah Tompkins
Hanns Katz
Hans Asper
Hans Baldung
Hans Beat Wieland
Hans Bol
Hans Burgkmair
Hans Eduard von Berlepsch-Valendas
Hans Erni
Hans Falk
Hans Fischer
Hans Fries
Hans Gude
Hans Hartung
Hans Hofmann
Hans Holbein the Elder
Hans Holbein the Younger
Hans Leu the Elder
Hans Makart
Hans Memling
Hans Mertens
Hans Sandreuter
Hans Schwarz
Hans von Aachen
Hans von Bartels
Hans Werner Schmidt
HAP Grieshaber
Harald Giersing
Harold Elliott
Harold Gilman
Harold Harvey
Harold Sandys Williamson
Harold Shapinsky
Harriet Zeitlin
Harrington Mann
Harry Morley
Harry Shoulberg
Harvey Pratt
Harvey Quaytman
Hasegawa Settan
Hazel Armour
Hedda Sterne
Heinrich Bichler
Heinrich Brocksieper
Heinrich Danioth
Heinrich Herzig
Heinrich Hofmann
Heinrich Kley
Heinrich Maria Davringhausen
Heinz Anger
Helen Berman
Helen Biggar
Helen Binyon
Helen Dahm
Helen Edwards
Helen Frankenthaler
Helen Stevenson
Helen Thomas Dranga
Helene Schjerfbeck
Helmut Federle
Hendrick Avercamp
Hendrick Bloemaert
Hendrick Cornelisz Vroom
Hendrick Cornelisz. van Vliet
Hendrick Goudt
Hendrick Terbrugghen
Hendrick van Balen
Hendrick van Streeck
Hendrik Gerritsz Pot
Hendrik Goltzius
Hendrik Martenszoon Sorgh
Hendrik van Steenwijk I
Hendrik van Steenwijk II
Hendrik Willem Mesdag
Henning Jakob Henrik Lund
Henri Alphonse Barnoin
Henri Bellechose
Henri Biva
Henri de Toulouse-Lautrec
Henri Fantin-Latour
Henri Harpignies
Henri Le Sidaner
Henri Matisse
Henri Michaux
Henri Rousseau
Henric Trenk
Henricus Hondius II
Henri-Edmond Cross
Henriett Seth F.
Henriette Wyeth
Henri-Julien Dumont
Henrik Weber
Henry B. Christian
Henry Bright
Henry Carr
Henry Fuseli
Henry Heerup
Henry Ives Cobb Jr.
Henry Lamb
Henry Macbeth-Raeburn
Henry O. Tanner
Henry Otto Wix
Henry Raeburn
Henry Scott Tuke
Henry Snell Gamley
Henry Tonks
Henry van de Velde
Henry Wallis
Henry Woods
Henryk Rodakowski
Henryk Siemiradzki
Henryk StaÅ¼ewski
Henryka Beyer
Herb Aach
Herbert Abrams
Herbert James Gunn
Herbert MacNair
Hercules Seghers
Herman Saftleven
Herman van Swanevelt
Hermann Feierabend
Hermenegildo Anglada Camarasa
Hermione Hammond
Hew Lorimer
Hieronymus Bosch
Hilda Annetta Walker
Hilda May Gordon
Hilde Goldschmidt
Hilma af Klint
Hiromitsu Takahashi
Hirosada II
Hiroshi Honda
Hiroshi Yoshida
Hiroshige
Hiroyuki Tajima
Hishikawa Moronobu
Hokusai
Holger Roed
Hong Ren
Horace Vernet
Horatio McCulloch
Horatio Nelson Poole
Horst Antes
Hovsep Pushman
Howard Butterworth
Howard Hodgkin
Howard Kanovitz
Howard Mehring
Howardena Pindell
Hristofor Zhefarovich
Hu Jieqing
Hu Zao
Hu Zaobin
Hua Yan
Huang Binhong
Huang Ding
Huang Gongwang
Huang Ji
Huang Shen
Huang Tingjian
Hubert Robert
Hubert van Eyck
Hubert van Ravesteyn
Hubert von Herkomer
Hugh Adam Crawford
Hugh Hughes
Hugh William Williams
Hugo Anton Fisher
Hugo Heyrman
Hugo Scheiber
Hugo Simberg
Hugo van der Goes
Humberto Castro
Hyacinthe Rigaud
Hyman Bloom
I Ketut Soki
Ian Fairweather
Ian Hamilton Finlay
Ib Eisner
Ibrahim Kodra
Ibram Lassaw
Ignacio Zuloaga
Ignat Bednarik
Igor Grabar
Igor Kufayev
Ihor Podolchak
Ike no Taiga
Ikuo Hirayama
Ilka GedÅ‘
Illarion Pryanishnikov
Ilya Glazunov
Ilya Ostroukhov
Ilya Yefimovich Repin
Ingrida Kadaka
INO
Inoue Naohisa
Ion Andreescu
Irene Bache
Irene Lieblich
Irvin Bomb
Isaac Levitan
Isaac Soyer
Isaac van Ostade
Isabel Codrington
Isabel Naftel
Isamu Noguchi
Isidor Kaufman
Isidore Bonheur
Ismael Nery
Ismail Acar
Ismail Gulgee
Isobel Heath
Isobelle Ann Dods-Withers
Israel Tsvaygenbaum
Istvan Horkay
Itagaki Yoshio
Italo Mus
Itshak Holtz
Ivan Aivazovsky
Ivan Albright
Ivan Bilibin
Ivan GeneraliÄ‡
Ivan Grohar
Ivan Kramskoi
Ivan Ranger
Ivan Shishkin
Ivan Trush
Ivan Yakovlevich Vishnyakov
Ivana Kobilca
Ivor Davies
Ivor Williams
Iwasa Matabei
J. Alden Weir
J. L. Lund
J. M. W. Turner
J. Massey Rhind
J. Ottis Adams
J. W. Tristram
Jaakko Mattila
Jacek Andrzej Rossakiewicz
Jacek Malczewski
Jack Boul
Jack Butler Yeats
Jack C. Mancino
Jack Levine
Jack M. Ducker
Jack Roth
Jack Smith
Jackson Pollock
Jacob Adriaensz Backer
Jacob Burck
Jacob Collins
Jacob de Gheyn II
Jacob de Heusch
Jacob Duck
Jacob Esselens
Jacob Gerritsz. Cuyp
Jacob Jordaens
Jacob Kainen
Jacob Koninck
Jacob Lawrence
Jacob Maris
Jacob Marrel
Jacob More
Jacob Ochtervelt
Jacob Philipp Hackert
Jacob Pynas
Jacob Savery
Jacob Steinhardt
Jacob Toorenvliet
Jacob van Campen
Jacob van der Ulft
Jacob van Ruisdael
Jacob van Utrecht
Jacob Willemszoon de Wet
Jacopo Amigoni
Jacopo Baccarini
Jacopo Bassano
Jacopo Bellini
Jacopo de' Barbari
Jacopo Pontormo
Jacques Blanchard
Jacques Callot
Jacques Daret
Jacques Maroger
Jacques Sablet
Jacques Villon
Jacques-Laurent Agasse
Jacques-Louis David
Jaime Colson
Jakob Emanuel Handmann
Jakob Gauermann
Jakub Husnik
Jakub Rozalski
Jakub Schikaneder
James Ardern Grant
James Ballantine
James Bard
James Barry
James Bateman
James Baynes
James Bolivar Manson
James Brooks
James Cadenhead
James Campbell Noble
James Cowie
James Cromar Watt
James Dickson Innes
James E. Brewton
James Ensor
James Giles
James Gillick
James Guthrie
James Humbert Craig
James Jarvaise
James McBey
James McIntosh Patrick
James McNeill Whistler
James Montgomery Flagg
James Morris
James Morrison
James Paterson
James Peale
James Pittendrigh MacGillivray
James Rosenquist
James Sessions American painter
James Tissot
Jamie Wyeth
Jan Antonisz van Ravesteyn
Jan Asselijn
Jan Baptist Weenix
Jan Brueghel the Elder
Jan Brueghel the Younger
Jan Cornelisz Vermeyen
Jan Cox
Jan Davidsz de Hem
Jan Davidsz. de Heem
Jan de Baen
Jan de Bray
Jan Dirksz Both
Jan Gossaert
Jan Gregoor
Jan Griffier
Jan Hackaert
Jan Henryk Rosen
Jan Jahn
Jan Lievens
Jan Matejko
Jan Miel
Jan Miense Molenaer
Jan Nieuwenhuys
Jan Pynas
Jan Rustem
Jan Sawka
Jan Steen
Jan Tengnagel
Jan Theuninck
Jan van Bijlert
Jan van de Cappelle
Jan van der Heyden
Jan van Eyck
Jan van Goyen
Jan van Huysum
Jan van Kessel the Elder
Jan van Kessel the Younger
Jan van Mieris
Jan Verkolje
Jan Victors
Jan Wijnants
Jan Wyck
Jane Carpanini
Jane Frank
Jane Freeman
Jane Freilicher
Jane Hawkins
Jane Kelly
Jane Nasmyth
Janet Archer
Janet Dawson
Janet Fish
Jang Seung-eop
Jankel Adler
January Suchodolski
Jaroslav Doubrava
Jaroslava Korol
Jasmine Becket-Griffith
Jason Benjamin
Jason Teraoka
Jasper Francis Cropsey
Jasper Johns
Jay Milder
Jean Antoine Watteau
Jean Arp
Jean Auguste Dominique Ingres
Jean Baptiste Debret
Jean Clark
Jean Colombe
Jean Crotti
Jean Dubuffet
Jean Dufy
Jean Fautrier
Jean Fouquet
Jean Hey
Jean Huber Voltaire
Jean Jouvenet
Jean Louis Petitot
Jean Malouel
Jean Messagier
Jean Metzinger
Jean Petitot
Jean Tabaud
Jean Xceron
Jean-Baptiste Pater
Jean-Baptiste van Loo
Jean-Baptiste-Camille Corot
Jean-Jacques Henner
Jean-Louis-Ernest Meissonier
Jean-Marc Nattier
Jean-Michel Atlan
Jean-Michel Basquiat
Jeanne du Maurier
Jean-Paul Laurens
Jean-Paul Riopelle
Jean-Pierre Norblin de La Gourdaine
Jean-Pierre Saint-Ours
Jean-Yves Couliou
Jeff Koons
Jeka Kemp
Jemima Blackburn
Jenaro de Urrutia Olaran
Jennifer Bartlett
Jenny Eakin Delony
Jenny Saville
Jens Ferdinand Willumsen
Jens Juel
Jeong Seon
Jeremy Henderson
Jerry Weiss
Jerry Wilkerson
Jerzy Kossak
Jesper Knudsen
Jesse Richards
Jessie Alexandra Dick
Jessie Algie
Jessie M. King
Jessie Newbery
Ji Sheng
Jiang Tingxi
Jiao Bingzhen
Jim Dine
Jim Manley
Jimmy Boyle
Jin Homura
Jin Nong
Jiro Yoshihara
Jitish Kallat
Jo Baer
Joachim Patinir
Joan Ayling
Joan Brown
Joan Snyder
Joan Warburton
Joanna Carrington
Joe Machine
Joe Mangrum
Joe Stefanelli
Johan Christian Dahl
Johan Edvard Mandelberg
Johan Jongkind
Johan Lundbye
Johann Balthasar Bullinger
Johann Berthelsen
Johann Christian Brand
Johann Friedrich Overbeck
Johann George Schmidt
Johann Gottfried Steffan
Johann Heinrich Bleuler
Johann Heinrich Meyer
Johann Jakob Biedermann
Johann Liss
Johann Ludwig Aberli
Johann Ludwig Bleuler
Johann Pucher
Johann Rudolf Byss
Johann Zoffany
Johanna Marie Fosie
Johannes Bosschaert
Johannes Cornelisz Verspronck
Johannes Fabritius
Johannes Heisig
Johannes Itten
Johannes Lingelbach
Johannes Martini
Johannes Mytens
Johannes van Haensbergen
Johannes Vermeer
John Alexander
John Altoon
John Armleder
John Armstrong
John Atkinson Grimshaw
John Bellany
John Blair
John Bourne
John Brack
John Brown
John Brown Abercromby
John Button
John Byrne
John Cale
John Clayton
John Clayton Adams
John Collier
John Constable
John Covert
John Crawford Brown
John Doman Turner
John Duncan Fergusson
John E. Berninger
John Ellsworth Weis
John Elwood Bundy
John Everett Millais
John Eyre
John F. Francis
John F. Peto
John Fabian Carlson
John Frederick Herring Jr.
John Frederick Herring Sr.
John Fulton Folinsbee
John Gibson
John Haberle
John Henderson
John Henry Lorimer
John Henry Twachtman
John Hutchison
John Hutton
John James Audubon
John Kay
John Keane
John Kelso Hunter
John Kingsley Cook
John Lavery
John Laviers Wheatley
John Linnell
John Lowrie Morrison
John Luke
John Macdonald Aiken
John Maggs
John Marin
John Martin
John Maxwell
John McLaughlin
John Michael Wright
John Mossman
John Murdoch
John Nelson Battenberg
John Nicolson
John Noble Barlow
John Opie
John Parker
John Pettie
John Platt
John Plumb
John Quidor
John Quinton Pringle
John Rhind
John Robertson Reid
John Runciman
John Russell Fulton
John Singer Sargent
John Singleton Copley
John Skinner Prout
John Sloan
John Souch
John Steell
John Steuart Curry
John Stevenson Rhind
John Stuart Ingle
John Thomson of Duddingston
John Trumbull
John Uzzell Edwards
John Watson Gordon
John William Godward
John William Waterhouse
John Wollaston
John Wonnacott
John Zephaniah Bell
Jon Coffelt
Joop Sanders
Joos de Momper
Jorge Velarde
Joris van der Haagen
Josef Abel
Josef Albers
Josef Block
Josef Dande
Josef Jackerson
Josefina Tanganelli Plana
Josep Rovira Soler
Joseph Badger
Joseph Beuys
Joseph DeCamp
Joseph Delaney
Joseph Dwight Strong
Joseph Heintz the Elder
Joseph Henderson
Joseph Ignaz Appiani
Joseph Kleitsch
Joseph Morgan Henninger
Joseph Noel Paton
Joseph Pickett
Joseph Pisani
Joseph Raphael
Joseph Severn
Joseph Stella
Joseph Werner
Joseph Wright of Derby
Joseph Yoakum
Joseph-Marie Vien
Josetsu
Joshua Reynolds
Josse Lieferinxe
JoWOnder
Joy Garnett
Joze Ciuha
Jozef Czapski
Jozef Simmler
Ju Chao
Ju Lian
Juan Carlos Stekelman
Juan de Flandes
Juan Fernando Cobo
Juan Gris
Juan Luna
Juan O'Gorman
Juan Villafuerte
Judith Brown
Judith Gutierrez
Judith Leyster
Judy Cassab
Juergen von Huendeberg
Jules Breton
Jules Joseph Lefebvre
Jules Olitski
Jules Pascin
Jules Robert Auguste
Jules Tavernier
Julian Hatton
Julian Onderdonk
Julian Schnabel
Juliette Leong
Juliette Wytsman
Julio Larraz
Julius Edvard Marak
Julius Exner
Julius Hatofsky
Julius Klinger
Julius LeBlanc Stewart
Juliusz Kossak
Junpei Satoh
Junsaku Koizumi
Juraj Julije KloviÄ‡
Juriaen van Streeck
Justus van Gent
Kaburagi Kiyokata
Kaff Gerrard
Kagaku Murakami
Kaii Higashiyama
Kailash Chandra Meher
Kalervo Palsa
Kamagurka
Kamisaka Sekka
Kanbun Master
Kanzan Shimomura
Karel Å tÄ›ch
Karel Appel
Karel Dujardin
Karel van Mander
Karl Ballmer
Karl Bodmer
Karl Bryullov
Karl Buesgen
Karl Hagedopoorn
Karl Hagedorn
Karl Hofer
Karl Jauslin
Karl Matzek
Karl Schmidt-Rottluff
Karl Stauffer-Bern
Karl Walser
Karl Zerbe
Katerina Wilczynski
Kathleen Allen
Kathleen Browne
Kathleen Guthrie
Kathleen Scott
Kathleen Walne
Kawase Hasui
Kay Sage
Kazimierz Alchimowicz
Kazimierz Wojniakowski
Kazimir Malevich
Kazys Varnelis
Ke Jiusi
Kees Bol
Kees Maks
Kees van Dongen
Keisai Eisen
Keith Henderson
Kelly Sueda
Ken Danby
Ken Elias
Ken Howard
Ken Messer
Kenneth Noland
Ker-Xavier Roussel
Kevin A. Short
Kevin Connor
Khalil Gibran
Kim Deuk-sin
Kim Du-ryang
Kim Eung-hwan
Kim Hong-do
Kim Hwan-gi
Kim Jeong-hui
Kim Myeong-guk
Kim Tschang Yeul
Kinichiro Ishikawa
Kishi Ganku
Kitagawa Utamaro
Kitao Shigemasa
Kiyohara Tama
Kiyoshi Yamashita
Knox Martin
Knud Agger
Kobayashi Kiyochika
Koloman Sokol
Konrad Grob
Konrad Klapheck
Konrad Witz
Konstantin Korovin
Konstantin Makovsky
Konstantin Savitsky
Konstantin Somov
Konstantin Westchilov
Konstantin Yuon
Koryusai Isoda
Kose Kanaoka
Kristian Zahrtmann
Kristin Nelson
Krzysztof Boguszewski
Ksenia Milicevic
Kume Keiichiro
Kun Can
Kuroda Seiki
Kurt Roesch
Kurt Schwitters
Kurt Seligmann
Kurt Trampedach
Kurt Wenner
Kusumi Morikage
Kyffin Williams
L. A. Ring
L. Alcopley
L. S. Lowry
L. Vance Phillips
Lajos Bruck
Lajos Tihanyi
Lajos Vajda
Lam Qua
Lambert Doomer
Lambert Jacobsz
Lan Ying
Lari Pittman
Larry D. Alexander
Larry Rivers
Larry Zox
Lars Jonson Haukaness
Lasar Segall
Lattanzio Gambara
Laura Ford
Laura Knight
Laura Muntz Lyall
Laura Theresa Alma-Tadema
Laura Wheeler Waring
Laurits Tuxen
Lawren Harris
Lawrence Alma-Tadema
Lawrence Calcagno
Lawrence Harris
Lawton S. Parker
LeConte Stewart
Lee Gatch
Lefevre James Cranstone
Leiko Ikemura
Leila Faithfull
Leland Bell
Lena Alexander
Leng Mei
Lennie Lee
Leo Goetz
Leo Leuppi
Leo Michelson
Leo Valledor
Leon Chwistek
Leon Golub
Leon KapliÅ„ski
Leon Kroll
Leon Polk Smith
Leona Wood
Leonaert Bramer
Leonard Appelbee
Leonard Bahr
Leonard Daniels
Leonard Long
Leonard Ochtman
Leonardo da Vinci
Leonid Pasternak
Leonor Fini
Leonora Carrington
Leopold Gottlieb
LeRoy Neiman
Lesser Ury
Lev Lvovich Kamenev
Lewis Henry Meakin
Li Cheng
Li Di
Li Fangying
Li Gonglin
Li Kan
Li Keran
Li Mei-shu
Li Rongjin
Li Shan
Li Shida
Li Shixing
Li Song
Li Tang
Li Zai
Liang Kai
Liao Chi-chun
Lilla Cabot Perry
Lily Delissa Joseph
Limbourg brothers
Lin Liang
Lin Tinggui
Linda Sutton
Lindsay Bartholomew
Lionel Lindsay
Lionel Walden
Lisa Milroy
Lisa Nankivil
Lisa Yuskavage
Liu Haisu
Liu Jue
Liu Jun
Liubov Popova
Lizzy Ansingh
Lodewijk Bruckman
Lois Dodd
Lois Mailou Jones
Lojze Logar
Loren Munk
Lorenzo Lotto
Louis Anquetin
Louis Buvelot
Louis Comfort Tiffany
Louis de Caullery
Louis Eilshemius
Louis Grell
Louis Hersent
Louis Janmot
Louis le Brocquy
Louis Le Nain
Louis Marcoussis
Louis Mathieu Verdilhan
Louis Pohl
Louis Schanker
Louis Valtat
Louisa Chase
Louisa Puller
Louise Catherine Breslau
Louise Nevelson
Louis-Michel van Loo
Lovis Corinth
Lu Guang
Lu Zhi
Lubin Baugin
Lubna Agha
Luc Tuymans
Lucas Cranach the Elder
Lucas Cranach the Younger
Lucas van Leyden
Lucas Vorsterman
Lucebert
Lucette Barker
Lucia Peka
Lucian Freud
Lucien Pissarro
Lucio Fontana
Luc-Olivier Merson
Lucy Angeline Bacon
Lucy Madox Brown
LudÄ›k Marold
Ludolf Bakhuizen
Ludolf Leendertsz de Jongh
Ludovico Carracci
Ludovit Fulla
Ludwig Bemelmans
Ludwig Knaus
Ludwig Mestler
Ludwik Konarzewski
Ludwik Konarzewski Jr
Luigi Kasimir
Luis Enrique Camej
Luis Marsans
Luis Miranda
Luis Molinari
Lujo Bezeredi
Luo Mu
Luo Ping
Luo Zhichuan
Lydia Field Emmet
Lyonel Feininger
M. C. Escher
M. F. Husain
Ma Lin
Ma Quan
Ma Shi
Ma Wan
Ma Yuan
Ma Yuanyu
Madge Oliver
Maeda Masao
Maeda Seison
Maggie Hamilton
Magnus Colcord Heurlin
Mahmoud Farshchian
Maki Haku
Maksimilijan Vanka
Maksymilian Gierymski
Malcolm Drummond
Malcolm Morley
Man Ray
Manabu Mabe
Manfredi Beninati
Manolo Millares
Manuel Franquelo
Manuel Ortiz de Zarate
Marc Chagall
Marcel Duchamp
Marcelle Bergerol
Marcello Bacciarelli
Marcin Zaleski
Marcos Restrepo
Mardi Barrie
Margaret Backhouse
Margaret Bingham
Margaret Boden
Margaret Bruce Wells
Margaret Garland
Margaret Geddes
Margaret Graeme Niven
Margaret Leiteritz
Margaret Macdonald Mackintosh
Margit Anna
Margo Hoff
Marguerite Zorach
Maria Helena Vieira da Silva
Maria Oriana Galli Bibiena
Maria van Oosterwijk
Marianne von Werefkin
Marie Angel
Marie Bashkirtseff
Marie Bracquemond
Marie Courtois
Marie Laurencin
Marie Vassilieff
Marie-Suzanne Giroust
Marilyn Bendell
Mario Bardi
Mario Comensoli
Mario Dubsky
Mario Sironi
Marion Ancrum
Marion Wachtel
Mariotto Albertinelli
Marjorie Frances Bruford
Marjorie May Bacon
Mark A. Brennan
Mark Boyle
Mark Gertler
Mark Rothko
Mark Tobey
Marsden Hartley
Marten Post
Martin Benka
Martin Desjardins
Martin Johnson Heade
Martin Kober
Martiros Saryan
Maruja Mallo
Maruyama ÅŒkyo
Mary Abbott
Mary Adshead
Mary Agnes Yerkes
Mary Anne Ansley
Mary Audsley
Mary Black
Mary Byfield
Mary C. Davidson
Mary Callery
Mary Cameron
Mary Cassatt
Mary Corkling
Mary Curtis Richardson
Mary Davis Lady Davis
Mary Dignam
Mary Elizabeth Groom
Mary Elizabeth Price
Mary Grant
Mary McCrossan
Mary McEvoy
Mary Moser
Mary Syme Boyd
Maryam Hashemi
Masolino
Master MS
Master of Affligem
Master of Saint Giles
Master of the Bambino Vispo
Master of the Embroidered Foliage
Master of the Legend of Saint Lucy
Matej Sternen
Mathieu Le Nain
Mati Klarwein
Matija Jama
Matsui Fuyoko
Matsumura Goshun
Matsuno Chikanobu
Matthew Smith
Matthias Stom
Matthijs Maris
Matthijs Naiveu
Maud Naftel
Maude Kaufman Eggemeyer
Maurice Boitel
Maurice Braun
Maurice de Vlaminck
Maurice Denis
Maurice Prendergast
Maurice Reymond
Maurice Utrillo
Maurycy Gottlieb
Max Beckmann
Max Buri
Max Dauthendey
Max Ernst
Max Gubler
Max Klinger
Max Liebermann
Max Magnus Norman
Max Pechstein
Max Slevogt
Max Walter Svanberg
Maxfield Parrish
Maximilian Cercha
Maximilien Luce
Maxwell Bates
Maxwell Gordon Lightfoot
May de Montravel Edwardes
May Louise Greville Cooksey
McKendree Long
Mei Qing
Meindert Hobbema
Melchior Broederlam
Melchior d'Hondecoeter
Melchior Lorck
Menez
Meredith Dillman
Meredith Garniss
Mi Fu
Mia Brownell
Miao Fu
Michael Aloysius Sarisky
Michael Ancher
Michael Andrews
Michael Dahl
Michael Flohr
Michael Ford
Michael Goldberg
Michael Gustavius Payne
Michael Leunig
Michael Ray Charles
Michael Sittow
Michael Whelan
Michalis Oikonomou
Michel De Caso
Michel Delacroix
Michel Kikoine
Michelangelo Buonarroti
Michelangelo Unterberger
Michiel Jansz. van Mierevelt
Michiel van Musscher
Mikhail Evstafiev
Mikhail Larionov
Mikhail Lebedev
Mikhail Nesterov
Mikhail Vrubel
Mikhail Yuryevich Lermontov
Mildred Anne Butler
Mildred Eldridge
Millard Sheets
Milton Avery
Milton Menasco
Miltos Manetas
Min Zhen
Minerva J. Chapman
Mirabello Cavalori
Mitchell Johnson
Miyagawa Shunsui
Modest Urgell
Mollie Forestier-Walker
Mona Moore
Morgan Russell
Mori Sosen
Morris Kestelman
Morris Louis
Morris Louis Bernstein
Moses Soyer
Moses van Uyttenbroeck
Mstislav Dobuzhinsky
Muggur
Muirhead Bone
Muqi
Muriel Brandt
Mykola Burachek
Mym Tuma
Myra Landau
N. C. Wyeth
Nabil Kanso
Nadim Karam
Nadir Afonso
Nadya Rusheva
Nagasawa Rosetsu
Naka Bokunen
Nam Gye-u
Nancy Carline
Nancy Graves
Nancy Spero
Naondo Nakamura
Nara Yoshitomo
Narashige Koide
Nassos Daphnis
Natalia Goncharova
Nathan Oliveira
Nathan Wyburn
Nathaniel Hone
Nathaniel Pousette-Dart
Naza
Ndoc Martini
Neil Welliver
Neil Williams
NEVERCREW
Ni Duan
Ni Tian
Ni Yuanlu
Ni Zan
Nicholas Hilliard
Nicholas Marsicano
Nicholas Roerich
Nick Fudge
Nick Gentry
Nicolaes Eliaszoon Pickenoy
Nicolaes Maes
Nicolaes Pieterszoon Berchem
Nicolas Carone
Nicolas Froment
Nicolas Lancret
Nicolas Poussin
Nicolas Toussaint Charlet
Nicolette Macnamara
Nicomachus of Thebes
Niels Lergaard
Niklaus Manuel
Nikola Avramov
Nikolai Alekseyevich Kasatkin
Nikolai Astrup
Nikolai Ge
Nikolai Yaroshenko
Nikolaj Abraham Abildgaard
Nikolay Nikanorovich Dubovskoy
Nils von Dardel
Nina Hamnett
Nina Petrovna Valetova
Nishida Shun'ei
Nishikawa Sukenobu
Noe Canjura
Noel Counihan
Nora Cundell
Norah Neilson Gray
Norma Bull
Norman Garstin
Norman Hepple
Norman Rockwell
Normand Baker
Nyuju Stumpy Brown
Odd Nerdrum
Odhise Paskali
Odilon Redon
Ogata Kenzan
Ohara Koson
Okada Beisanjin
Okada Hanko
Okumura Masanobu
Okumura Togyu
Olaf Gulbransson
Olaf Rude
Oleg Lipchenko
Olive Mudie-Cooke
Oliver Sin
Olivia Peguero
Orazio Gentileschi
Orovida Camille Pissarro
Orshi Drozdik
Oskar Kokoschka
Ossip Zadkine
Osvaldo Romberg
Oswald Achenbach
Oswald Birley
Oswaldo Viteri
Oszkar Tordai Schilling
Otake Chikuha
Otis Kaye
Oton Gliha
Oton IvekoviÄ‡
Ottilie Maclaren Wallace
Otto Abt
Otto Dix
Otto Eckmann
Otto Lange
Otto Marseus van Schrieck
Otto Meyer-Amden
Otto Morach
Otto Piene
Otto Pilny
Otto Placht
Otto Stark
P.C. Skovgaard
Pablo Picasso
Pablo Rey
Pacita Abad
Pamela Ascherson
Pamela Drew
Pamphilus
Pan Tianshou
Pan Yuliang
Paolo Uccello
Paolo Veronese
Parmigianino
Pascal Dagnan-Bouveret
Pat Adams
Patrick Adam
Patrick Caulfield
Patrick Ching
Patrick Hall
Patrick Henry Bruce
Patrick Nagel
Patrick Nasmyth
Patrick Pietropoli
Patrick Pye
Paul Bird
Paul Bodmer
Paul Cadmus
Paul Cornoyer
Paul Delvaux
Paul Dirmeikis
Paul Emmert
Paul Feeley
Paul Gauguin
Paul Georges
Paul Guigou
Paul Gustave Fischer
Paul Harvey
Paul Henry
Paul Howard Manship
Paul Jacob Naftel
Paul Kane
Paul Kelpe
Paul Klee
Paul Lohse
Paul Lucien Dessau
Paul Mavrides
Paul Monnier
Paul Nash
Paul Resika
Paul Signac
Paul Wunderlich
Paula Rego
Paul-Albert Besnard
Paulus Moreelse
Paulus Potter
Pavel Fedotov
Pavel Filonov
Pedro Figari
Pedro Pedraja
Peggy Angus
Peggy Bacon
Penelope Beaton
Penleigh Boyd
Penny Rimbaud
Penry Williams
Per Kirkeby
Per Krohg
Perin del Vaga
Perle Fine
Persis Goodale Thurston Taylor
Peter Alexander Hay
Peter Benjamin Graham
Peter Birmann
Peter Blume
Peter Brandes
Peter Brook
Peter Churcher
Peter Lanyon
Peter Lely
Peter Max
Peter Maxwell Ewart
Peter Mohrbacher
Peter McArdle
Peter Michael
Peter Paul Rubens
Peter Prendergast
Peter S. Pezzati
Peter Scott
Peter Snow
Peter Wtewael
Petr Brandl
Petrus Christus
Petrus Van der Velden
Philip Absolon
Philip de Koninck
Philip Evergood
Philip Guston
Philip Wilson Steer
Philipp Veit
Philips Wouwerman
Phillip Otto Runge
Phyllis Bone
Phyllis Bray
Phyllis Ginger
Pia Fries
Piero della Francesca
Piero di Cosimo
Pierre Adolphe Valette
Pierre Alechinsky
Pierre Auguste Cot
Pierre Bonnard
Pierre Brissaud
Pierre Puvis de Chavannes
Pierre Roland Renoir
Pierre Roy
Pierre Soulages
Pierre Toutain-Dorbec
Pierre-Auguste Renoir
Piet Mondrian
Pieter Aertsen
Pieter Anthonisz. van Groenewegen
Pieter Bruegel the Elder
Pieter Brueghel the Younger
Pieter Claesz
Pieter Codde
Pieter Cornelisz van Slingelandt
Pieter de Bloot
Pieter de Grebber
Pieter de Hooch
Pieter de Ring
Pieter Franciscus Dierckx
Pieter Huys
Pieter Janssens Elinga
Pieter Jansz Quast
Pieter Jansz Saenredam
Pieter Jansz van Asch
Pieter Lastman
Pieter Mulier II
Pieter Mulier the Elder
Pieter van Anraedt
Pieter van der Werff
Pieter van Laer
Pietro da Cortona
Pietro Faccini
Pietro Longhi
Pietro Lorenzetti
Pietro Perugino
Pietro Testa
Pinchus Kremegne
Pinturicchio
Pisanello
Pogus Caesar
Pompeo Batoni
Porfirio DiDonna
Primrose Pitman
Prince Hoare
Prudence Heward
Pu Hua
Puru
Qi Baishi
Qian Du
Qian Gu
Qian Xuan
Qiu Ying
Qu Leilei
Quentin Matsys
Quirijn van Brekelenkam
Quirizio di Giovanni da Murano
R. B. Kitaj
R. R. McIan
Rachel Reckitt
Rachel Ruysch
Rackstraw Downes
Radi Nedelchev
Rafael Ritz
Rafail Levitsky
Rainer Maria Latzke
Raja Ravi Varma
Rajesh Soni
Rajmund Kanelba
Ralph Albert Blakelock
Ralph Burke Tyree
Ralph Earl
Ram Chandra Shukla
Ramon Pichot
Randall Schmit
Randolph Schwabe
Raoul De Keyser
Raoul Dufy
Raoul Ubac
Raphael
Raphael Kirchner
Raphael Soyer
Raphaelle Peale
Ras Akyem
Ray Crooke
Ray Howard-Jones
Ray Parker
Raymond Coxon
Raymond Duchamp-Villon
Raymond Han
Raymond Normand
Raymond Saunders
Raymond Teague Cowern
Reinier Nooms
Relja Penezic
Rembrandt
Rembrandt Peale
Remedios Varo
Rebecca Guay
Ren Bonian
Ren Renfa
Ren Xiong
Ren Xun
Reuben Tam
Reynolds Beal
Rhea Carmi
Riad Beyrouti
Richard Anuszkiewicz
Richard Artschwager
Richard Carline
Richard Dadd
Richard Demarco
Richard Diebenkorn
Richard Estes
Richard Gerstl
Richard Gordon Kendall
Richard Gruelle
Richard Hamilton
Richard Mayhew
Richard Mortensen
Richard Parkes Bonington
Richard Pionk
Richard Pousette-Dart
Richard Schmid
Richard Sedlon
Richard T. Scott
Richard Wilson
Rick Amor
Ridolfo Ghirlandaio
Rinaldo Cuneo
Rita Angus
Riza Abbasi
Roar Kjernstad
Robert Adamson
Robert Alwyn Hughes
Robert Antoine Pinchon
Robert Bain
Robert Ballagh
Robert Bateman
Robert Beauchamp
Robert Bechtle
Robert Bery
Robert Bevan
Robert Brackman
Robert Brough
Robert Bryden
Robert C. Barnfield
Robert Campin
Robert Colescott
Robert Colquhoun
Robert Combas
Robert Crozier
Robert Delaunay
Robert Dickerson
Robert Edmonstone
Robert Falk
Robert Feke
Robert Freebairn
Robert Gavin
Robert Goodnough
Robert Griffier
Robert Henderson Blyth
Robert Henri
Robert J. Brawley
Robert Jacobsen
Robert Koehler
Robert Lee Eskridge
Robert Lenkiewicz
Robert Macaulay Stevenson
Robert MacBryde
Robert Medley
Robert Motherwell
Robert Noble
Robert Rauschenberg
Robert Reid
Robert Richenburg
Robert Scott Lauder
Robert Sivell
Robert Storm Petersen
Robert Thomas
Robert Walker Macbeth
Robert Weir Allan
Robert William Vonnoh
Roberto Matta
Roberto Parada
Robin Guthrie
Rockwell Kent
Rodney Joseph Burn
Rodolfo Amoedo
Rodolfo Escalera
Rodolfo Morales
Rodolphe Wytsman
Roelant Savery
Roelof van Vries
Roger Cecil
Roger Swainston
Roger Wilson Dennis
Rogier van der Weyden
Rolf Iseli
Romaine Brooks
Roman Bezpalkiv
Romano Vio
Romare Bearden
Ron English
Ronald Davis
Ronald Rae
Ronnie Landfield
Rory McEwen
Rosa Bonheur
Rosalie Emslie
Rose Henriques
Rose Maynard Barton
Rosemary Allan
Ross Bleckner
Rowena Meeks Abdy
Roy Dalgarno
Roy De Maistre
Roy Lichtenstein
Roy Newell
Roy Petley
Rubens Peale
Rudolf Hausner
Rudolf Koller
Rudolf Schlichter
Rudolf von Alt
Rudolph F. Ingerle
Rufino Tamayo
Rupert Bunny
Rupert Shephard
Russell Chatham
Russell Drysdale
Ruth Abrahams
Ruth Abrams
Ruth Brandt
Ruth Collet
Ruth Hollingsworth
Ruth Simpson
Ruud Janssen
Ryuzaburo Umehara
S J "Lamorna" Birch
Sadamichi Hirasawa
Sadao Watanabe
Sally Haley
Salomon de Bray
Salomon Koninck
Salomon van Ruysdael
Salvador Dali
Sam Black
Sam Charles
Sam Dillemans
Sam Francis
Sam Havadtoy
Samuel Birmann
Samuel Colman
Samuel Dirksz van Hoogstraten
Samuel F. B. Morse
Samuel Hieronymus Grimm
Samuel Peploe
Samuel Prout
Samuel Scott
Samuel Shelley
Samuel Washington Weis
Sandro Botticelli
Sanford Robinson Gifford
Sara Saftleven
Sarah Gough Adamson
Sarah Louisa Kilpack
Sardar Sobha Singh
Sargent Johnson
Sasha Putrya
Satake Yoshiatsu
Saul Yaffie
Sava Å umanoviÄ‡
Schelte a Bolswert
Sean Scully
Sebastian Spreng
Sebastian Vrancx
Sebastiano Ricci
Sengai
Serafino De Tivoli
Serge Poliakoff
Serge Sudeikin
Sergei Sviatchenko
Sergio Burzi
Serhii Vasylkivsky
Shang Xi
Shani Rhys James
Shao Mi
Sheila McClean
Sheila Mullen
Shen Che-Tsai
Shen Quan
Shen Shichong
Shen Zhou
Sheng Mao
Sheng Maoye
Shi Rui
Shi Zhonggui
Shibata Zeshin
Shigeru Aoki
Shin Saimdang
Shin Yun-bok
Shingei
Shinoda Toko
Shirley Teed
Shitao
Shukei Sesson
Shunbaisai Hokuei
Sidney Nolan
Sidney Simon
Sigmar Polke
Sigmund Freudenberger
Sigurd Swane
Silvestro Lega
Silvia Dimitrova
Sim Sa-jeong
Simon de Vlieger
Simon Gaon
Simon Marmion
Simon Ushakov
Simon Vouet
Simone Martini
Sin Wi
Siona Shimshi
Sir Alfred Munnings
Sir Jacob Epstein
Sir William Orpen
Sir William Russell Flint
Sofonisba Anguissola
Sohrab Sepehri
Solomon Gessner
Soma Orlai Petrich
Song Maojin
Song Xu
Sonia Delaunay-Terk
Sophia Beale
Sophie Gengembre Anderson
Sophie Pemberton
Sophie Taeuber-Arp
Spencer Gore
Stan Stokes
Stanhope Forbes
Stanislav Zhukovsky
Stanislaw Samostrzelnik
Stanley Bahe
Stanley Matthew Mitruk
Stanley Spencer
Stanley Twardowicz
Stanton Macdonald-Wright
Stefan Gierowski
Stefan Lochner
Stella Schmolle
Stephen Bone
Stephen Gilbert
Stephen Greene
Stephen Little
Stephen Pace
Steven Campbell
Stokely Webster
Stuart Davis
Sudip Roy
Sugimura Jihei
Sun Junze
Sun Kehong
Sun Long
Susan Crile
Susan Weil
Suzanne Duchamp-Crotti
Suzanne Valadon
Suzuki Harunobu
Suzy Rice
Sven Erixson
Svend Rasmussen Svendsen
Svetoslav Roerich
Syd Barrett
Syd Mead
Sydney Carline
Sylvester Shchedrin
Sylvia Molloy
Sylvia Sleigh
Sylvia Snowden
Sylvia Wishart
Szymon Czechowicz
T. C. Steele
T. K. Padmini
Tadanori Yokoo
Tadashi Nakayama
Tadashige Ono
Taddeo Gaddi
Tadeusz Ajdukiewicz
Tadeusz Brzozowski
Tadeusz Dominik
Tadeusz Kantor
Tadeusz Makowski
Tahir Salahov
Takahashi Yuichi
Takashi Murakami
Takehisa Yumeji
Tamara de Lempicka
Tamas Galambos
Tan Ting-pho
Tanaka Isson
Tang Di
Tang Yifen
Tang Yin
Tanomura Chikuden
Taro Yamamoto
Tarsila do Amaral
Telemaco Signorini
Teobaldo Nina Mamani
Teresa Copnall
Terrell James
Terry Marks
Terry Morris
The Mazeking
Theo van Doesburg
Theodor Philipsen
Theodore Earl Butler
Theodore Major
Theodore Robinson
Theophanes the Greek
Thierry Bisch
Thomas Aquinas Daly
Thomas Baines
Thomas Barker
Thomas Bock
Thomas Campbell
Thomas Cantrell Dugdale
Thomas Carr
Thomas Cole
Thomas Cornell
Thomas Corsan Morton
Thomas Couture
Thomas de Keyser
Thomas Dewing
Thomas Doughty
Thomas Eakins
Thomas Frederick Worrall
Thomas Furlong
Thomas Gainsborough
Thomas Gambier Parry
Thomas Hart Benton
Thomas Hill
Thomas Kinkade
Thomas Lawrence
Thomas Mann Baynes
Thomas Millie Dow
Thomas Moran
Thomas Rowlandson
Thomas Stothard
Thomas Stuart Burnett
Thomas Symington Halliday
Thomas Tudor
Thomas Wijck
Thornton Willis
Thyrza Anne Leyshon
Tibor Czorba
Tim Biskup
Tina Blondell
Tintoretto
Titian
Titian Peale
Tivadar Alconiere
Tobias Stimmer
Tom Carapic
Tom Gourdie
Tom Palin
Tom Phillips
Tom Roberts
Tom Scott RSA
Tom Thomson
Tom Wesselmann
Tomioka Tessai
Tommaso Dolabella
Tommaso Masaccio
Tommaso Redi
Tony Tuckson
Torii Kiyomasu
Torii Kiyomasu II
Torii Kiyomitsu
Torii Kiyomoto
Torii Kiyonaga
Torii Kiyonobu I
Toriyama Sekien
Toros Roslin
Tosa Mitsunobu
Tosa Mitsuoki
Toss Woollaston
Totte Mannes
Toyen
Toyohara Chikanobu
Toyohara Kunichika
Tracey Emin
Tracey Moberly
Tracy Harris
Tsuchida Bakusen
Tsuguharu Foujita
Tsukioka Yoshitoshi
Tsuruko Yamazaki
Tuvia Beeri
Ugo Nespolo
Ulrich Leman
Ulrika Pasch
Umberto Boccioni
Unkoku Togan
Urakusai Nagahide
Ursula Edgcumbe
Ursula Wood
Utagawa Hirokage
Utagawa Hiroshige II
Utagawa Kunimasa
Utagawa Kunimasu
Utagawa Kunisada
Utagawa Kunisada II
Utagawa Kunisada III
Utagawa Kuniyoshi
Utagawa Toyoharu
Utagawa Toyokuni
Utagawa Yoshiiku
Utagawa Yoshitaki
Utagawa Yoshitora
Utagawa Yoshitsuya
Uwe Wittwer
Vadym Meller
Valentin Aleksandrovich Serov
Valerie Petts
Vanessa Beecroft
Vanessa Bell
Vasile Hutopila
Vasily Andreevich Tropinin
Vasily Perov
Vasily Polenov
Vasily Surikov
Vasily Vereshchagin
Vassily Maximov
Veno Pilon
Vicente Juan Masip
Victor Brauner
Victor Meirelles
Victor Noble Rainbird
Victor Ngai
Victor Surbek
Victor Vasarely
Victor Wang
Victorine Foot
Vija Celmins
Viktor de Jeney
Viktor Oliva
Viktor Vasnetsov
Vilhelm Bissen
Vilhelm Kyhn
Villard de Honnecourt
Vincent Evans
Vincent Pepi
Vincent van Gogh
Vincenzo Cabianca
Vincenzo Irolli
Viola Paterson
Violet Fuller
Vito D'Ancona
Vittore Carpaccio
Vivien Blackett
Vladimir Baranov-Rossine
Vladimir Borovikovsky
Vladimir Makovsky
Vladimir Novak
Vladimir Tatlin
Vladimir Tretchikoff
Vlady Kibalchich Russakov
Vlaho Bukovac
Vytautas Kasiulis
W. Lindsay Cable
Walasse Ting
Waldo Peirce
Walter Bayes
Walter Emerson Baum
Walter Haskell Hinton
Walter Leighton Clark
Walter Osborne
Walter Sickert
Walter Stuempfig
Walther Jervolino
Wang Duo
Wang E
Wang Fu
Wang Guxiang
Wang Hui
Wang Jian
Wang Meng
Wang Mian
Wang Shimin
Wang Shishen
Wang Wei
Wang Wu
Wang Ximeng
Wang Yi
Wang Yuan
Wang Yuanqi
Wang Zhenpeng
Wang Zhongyu
Warren Eugene Brandon
Washington Allston
Wassily Kandinsky
Watanabe Kazan
Wayne Thiebaud
Wen Boren
Wen Jia
Wen Tong
Wen Zhengming
Wen Zhenheng
Wenceslas Hollar
Wenzel Lorenz Reiner
Werner Andermatt
Werner Gutzeit
Wifredo Lam
Wilhelm Bendz
Wilhelm Freddie
Wilhelm Heise
Wilhelm Leibl
Wilhelm Marstrand
Wilhelm Sasnal
Wilhelm Schnarrenberger
Wilhelmina Weber Furlong
Willard Metcalf
Willem Claeszoon Heda
Willem Cornelisz Duyster
Willem de Kooning
Willem de Poorter
Willem Drost
Willem Hondius
Willem Jacobsz Delff
Willem Kalf
Willem Labeij
Willem Maris
Willem Pieterszoon Buytewech
Willem van Aelst
Willem van de Velde the Elder
Willem van de Velde the Younger
Willem van der Vliet
Willem van Mieris
William Berra
William Birnie Rhind
William Blake
William Blake Richmond
William Bliss Baker
William Bonnar
William Brodie
William Coldstream
William Congdon
William Conor
William Crosbie
William Crozier
William Dargie
William Didier-Pouget
William Dobell
William Dobson
William Dring
William Edouard Scott
William Edward West
William Etty
William Fettes Douglas
William Forsyth
William Gear
William Geissler
William George Gillies
William Gouw Ferguson
William Grant Stevenson
William H. Mosby
William Harnett
William Hoare
William Hogarth
William Holman Hunt
William Holmes Sullivan
William Home Lizars
William Jacob Baer
William Jennys
William John Thomson
William Langson Lathrop
William MacTaggart
William McGregor Paxton
William McTaggart
William Merritt Chase
William Miller
William Mossman
William Mustart Lockhart
William Nicholson
William Powhida
William Quiller Orchardson
William Simpson
William Stott
William Thon
William Trost Richards
William Turner of Oxford
William Twigg-Smith
William Woodward
William Yellowlees
William York Macgregor
William Zorach
William-Adolphe Bouguereau
Willy Bo Richardson
Willy Finch
Wilson Irvine
Winslow Homer
Winston Churchill
Witold Wojtkiewicz
Wladyslaw Strzeminski
Wlastimil Hofman
Wlodzimierz Tetmajer
Wojciech Gerson
Wojciech Korneli Stattler
Wojciech Kossak
Wojciech Weiss
Wolf Huber
Wolf Kahn
Wolf Vostell
Wolfgang Zelmer
Wouter Pietersz Crabeth
Wu Bin
Wu Changshuo
Wu Daozi
Wu Guanzhong
Wu Hong
Wu Li
Wu Shixian
Wu Wei
Wu Zhen
Wu Zuoren
Wuzhun Shifan
Wyke Bayliss
Wyndham Lewis
Xanthus Russell Smith
Xavier Blum Pinto
Xi Gang
Xia Chang
Xia Gui
Xia Shuwen
Xia Yong
Xiang Shengmo
Xiao Yuncong
Xie He
Xie Huan
Xie Shichen
Xie Sun
Xu Beihong
Xu Wei
Xu Xi
Xuande Emperor
Xul Solar
Yaacov Agam
Yamagata Hiro
Yamaguchi Kayo
Yan Hui
Yan Liben
Yanagawa Nobusada
Yanagawa Shigenobu
Yang Borun
Yang Buzhi
Yang Jin
Yang Weizhen
Yao Tingmei
Yasuo Kuniyoshi
Yasushi Sugiyama
Yayoi Kusama
Ye Xin
Yehia Dessouki
Yi Inmun
Yi Insang
Yi Jaegwan
Yi Yuanji
Yokoyama Taikan
Yosa Buson
Yoshida Hanbei
Yoshihiko Wada
Yoshio Markino
Yoshitoshi Mori
Youri Messen-Jaschin
Youssef Howayek
Yu Zhiding
Yuan Jiang
Yuan Yao
Yue Minjun
Yuki Ogura
Yukihiko Yasuda
Yun Du-seo
Yun Shouping
Yun-Fei Ji
Yves Klein
Yves Tanguy
Yvonne Jacquette
Zahari Zograf
Zao Wou-Ki
Zbigniew Nowosadzki
Zdzislaw Beksinski
Zelma Blakely
Zeng Jing
Zha Shibiao
Zhan Ziqian
Zhang Han
Zhang Lu
Zhang Sengyao
Zhang Shengwen
Zhang Shunzi
Zhang Shuqi
Zhang Wo
Zhang Xiaogang
Zhang Xuan
Zhang Yan
Zhang Yin
Zhang Zeduan
Zhang Zongcang
Zhao Mengfu
Zhao Yong
Zhao Yuan
Zhao Zhiqian
Zhao Zuo
Zheng Xie
Zhou Chen
Zhou Fang
Zhou Jichang
Zhou Shuxi
Zhou Wenjing
Zhu Da
Zhu Derun
Zinaida Serebriakova
Zlatyu Boyadzhiev
Zofia Stryjenska
Zou Yigui
Zou Zhe
Zsolt Bodoni
Zvest Apollonio
Zygmunt Vogel
Zygmunt Waliszewski


text:
sci-fi
fantasy
dark fantasy
high fantasy
art deco
steampunk
cyberpunk
dieselpunk
film noir
mid-century
ancient
historic
victorian
medieval
renaissance
vintage
weird west
synthwave
gothic
forestpunk


text:
{
    //"guildid1":"channelid1",
    //"guildid2":"channelid2"
}


text:
// simple cli tool to search and download from civitai
// may eventually become a bot tool to auto install for admins, or a tool to reverse engineer a hash into the required trigger words
// npm install axios colors string-strip-html
// prereqs already in bot code
const axios = require('axios')
const log = console.log.bind(console)
var colors = require('colors')

// not included yet but should be
const {stripHtml} = require('string-strip-html')

// Civit AI api ref https://github.com/civitai/civitai/wiki/REST-API-Reference
class civitAi {
    constructor(){this.api='https://civitai.com/api/v1/'}
    async searchModel(query){
        await axios.get(this.api+'/models?query='+query+'&limit=20')
            .then(res=>{this.formatResults(res.data.items,res.data.metadata)})
            .catch(err=>{log(err)})
    }
    async searchHash(hash){
        axios.get(this.api+'/model-versions/by-hash/'+hash)
            .then(res=>{this.formatResults.ModelVersion(res.data)})
            .catch(err=>{log(err)})
    }
    formatResults(results,meta){
        if(meta&&meta.totalPages>1)log('Results:'+meta.totalItems+',page:'+meta.currentPage+' of '+meta.totalPages)
        log(results.length+' results')
        results.forEach(r=>{
            log(r.name.bgBrightGreen.black+' created by '+r.creator.username+' ('+r.type+')')
            if(r.description)log(stripHtml(r.description).result)
            log('tagged with: '.bgMagenta.black+r.tags.join(','))
            if(r.nsfw)log('nsfw: '.bgRed.black+r.nsfw)
            log(('id: '+r.id+', stats: '+r.stats.downloadCount+' downloads, '+r.stats.favoriteCount+' favorites, '+r.stats.commentCount+' comments, '+r.stats.rating+' rating from '+r.stats.ratingCount+' reviewers').dim)
            if(r.modelVersions.length>0)r.modelVersions.forEach(v=>{this.formatResultsModelVersion(v)})
            log('\n')
        })
    }
    formatResultsModelVersion(v){
        log(('version: '+v.name+', id:'+v.id+', created: '+v.createdAt+', updated:'+v.updatedAt).bgCyan.black)
        if(v.trainedWords.length>0){log('Trigger words: '.bgWhite.black+v.trainedWords.join(','))}
        if(v.files.length>0)this.formatResultsModelVersionFiles(v.files)
    }
    formatResultsModelVersionFiles(files){
        files.forEach(f=>{
            log('Download name: '.bgBrightBlue.black+f.name+', type: '+f.type+', fileSize: '+(f.sizeKB/1000).toFixed(2)+' MB')
            log('Download url: '.bgBrightBlue.black+f.downloadUrl)
        })
    }
}
const cai=new civitAi()
if(process.argv.length===2) cai.searchModel('anonymous')
if(process.argv.length===3) cai.searchModel(process.argv[2])
if(process.argv.length===4){
    if (process.argv[3] === 'name') cai.searchModel(process.argv[4])
    if (process.argv[3] === 'hash') cai.searchHash(process.argv[4])
}
//civitAiModelSearchByHash('a87fd7da')
// !civitai images search "query"


text:
#!/bin/sh
#
# /etc/init.d/chat
#
#
# chkconfig:   - 85 15
#

### BEGIN INIT INFO
# Provides:          chat
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start chat at boot time.
# Description:       Control chat.
### END INIT INFO

# Source function library.
. /etc/init.d/functions

#工作目录
workPath=$(cd $(dirname $0)/; pwd)

bin=$workPath/main
pidFile=$workPath/pid
logFile=$workPath/info.log

function check_pid() {
    if [ -f $pidFile ];then
        pid=`cat $pidFile`
        if [ -n $pid ]; then
            running=`ps -p $pid|grep -v "PID TTY" |wc -l`
            return $running
        fi
    fi
    return 0
}

function start() {
    check_pid
    running=$?
    if [ $running -gt 0 ];then
        echo -n "It's now is running already, pid="
        cat $pidFile
        return 1
    fi

    nohup $bin >> $logFile 2>&1 &
    echo $! > $pidFile
    echo "It's started..., pid=$!"
}

function stop() {
    check_pid
    running=$?
    if [ $running -gt 0 ];then
        kill $pid
        echo "It's stoped..."
    else
        echo "It's not running!"
    fi
}

function restart() {
    stop
    sleep 1
    start
}

function status() {
    check_pid
    running=$?
    if [ $running -gt 0 ];then
        echo -n "It's running. PID is "
	cat $pidFile
    else
        echo "It's stoped"
    fi
}

function help() {
    echo "$0 start|stop|restart|status"
}

function pid() {
    cat $pidFile
}

if [ "$1" == "" ]; then
    help
elif [ "$1" == "stop" ];then
    stop
elif [ "$1" == "start" ];then
    start
elif [ "$1" == "restart" ];then
    restart
elif [ "$1" == "status" ];then
    status
elif [ "$1" == "pid" ];then
    pid
else
    help
fi

repo_name: yanjunhui/chat

repo_language: Go

mime_type: text/plain


text:
package main

import (
	"github.com/yanjunhui/chat/crop"
	"log"
)

//content := "[P0][OK][192.168.11.26_ofmon][][【critical】与主mysql同步延迟超过10s！ all(#3) seconds_behind_master port=3306 0>10][O1 2017-04-17 08:55:00]"

var (
	//微信企业号配置相关

	//corpID 微信企业号CropID
	corpID = "wwc84919127e378d9a"

	//EncodingAESKey 微信企业号加密Key
	EncodingAESKey = "P8uAU2eYOcCtXtrRCNv3iKxzc5HW6GcKI2Ri1slR3Ih"

	client *crop.Client
)

func init() {
	client = crop.New(corpID, 1000008, "Hw7Cw_xxqU78NPC9vfRhC0VQ9oBDtYO52W-4T8wt_3A")

}

func main() {
	msg := crop.Message{}
	msg.ToUser = "yanjunhui"
	msg.MsgType = "text"

	msg.Text = crop.Content{Content: "测试"}
	err := client.Send(msg)
	if err != nil {
		log.Println(err)
	}

	/*
	for i := 0; i <= 60 ; i++{
		msg.Text = crop.Content{Content: fmt.Sprintf("%d", i)}
		err := client.Send(msg)
		if err != nil {
			log.Println(err)
		}
	}
	*/
}


text:
# 企业微信号

---

## 一.申请企业号

1. 以个人邮箱申请就可以, 不通过企业认证的话,有200人的限制,一般足够用了

## 二.获取对接权限
1. 获取corpid

  * 登录后,我的企业 ---> 企业信息  --> CorpID

  * 将 CorpID 配置到配置文件 config.conf 内 的 CorpID

   ![](images/CropID.png)

2. 开启回调模式获取key

   * 登录后,顶部菜单[企业应用] ---> 添加应用

   * 进入新添加的应用

   * 拿到 AgentId 和 Secret

    ![](images/AgentId.png)

3. 使用微信关注企业号才可以从微信收到信息,否则只能从微信企业号 APP 中收到信息

	![](images/关注.png)

## 完成以上步骤后, 即可使用OpenFalcon发送信息,发送格式与 sender 符合:

    tos     微信用户名
    content 信息内容

## OpenFalcon+ 配置:

### 在falcon+的 im 配置, 注意是微信企业号内的用户名称, 而不是用户个人的个人微信号

![](images/im.png)

修改配置文件 https://github.com/open-falcon/falcon-plus/blob/master/modules/alarm/cfg.example.json#L25

```
"api": {
	"im": "http://yanjunhui.com:4567/send",
        "sms": "http://127.0.0.1:10086/sms",
        "mail": "http://127.0.0.1:10086/mail",
        "dashboard": "http://127.0.0.1:8081",
        "plus_api":"http://127.0.0.1:8080",
        "plus_api_token": "used-by-alarm-in-server-side-and-disabled-by-set-to-blank"
    },
```

### 使用
> 1. clone 文件 `git clone https://www.github.com/yanjunhui/chat.git`
> 2. 打开目录 `cd chat`
> 3. 启动 `./control.sh start`
> 4. 停止 `./control.sh stop`
> 5. 重启 `./control.sh restart`
> 6. 状态 `./control.sh status`


text:
#http 服务端口
[http]
#默认为0.0.0.0, 可根据需要修改成自己的IP或者想使用本地地址修改为: 127.0.0.1
address = 0.0.0.0
port = 4567

#微信接口信息
[weixin]
CorpID = ww6424d33203e90e20
AgentId = 1000002
Secret = FoST_8RQSTjZwH_CN3aQW6UKksjCSI9mizFqD7HKhrw


text:
package crop

import (
	"bytes"
	"crypto/tls"
	"encoding/json"
	"errors"
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
	"time"
)

// Err 微信返回错误
type Err struct {
	ErrCode int    `json:"errcode"`
	ErrMsg  string `json:"errmsg"`
}

//AccessToken 微信企业号请求Token
type AccessToken struct {
	AccessToken string `json:"access_token"`
	ExpiresIn   int    `json:"expires_in"`
	Err
	ExpiresInTime time.Time
}

//Client 微信企业号应用配置信息
type Client struct {
	CropID      string
	AgentID     int
	AgentSecret string
	Token       AccessToken
}

//Result 发送消息返回结果
type Result struct {
	Err
	InvalidUser  string `json:"invaliduser"`
	InvalidParty string `json:"infvalidparty"`
	InvalidTag   string `json:"invalidtag"`
}

//Content 文本消息内容
type Content struct {
	Content string `json:"content"`
}

//Message 消息主体参数
type Message struct {
	ToUser  string  `json:"touser"`
	ToParty string  `json:"toparty"`
	ToTag   string  `json:"totag"`
	MsgType string  `json:"msgtype"`
	AgentID int     `json:"agentid"`
	Text    Content `json:"text"`
}

//New 实例化微信企业号应用
func New(cropID string, agentID int, AgentSecret string) *Client {

	c := new(Client)
	c.CropID = cropID
	c.AgentID = agentID
	c.AgentSecret = AgentSecret
	return c
}

//Send 发送信息
func (c *Client) Send(msg Message) error {

	c.GetAccessToken()

	msg.AgentID = c.AgentID
	url := "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + c.Token.AccessToken

	resultByte, err := JSONPost(url, msg)
	if err != nil {
		err = errors.New("请求微信接口失败: " + err.Error())
		log.Println(err)
		return err
	}

	result := Result{}
	err = json.Unmarshal(resultByte, &result)
	if err != nil {
		err = errors.New("解析微信接口返回数据失败: " + err.Error())
		log.Println(err)
		return err
	}

	if result.ErrCode != 0 {
		err = errors.New("发送消息失败: " + result.ErrMsg)
		log.Println(err)

	}

	if result.InvalidUser != "" || result.InvalidTag != "" || result.InvalidParty != "" {
		err = fmt.Errorf("消息发送成功, 但是有部分目标无法送达: %s%s%s", result.InvalidUser, result.InvalidParty, result.InvalidTag)
		log.Println(err)
	}

	return err
}

//GetAccessToken 获取回话token
func (c *Client) GetAccessToken() {
	var err error
	if c.Token.AccessToken == "" || c.Token.ExpiresInTime.Before(time.Now()) {
		c.Token, err = getAccessTokenFromWeixin(c.CropID, c.AgentSecret)
		if err != nil {
			log.Println("获取token失败: ", err)
			return
		}
		c.Token.ExpiresInTime = time.Now().Add(time.Duration(c.Token.ExpiresIn-1000) * time.Second)
	}
}

//从微信服务器获取token
func getAccessTokenFromWeixin(cropID, secret string) (TokenSession AccessToken, err error) {
	WxAccessTokenURL := "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + cropID + "&corpsecret=" + secret

	tr := &http.Transport{
		TLSClientConfig:    &tls.Config{InsecureSkipVerify: true},
		DisableCompression: true,
	}
	client := &http.Client{Transport: tr}
	result, err := client.Get(WxAccessTokenURL)
	if err != nil {
		return TokenSession, err
	}

	res, err := ioutil.ReadAll(result.Body)
	if err != nil {
		return TokenSession, err
	}

	defer result.Body.Close()

	err = json.Unmarshal(res, &TokenSession)
	if err != nil {
		return TokenSession, err
	}

	if TokenSession.ExpiresIn == 0 || TokenSession.AccessToken == "" {
		err = fmt.Errorf("获取微信错误代码: %v, 错误信息: %v", TokenSession.ErrCode, TokenSession.ErrMsg)
		return TokenSession, err
	}

	return TokenSession, err
}

//JSONPost Post请求json数据
func JSONPost(url string, data interface{}) ([]byte, error) {
	jsonBody, err := encodeJSON(data)
	if err != nil {
		return nil, err
	}
	r, err := http.Post(url, "application/json;charset=utf-8", bytes.NewReader(jsonBody))
	if err != nil {
		return nil, err
	}
	defer r.Body.Close()

	body, err := ioutil.ReadAll(r.Body)
	if err != nil {
		return nil, err
	}
	return body, err
}

func encodeJSON(v interface{}) ([]byte, error) {
	var buf bytes.Buffer
	encoder := json.NewEncoder(&buf)
	encoder.SetEscapeHTML(false)
	if err := encoder.Encode(v); err != nil {
		return nil, err
	}
	return buf.Bytes(), nil
}


text:
// minimal SVD implementation for calculating feature points from hermite data
// public domain

typedef float mat3x3[3][3];
typedef float mat3x3_tri[6];

#define SVD_NUM_SWEEPS 5

// SVD
////////////////////////////////////////////////////////////////////////////////

#define PSUEDO_INVERSE_THRESHOLD (0.1f)

void svd_mul_matrix_vec(float4* result, mat3x3 a, float4 b)
{
	(*result).x = dot((float4)(a[0][0], a[0][1], a[0][2], 0.f), b);
	(*result).y = dot((float4)(a[1][0], a[1][1], a[1][2], 0.f), b);
	(*result).z = dot((float4)(a[2][0], a[2][1], a[2][2], 0.f), b);
	(*result).w = 0.f;
}

void givens_coeffs_sym(float a_pp, float a_pq, float a_qq, float* c, float* s) {
	if (a_pq == 0.f) {
		*c = 1.f;
		*s = 0.f;
		return;
	}
	float tau = (a_qq - a_pp) / (2.f * a_pq);
	float stt = sqrt(1.f + tau * tau);
	float tan = 1.f / ((tau >= 0.f) ? (tau + stt) : (tau - stt));
	*c = rsqrt(1.f + tan * tan);
	*s = tan * (*c);
}

void svd_rotate_xy(float* x, float* y, float c, float s) {
	float u = *x; float v = *y;
	*x = c * u - s * v;
	*y = s * u + c * v;
}

void svd_rotateq_xy(float* x, float* y, float* a, float c, float s) {
	float cc = c * c; float ss = s * s;
	float mx = 2.0 * c * s * (*a);
	float u = *x; float v = *y;
	*x = cc * u - mx + ss * v;
	*y = ss * u + mx + cc * v;
}

void svd_rotate(mat3x3 vtav, mat3x3 v, int a, int b) {
	if (vtav[a][b] == 0.0) return;

	float c, s;
	givens_coeffs_sym(vtav[a][a], vtav[a][b], vtav[b][b], &c, &s);

	float x, y, z;
	x = vtav[a][a]; y = vtav[b][b]; z = vtav[a][b];
	svd_rotateq_xy(&x,&y,&z,c,s);
	vtav[a][a] = x; vtav[b][b] = y; vtav[a][b] = z;

	x = vtav[0][3-b]; y = vtav[1-a][2];
	svd_rotate_xy(&x, &y, c, s);
	vtav[0][3-b] = x; vtav[1-a][2] = y;

	vtav[a][b] = 0.0;

	x = v[0][a]; y = v[0][b];
	svd_rotate_xy(&x, &y, c, s);
	v[0][a] = x; v[0][b] = y;

	x = v[1][a]; y = v[1][b];
	svd_rotate_xy(&x, &y, c, s);
	v[1][a] = x; v[1][b] = y;

	x = v[2][a]; y = v[2][b];
	svd_rotate_xy(&x, &y, c, s);
	v[2][a] = x; v[2][b] = y;
}

void svd_solve_sym(mat3x3_tri a, float4* sigma, mat3x3 v) {
	// assuming that A is symmetric: can optimize all operations for
	// the upper right triagonal
	mat3x3 vtav;
	vtav[0][0] = a[0]; vtav[0][1] = a[1]; vtav[0][2] = a[2];
	vtav[1][0] = 0.f;  vtav[1][1] = a[3]; vtav[1][2] = a[4];
	vtav[2][0] = 0.f;  vtav[2][1] = 0.f;  vtav[2][2] = a[5];

	// assuming V is identity: you can also pass a matrix the rotations
	// should be applied to. (U is not computed)
	for (int i = 0; i < SVD_NUM_SWEEPS; ++i) {
		svd_rotate(vtav, v, 0, 1);
		svd_rotate(vtav, v, 0, 2);
		svd_rotate(vtav, v, 1, 2);
	}

	*sigma = (float4)(vtav[0][0], vtav[1][1], vtav[2][2], 0.f);
}

float svd_invdet(float x, float tol) {
	return (fabs(x) < tol || fabs(1.0 / x) < tol) ? 0.0 : (1.0 / x);
}

void svd_pseudoinverse(mat3x3 o, float4 sigma, mat3x3 v) {
	float d0 = svd_invdet(sigma.x, PSUEDO_INVERSE_THRESHOLD);
	float d1 = svd_invdet(sigma.y, PSUEDO_INVERSE_THRESHOLD);
	float d2 = svd_invdet(sigma.z, PSUEDO_INVERSE_THRESHOLD);

	o[0][0] = v[0][0] * d0 * v[0][0] + v[0][1] * d1 * v[0][1] + v[0][2] * d2 * v[0][2];
	o[0][1] = v[0][0] * d0 * v[1][0] + v[0][1] * d1 * v[1][1] + v[0][2] * d2 * v[1][2];
	o[0][2] = v[0][0] * d0 * v[2][0] + v[0][1] * d1 * v[2][1] + v[0][2] * d2 * v[2][2];
	o[1][0] = v[1][0] * d0 * v[0][0] + v[1][1] * d1 * v[0][1] + v[1][2] * d2 * v[0][2];
	o[1][1] = v[1][0] * d0 * v[1][0] + v[1][1] * d1 * v[1][1] + v[1][2] * d2 * v[1][2];
	o[1][2] = v[1][0] * d0 * v[2][0] + v[1][1] * d1 * v[2][1] + v[1][2] * d2 * v[2][2];
	o[2][0] = v[2][0] * d0 * v[0][0] + v[2][1] * d1 * v[0][1] + v[2][2] * d2 * v[0][2];
	o[2][1] = v[2][0] * d0 * v[1][0] + v[2][1] * d1 * v[1][1] + v[2][2] * d2 * v[1][2];
	o[2][2] = v[2][0] * d0 * v[2][0] + v[2][1] * d1 * v[2][1] + v[2][2] * d2 * v[2][2];
}

void svd_solve_ATA_ATb(
	mat3x3_tri ATA,
	float4 ATb,
	float4* x)
{
	mat3x3 V;
	V[0][0] = 1.f; V[0][1] = 0.f; V[0][2] = 0.f;
	V[1][0] = 0.f; V[1][1] = 1.f; V[1][2] = 0.f;
	V[2][0] = 0.f; V[2][1] = 0.f; V[2][2] = 1.f;

	float4 sigma = { 0.f, 0.f, 0.f, 0.f };
	svd_solve_sym(ATA, &sigma, V);

	// A = UEV^T; U = A / (E*V^T)
	mat3x3 Vinv;
	svd_pseudoinverse(Vinv, sigma, V);
	svd_mul_matrix_vec(x, Vinv, ATb);
}

void svd_vmul_sym(float4* result, mat3x3_tri A, float4 v) {
	float4 A_row_x = { A[0], A[1], A[2], 0.f };

	(*result).x = dot(A_row_x, v);
	(*result).y = A[1] * v.x + A[3] * v.y + A[4] * v.z;
	(*result).z = A[2] * v.x + A[4] * v.y + A[5] * v.z;
}

// QEF
////////////////////////////////////////////////////////////////////////////////

void qef_add(
	float4 n, float4 p,
	mat3x3_tri ATA,
	float4* ATb,
	float4* pointaccum)
{
	ATA[0] += n.x * n.x;
	ATA[1] += n.x * n.y;
	ATA[2] += n.x * n.z;
	ATA[3] += n.y * n.y;
	ATA[4] += n.y * n.z;
	ATA[5] += n.z * n.z;

	float b = dot(p, n);
	(*ATb).x += n.x * b;
	(*ATb).y += n.y * b;
	(*ATb).z += n.z * b;

	(*pointaccum).x += p.x;
	(*pointaccum).y += p.y;
	(*pointaccum).z += p.z;
	(*pointaccum).w += 1.f;
}

float qef_calc_error(mat3x3_tri A, float4 x, float4 b) {
	float4 tmp;

	svd_vmul_sym(&tmp, A, x);
	tmp = b - tmp;

	return dot(tmp, tmp);
}

float qef_solve(
	mat3x3_tri ATA,
	float4 ATb,
	float4 pointaccum,
	float4* x)
{
	float4 masspoint = pointaccum / pointaccum.w;

	float4 A_mp = { 0.f, 0.f, 0.f, 0.f };
	svd_vmul_sym(&A_mp, ATA, masspoint);
	A_mp = ATb - A_mp;

	svd_solve_ATA_ATb(ATA, A_mp, x);

	float error = qef_calc_error(ATA, *x, ATb);
	(*x) += masspoint;

	return error;
}

float4 qef_solve_from_points(
	const float4* positions,
	const float4* normals,
	const size_t count,
	float* error)
{
	float4 pointaccum = {0.f, 0.f, 0.f, 0.f};
	float4 ATb = {0.f, 0.f, 0.f, 0.f};
	mat3x3_tri ATA = {0.f, 0.f, 0.f, 0.f, 0.f, 0.f};

	for (int i= 0; i < count; ++i) {
		qef_add(normals[i],positions[i],ATA,&ATb,&pointaccum);
	}

	float4 solved_position = { 0.f, 0.f, 0.f, 0.f };
	*error = qef_solve(ATA,ATb,pointaccum,&solved_position);
	return solved_position;
}

repo_name: nickgildea/qef

repo_language: C