Last active
March 25, 2023 12:21
-
-
Save namse/452b4c2fef9523b1946185eb7a5dc4ae to your computer and use it in GitHub Desktop.
image hash and hamming distance for Visual Novel Standing CG Categorization
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
time cargo run > result6.txt | |
Finished dev [unoptimized + debuginfo] target(s) in 0.05s | |
Running `target/debug/img_hash` | |
real 0m0.580s | |
user 0m3.375s | |
sys 0m0.224s | |
(AMD Ryzen 5 2600 Six-Core Processor, 50 png images, each 700~1300 KB) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use opencv::prelude::*; | |
use std::fs; | |
fn main() { | |
let similarity_threshold = 7; | |
let image_paths = fs::read_dir("./") | |
.unwrap() | |
.filter_map(|entry| { | |
let entry = entry.unwrap(); | |
let path = entry.path(); | |
if path.extension()? == "png" { | |
Some(path) | |
} else { | |
None | |
} | |
}) | |
.collect::<Vec<_>>(); | |
let threads = image_paths | |
.into_iter() | |
.map(|path| { | |
std::thread::spawn(move || { | |
let filename = path.file_name().unwrap().to_str().unwrap().to_string(); | |
let image = opencv::imgcodecs::imread(path.to_str().unwrap(), 0).unwrap(); | |
let mut hash_output = opencv::core::Mat::default(); | |
opencv::img_hash::block_mean_hash(&image, &mut hash_output, 0).unwrap(); | |
let hash: u64 = hash_output | |
.data_bytes() | |
.unwrap() | |
.into_iter() | |
.fold(0, |acc, x| (acc << 8) | *x as u64); | |
return (filename, hash); | |
}) | |
}) | |
.collect::<Vec<_>>(); | |
let mut hashes = threads | |
.into_iter() | |
.map(|thread| thread.join().unwrap()) | |
.collect::<Vec<_>>(); | |
hashes.sort_by(|a, b| a.0.cmp(&b.0)); | |
for (filename, hash) in hashes.iter() { | |
println!("{}: {:?}", filename, hash); | |
} | |
for i in 0..hashes.len() { | |
for j in i + 1..hashes.len() { | |
let (filename1, hash1) = &hashes[i]; | |
let (filename2, hash2) = &hashes[j]; | |
let distance = dhash::hamming_distance(*hash1, *hash2); | |
if distance < similarity_threshold { | |
println!("{} <-> {} distance : {}", filename1, filename2, distance); | |
} | |
} | |
} | |
let mut queue = Vec::from(hashes); | |
let mut groups = vec![]; | |
while !queue.is_empty() { | |
let head = queue.pop().unwrap(); | |
let mut group = vec![]; | |
queue = queue | |
.into_iter() | |
.filter(|queued| { | |
let distance = dhash::hamming_distance(head.1, queued.1); | |
if distance < similarity_threshold { | |
group.push(queued.clone()); | |
false | |
} else { | |
true | |
} | |
}) | |
.collect(); | |
group.push(head); | |
groups.push(group); | |
} | |
for group in groups { | |
println!("group:"); | |
for (filename, _) in group { | |
println!(" {}", filename); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
오하연-계산중-사복-아래봄.png: 17863853310700355583 | |
오하연-계산중-사복-이쪽봄.png: 17863853310700355583 | |
오하연-계산중-사복.png: 574217714490998783 | |
오하연-놀람혹은히익-사복.png: 571693199016394751 | |
오하연-사복-궁금-궁금.png: 12098656409033408510 | |
오하연-사복-기침-크흠.png: 16713676232616214527 | |
오하연-사복-데헷-데헷.png: 17868040301713420287 | |
오하연-사복-데헷-데헷굳음.png: 17868040301713420287 | |
오하연-사복-딴청-딴청.png: 16413096120520294399 | |
오하연-사복-엉엉-눈치.png: 14985604547663429631 | |
오하연-사복-엉엉-울음폭발.png: 14985604547663560703 | |
오하연-사복-엉엉-이쪽봄.png: 14985604547663429631 | |
오하연-사복-키득-음흉.png: 14115952374156713983 | |
오하연-사복-키득-활짝.png: 14115952374156713983 | |
오하연-의심-사복-놀람.png: 16138965891818520575 | |
오하연-의심-사복-딴청.png: 16138965891818651647 | |
오하연-의심-사복-살짝미소.png: 16138965891818651647 | |
오하연-의심-사복-시무룩.png: 16138965891818651647 | |
오하연-의심-사복-의심다뭄.png: 16138965891818651647 | |
오하연-의심-사복-의심세모입.png: 16138965891818651647 | |
오하연-의심-사복-일반.png: 16138965891818651647 | |
오하연-의심-사복-짜증땀.png: 16138965891818651647 | |
오하연-의심-사복-활짝웃음.png: 16138965891818520575 | |
오하연-의심-사복-흥미없이이쪽.png: 16138965891818651647 | |
오하연-의심-사복.png: 2303626360486100991 | |
오하연-쭈뼛-사복-11웃음.png: 12358554560836145151 | |
오하연-쭈뼛-사복-11의아.png: 12358554560836145151 | |
오하연-쭈뼛-사복-곤란웃음.png: 12358554560836145151 | |
오하연-쭈뼛-사복-공포.png: 12358554560836145151 | |
오하연-쭈뼛-사복-일반미소.png: 12358554560836145151 | |
오하연-쭈뼛-사복-쭈뼛.png: 12358554560836145151 | |
오하연-쭈뼛-사복-활짝.png: 12358554560836145151 | |
오하연-쭈뼛-사복.png: 567462280555458552 | |
오하연-찡찡-사복-놀람.png: 16411389699680989183 | |
오하연-찡찡-사복-눈질끈입다뭄.png: 16411389699680727039 | |
오하연-찡찡-사복-눈질끈입염.png: 16411389699680727039 | |
오하연-찡찡-사복-머쓱.png: 16411389699680727039 | |
오하연-찡찡-사복-비장.png: 16411389699680989183 | |
오하연-찡찡-사복-비장눈감음.png: 16411389699680727039 | |
오하연-찡찡-사복-삐짐.png: 16411389699680727039 | |
오하연-찡찡-사복-시무룩.png: 16411389699680727039 | |
오하연-찡찡-사복-신남.png: 16411389699680727039 | |
오하연-찡찡-사복-질끈소리지름.png: 16411389699680727039 | |
오하연-찡찡-사복-화난입다뭄.png: 16411389699680989183 | |
오하연-찡찡-사복.png: 571974710770274300 | |
오하연-춤연습-연습복-도야.png: 8070186622613569535 | |
오하연-춤연습-연습복-집중.png: 8070186622613569535 | |
오하연-춤연습-연습복-화남.png: 8070186622613569535 | |
오하연-코메쿠이테-사복-코메쿠이테.png: 12678494935683170303 | |
오하연-폰게임-사복-집중.png: 17864504221583998975 | |
오하연-계산중-사복-아래봄.png <-> 오하연-계산중-사복-이쪽봄.png distance : 0 | |
오하연-계산중-사복-아래봄.png <-> 오하연-폰게임-사복-집중.png distance : 3 | |
오하연-계산중-사복-이쪽봄.png <-> 오하연-폰게임-사복-집중.png distance : 3 | |
오하연-사복-데헷-데헷.png <-> 오하연-사복-데헷-데헷굳음.png distance : 0 | |
오하연-사복-엉엉-눈치.png <-> 오하연-사복-엉엉-울음폭발.png distance : 1 | |
오하연-사복-엉엉-눈치.png <-> 오하연-사복-엉엉-이쪽봄.png distance : 0 | |
오하연-사복-엉엉-울음폭발.png <-> 오하연-사복-엉엉-이쪽봄.png distance : 1 | |
오하연-사복-키득-음흉.png <-> 오하연-사복-키득-활짝.png distance : 0 | |
오하연-의심-사복-놀람.png <-> 오하연-의심-사복-딴청.png distance : 1 | |
오하연-의심-사복-놀람.png <-> 오하연-의심-사복-살짝미소.png distance : 1 | |
오하연-의심-사복-놀람.png <-> 오하연-의심-사복-시무룩.png distance : 1 | |
오하연-의심-사복-놀람.png <-> 오하연-의심-사복-의심다뭄.png distance : 1 | |
오하연-의심-사복-놀람.png <-> 오하연-의심-사복-의심세모입.png distance : 1 | |
오하연-의심-사복-놀람.png <-> 오하연-의심-사복-일반.png distance : 1 | |
오하연-의심-사복-놀람.png <-> 오하연-의심-사복-짜증땀.png distance : 1 | |
오하연-의심-사복-놀람.png <-> 오하연-의심-사복-활짝웃음.png distance : 0 | |
오하연-의심-사복-놀람.png <-> 오하연-의심-사복-흥미없이이쪽.png distance : 1 | |
오하연-의심-사복-놀람.png <-> 오하연-의심-사복.png distance : 6 | |
오하연-의심-사복-딴청.png <-> 오하연-의심-사복-살짝미소.png distance : 0 | |
오하연-의심-사복-딴청.png <-> 오하연-의심-사복-시무룩.png distance : 0 | |
오하연-의심-사복-딴청.png <-> 오하연-의심-사복-의심다뭄.png distance : 0 | |
오하연-의심-사복-딴청.png <-> 오하연-의심-사복-의심세모입.png distance : 0 | |
오하연-의심-사복-딴청.png <-> 오하연-의심-사복-일반.png distance : 0 | |
오하연-의심-사복-딴청.png <-> 오하연-의심-사복-짜증땀.png distance : 0 | |
오하연-의심-사복-딴청.png <-> 오하연-의심-사복-활짝웃음.png distance : 1 | |
오하연-의심-사복-딴청.png <-> 오하연-의심-사복-흥미없이이쪽.png distance : 0 | |
오하연-의심-사복-딴청.png <-> 오하연-의심-사복.png distance : 5 | |
오하연-의심-사복-살짝미소.png <-> 오하연-의심-사복-시무룩.png distance : 0 | |
오하연-의심-사복-살짝미소.png <-> 오하연-의심-사복-의심다뭄.png distance : 0 | |
오하연-의심-사복-살짝미소.png <-> 오하연-의심-사복-의심세모입.png distance : 0 | |
오하연-의심-사복-살짝미소.png <-> 오하연-의심-사복-일반.png distance : 0 | |
오하연-의심-사복-살짝미소.png <-> 오하연-의심-사복-짜증땀.png distance : 0 | |
오하연-의심-사복-살짝미소.png <-> 오하연-의심-사복-활짝웃음.png distance : 1 | |
오하연-의심-사복-살짝미소.png <-> 오하연-의심-사복-흥미없이이쪽.png distance : 0 | |
오하연-의심-사복-살짝미소.png <-> 오하연-의심-사복.png distance : 5 | |
오하연-의심-사복-시무룩.png <-> 오하연-의심-사복-의심다뭄.png distance : 0 | |
오하연-의심-사복-시무룩.png <-> 오하연-의심-사복-의심세모입.png distance : 0 | |
오하연-의심-사복-시무룩.png <-> 오하연-의심-사복-일반.png distance : 0 | |
오하연-의심-사복-시무룩.png <-> 오하연-의심-사복-짜증땀.png distance : 0 | |
오하연-의심-사복-시무룩.png <-> 오하연-의심-사복-활짝웃음.png distance : 1 | |
오하연-의심-사복-시무룩.png <-> 오하연-의심-사복-흥미없이이쪽.png distance : 0 | |
오하연-의심-사복-시무룩.png <-> 오하연-의심-사복.png distance : 5 | |
오하연-의심-사복-의심다뭄.png <-> 오하연-의심-사복-의심세모입.png distance : 0 | |
오하연-의심-사복-의심다뭄.png <-> 오하연-의심-사복-일반.png distance : 0 | |
오하연-의심-사복-의심다뭄.png <-> 오하연-의심-사복-짜증땀.png distance : 0 | |
오하연-의심-사복-의심다뭄.png <-> 오하연-의심-사복-활짝웃음.png distance : 1 | |
오하연-의심-사복-의심다뭄.png <-> 오하연-의심-사복-흥미없이이쪽.png distance : 0 | |
오하연-의심-사복-의심다뭄.png <-> 오하연-의심-사복.png distance : 5 | |
오하연-의심-사복-의심세모입.png <-> 오하연-의심-사복-일반.png distance : 0 | |
오하연-의심-사복-의심세모입.png <-> 오하연-의심-사복-짜증땀.png distance : 0 | |
오하연-의심-사복-의심세모입.png <-> 오하연-의심-사복-활짝웃음.png distance : 1 | |
오하연-의심-사복-의심세모입.png <-> 오하연-의심-사복-흥미없이이쪽.png distance : 0 | |
오하연-의심-사복-의심세모입.png <-> 오하연-의심-사복.png distance : 5 | |
오하연-의심-사복-일반.png <-> 오하연-의심-사복-짜증땀.png distance : 0 | |
오하연-의심-사복-일반.png <-> 오하연-의심-사복-활짝웃음.png distance : 1 | |
오하연-의심-사복-일반.png <-> 오하연-의심-사복-흥미없이이쪽.png distance : 0 | |
오하연-의심-사복-일반.png <-> 오하연-의심-사복.png distance : 5 | |
오하연-의심-사복-짜증땀.png <-> 오하연-의심-사복-활짝웃음.png distance : 1 | |
오하연-의심-사복-짜증땀.png <-> 오하연-의심-사복-흥미없이이쪽.png distance : 0 | |
오하연-의심-사복-짜증땀.png <-> 오하연-의심-사복.png distance : 5 | |
오하연-의심-사복-활짝웃음.png <-> 오하연-의심-사복-흥미없이이쪽.png distance : 1 | |
오하연-의심-사복-활짝웃음.png <-> 오하연-의심-사복.png distance : 6 | |
오하연-의심-사복-흥미없이이쪽.png <-> 오하연-의심-사복.png distance : 5 | |
오하연-쭈뼛-사복-11웃음.png <-> 오하연-쭈뼛-사복-11의아.png distance : 0 | |
오하연-쭈뼛-사복-11웃음.png <-> 오하연-쭈뼛-사복-곤란웃음.png distance : 0 | |
오하연-쭈뼛-사복-11웃음.png <-> 오하연-쭈뼛-사복-공포.png distance : 0 | |
오하연-쭈뼛-사복-11웃음.png <-> 오하연-쭈뼛-사복-일반미소.png distance : 0 | |
오하연-쭈뼛-사복-11웃음.png <-> 오하연-쭈뼛-사복-쭈뼛.png distance : 0 | |
오하연-쭈뼛-사복-11웃음.png <-> 오하연-쭈뼛-사복-활짝.png distance : 0 | |
오하연-쭈뼛-사복-11의아.png <-> 오하연-쭈뼛-사복-곤란웃음.png distance : 0 | |
오하연-쭈뼛-사복-11의아.png <-> 오하연-쭈뼛-사복-공포.png distance : 0 | |
오하연-쭈뼛-사복-11의아.png <-> 오하연-쭈뼛-사복-일반미소.png distance : 0 | |
오하연-쭈뼛-사복-11의아.png <-> 오하연-쭈뼛-사복-쭈뼛.png distance : 0 | |
오하연-쭈뼛-사복-11의아.png <-> 오하연-쭈뼛-사복-활짝.png distance : 0 | |
오하연-쭈뼛-사복-곤란웃음.png <-> 오하연-쭈뼛-사복-공포.png distance : 0 | |
오하연-쭈뼛-사복-곤란웃음.png <-> 오하연-쭈뼛-사복-일반미소.png distance : 0 | |
오하연-쭈뼛-사복-곤란웃음.png <-> 오하연-쭈뼛-사복-쭈뼛.png distance : 0 | |
오하연-쭈뼛-사복-곤란웃음.png <-> 오하연-쭈뼛-사복-활짝.png distance : 0 | |
오하연-쭈뼛-사복-공포.png <-> 오하연-쭈뼛-사복-일반미소.png distance : 0 | |
오하연-쭈뼛-사복-공포.png <-> 오하연-쭈뼛-사복-쭈뼛.png distance : 0 | |
오하연-쭈뼛-사복-공포.png <-> 오하연-쭈뼛-사복-활짝.png distance : 0 | |
오하연-쭈뼛-사복-일반미소.png <-> 오하연-쭈뼛-사복-쭈뼛.png distance : 0 | |
오하연-쭈뼛-사복-일반미소.png <-> 오하연-쭈뼛-사복-활짝.png distance : 0 | |
오하연-쭈뼛-사복-쭈뼛.png <-> 오하연-쭈뼛-사복-활짝.png distance : 0 | |
오하연-찡찡-사복-놀람.png <-> 오하연-찡찡-사복-눈질끈입다뭄.png distance : 1 | |
오하연-찡찡-사복-놀람.png <-> 오하연-찡찡-사복-눈질끈입염.png distance : 1 | |
오하연-찡찡-사복-놀람.png <-> 오하연-찡찡-사복-머쓱.png distance : 1 | |
오하연-찡찡-사복-놀람.png <-> 오하연-찡찡-사복-비장.png distance : 0 | |
오하연-찡찡-사복-놀람.png <-> 오하연-찡찡-사복-비장눈감음.png distance : 1 | |
오하연-찡찡-사복-놀람.png <-> 오하연-찡찡-사복-삐짐.png distance : 1 | |
오하연-찡찡-사복-놀람.png <-> 오하연-찡찡-사복-시무룩.png distance : 1 | |
오하연-찡찡-사복-놀람.png <-> 오하연-찡찡-사복-신남.png distance : 1 | |
오하연-찡찡-사복-놀람.png <-> 오하연-찡찡-사복-질끈소리지름.png distance : 1 | |
오하연-찡찡-사복-놀람.png <-> 오하연-찡찡-사복-화난입다뭄.png distance : 0 | |
오하연-찡찡-사복-눈질끈입다뭄.png <-> 오하연-찡찡-사복-눈질끈입염.png distance : 0 | |
오하연-찡찡-사복-눈질끈입다뭄.png <-> 오하연-찡찡-사복-머쓱.png distance : 0 | |
오하연-찡찡-사복-눈질끈입다뭄.png <-> 오하연-찡찡-사복-비장.png distance : 1 | |
오하연-찡찡-사복-눈질끈입다뭄.png <-> 오하연-찡찡-사복-비장눈감음.png distance : 0 | |
오하연-찡찡-사복-눈질끈입다뭄.png <-> 오하연-찡찡-사복-삐짐.png distance : 0 | |
오하연-찡찡-사복-눈질끈입다뭄.png <-> 오하연-찡찡-사복-시무룩.png distance : 0 | |
오하연-찡찡-사복-눈질끈입다뭄.png <-> 오하연-찡찡-사복-신남.png distance : 0 | |
오하연-찡찡-사복-눈질끈입다뭄.png <-> 오하연-찡찡-사복-질끈소리지름.png distance : 0 | |
오하연-찡찡-사복-눈질끈입다뭄.png <-> 오하연-찡찡-사복-화난입다뭄.png distance : 1 | |
오하연-찡찡-사복-눈질끈입염.png <-> 오하연-찡찡-사복-머쓱.png distance : 0 | |
오하연-찡찡-사복-눈질끈입염.png <-> 오하연-찡찡-사복-비장.png distance : 1 | |
오하연-찡찡-사복-눈질끈입염.png <-> 오하연-찡찡-사복-비장눈감음.png distance : 0 | |
오하연-찡찡-사복-눈질끈입염.png <-> 오하연-찡찡-사복-삐짐.png distance : 0 | |
오하연-찡찡-사복-눈질끈입염.png <-> 오하연-찡찡-사복-시무룩.png distance : 0 | |
오하연-찡찡-사복-눈질끈입염.png <-> 오하연-찡찡-사복-신남.png distance : 0 | |
오하연-찡찡-사복-눈질끈입염.png <-> 오하연-찡찡-사복-질끈소리지름.png distance : 0 | |
오하연-찡찡-사복-눈질끈입염.png <-> 오하연-찡찡-사복-화난입다뭄.png distance : 1 | |
오하연-찡찡-사복-머쓱.png <-> 오하연-찡찡-사복-비장.png distance : 1 | |
오하연-찡찡-사복-머쓱.png <-> 오하연-찡찡-사복-비장눈감음.png distance : 0 | |
오하연-찡찡-사복-머쓱.png <-> 오하연-찡찡-사복-삐짐.png distance : 0 | |
오하연-찡찡-사복-머쓱.png <-> 오하연-찡찡-사복-시무룩.png distance : 0 | |
오하연-찡찡-사복-머쓱.png <-> 오하연-찡찡-사복-신남.png distance : 0 | |
오하연-찡찡-사복-머쓱.png <-> 오하연-찡찡-사복-질끈소리지름.png distance : 0 | |
오하연-찡찡-사복-머쓱.png <-> 오하연-찡찡-사복-화난입다뭄.png distance : 1 | |
오하연-찡찡-사복-비장.png <-> 오하연-찡찡-사복-비장눈감음.png distance : 1 | |
오하연-찡찡-사복-비장.png <-> 오하연-찡찡-사복-삐짐.png distance : 1 | |
오하연-찡찡-사복-비장.png <-> 오하연-찡찡-사복-시무룩.png distance : 1 | |
오하연-찡찡-사복-비장.png <-> 오하연-찡찡-사복-신남.png distance : 1 | |
오하연-찡찡-사복-비장.png <-> 오하연-찡찡-사복-질끈소리지름.png distance : 1 | |
오하연-찡찡-사복-비장.png <-> 오하연-찡찡-사복-화난입다뭄.png distance : 0 | |
오하연-찡찡-사복-비장눈감음.png <-> 오하연-찡찡-사복-삐짐.png distance : 0 | |
오하연-찡찡-사복-비장눈감음.png <-> 오하연-찡찡-사복-시무룩.png distance : 0 | |
오하연-찡찡-사복-비장눈감음.png <-> 오하연-찡찡-사복-신남.png distance : 0 | |
오하연-찡찡-사복-비장눈감음.png <-> 오하연-찡찡-사복-질끈소리지름.png distance : 0 | |
오하연-찡찡-사복-비장눈감음.png <-> 오하연-찡찡-사복-화난입다뭄.png distance : 1 | |
오하연-찡찡-사복-삐짐.png <-> 오하연-찡찡-사복-시무룩.png distance : 0 | |
오하연-찡찡-사복-삐짐.png <-> 오하연-찡찡-사복-신남.png distance : 0 | |
오하연-찡찡-사복-삐짐.png <-> 오하연-찡찡-사복-질끈소리지름.png distance : 0 | |
오하연-찡찡-사복-삐짐.png <-> 오하연-찡찡-사복-화난입다뭄.png distance : 1 | |
오하연-찡찡-사복-시무룩.png <-> 오하연-찡찡-사복-신남.png distance : 0 | |
오하연-찡찡-사복-시무룩.png <-> 오하연-찡찡-사복-질끈소리지름.png distance : 0 | |
오하연-찡찡-사복-시무룩.png <-> 오하연-찡찡-사복-화난입다뭄.png distance : 1 | |
오하연-찡찡-사복-신남.png <-> 오하연-찡찡-사복-질끈소리지름.png distance : 0 | |
오하연-찡찡-사복-신남.png <-> 오하연-찡찡-사복-화난입다뭄.png distance : 1 | |
오하연-찡찡-사복-질끈소리지름.png <-> 오하연-찡찡-사복-화난입다뭄.png distance : 1 | |
오하연-춤연습-연습복-도야.png <-> 오하연-춤연습-연습복-집중.png distance : 0 | |
오하연-춤연습-연습복-도야.png <-> 오하연-춤연습-연습복-화남.png distance : 0 | |
오하연-춤연습-연습복-집중.png <-> 오하연-춤연습-연습복-화남.png distance : 0 | |
group: | |
오하연-계산중-사복-아래봄.png | |
오하연-계산중-사복-이쪽봄.png | |
오하연-폰게임-사복-집중.png | |
group: | |
오하연-코메쿠이테-사복-코메쿠이테.png | |
group: | |
오하연-춤연습-연습복-도야.png | |
오하연-춤연습-연습복-집중.png | |
오하연-춤연습-연습복-화남.png | |
group: | |
오하연-찡찡-사복.png | |
group: | |
오하연-찡찡-사복-놀람.png | |
오하연-찡찡-사복-눈질끈입다뭄.png | |
오하연-찡찡-사복-눈질끈입염.png | |
오하연-찡찡-사복-머쓱.png | |
오하연-찡찡-사복-비장.png | |
오하연-찡찡-사복-비장눈감음.png | |
오하연-찡찡-사복-삐짐.png | |
오하연-찡찡-사복-시무룩.png | |
오하연-찡찡-사복-신남.png | |
오하연-찡찡-사복-질끈소리지름.png | |
오하연-찡찡-사복-화난입다뭄.png | |
group: | |
오하연-쭈뼛-사복.png | |
group: | |
오하연-쭈뼛-사복-11웃음.png | |
오하연-쭈뼛-사복-11의아.png | |
오하연-쭈뼛-사복-곤란웃음.png | |
오하연-쭈뼛-사복-공포.png | |
오하연-쭈뼛-사복-일반미소.png | |
오하연-쭈뼛-사복-쭈뼛.png | |
오하연-쭈뼛-사복-활짝.png | |
group: | |
오하연-의심-사복-놀람.png | |
오하연-의심-사복-딴청.png | |
오하연-의심-사복-살짝미소.png | |
오하연-의심-사복-시무룩.png | |
오하연-의심-사복-의심다뭄.png | |
오하연-의심-사복-의심세모입.png | |
오하연-의심-사복-일반.png | |
오하연-의심-사복-짜증땀.png | |
오하연-의심-사복-활짝웃음.png | |
오하연-의심-사복-흥미없이이쪽.png | |
오하연-의심-사복.png | |
group: | |
오하연-사복-키득-음흉.png | |
오하연-사복-키득-활짝.png | |
group: | |
오하연-사복-엉엉-눈치.png | |
오하연-사복-엉엉-울음폭발.png | |
오하연-사복-엉엉-이쪽봄.png | |
group: | |
오하연-사복-딴청-딴청.png | |
group: | |
오하연-사복-데헷-데헷.png | |
오하연-사복-데헷-데헷굳음.png | |
group: | |
오하연-사복-기침-크흠.png | |
group: | |
오하연-사복-궁금-궁금.png | |
group: | |
오하연-놀람혹은히익-사복.png | |
group: | |
오하연-계산중-사복.png |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment