diff --git a/i2v/__main__.py b/i2v/__main__.py new file mode 100644 index 00000000..f5af93c5 --- /dev/null +++ b/i2v/__main__.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python +from pprint import pprint +import hashlib + +from PIL import Image +import click + +from . import make_i2v_with_chainer + +@click.group() +@click.version_option() +def cli(): + pass + +@cli.command() +@click.option('--output', default='default') +@click.argument('images', nargs=-1) +def estimate_plausible_tags(images, output='default'): + """Estimate plausible tags.""" + illust2vec = make_i2v_with_chainer( + "illust2vec_tag_ver200.caffemodel", "tag_list.json") + image_sets = map(lambda x: {'value': x, 'sha256':sha256_checksum(x)}, images) + for idx, img_set in enumerate(image_sets): + img = Image.open(img_set['value']) + res = illust2vec.estimate_plausible_tags([img], threshold=0.5) + if isinstance(res[idx]['rating'], zip): + res[idx]['rating'] = list(res[idx]['rating']) + print("image: {}\nsha256: {}".format( + img_set['value'], img_set['sha256'])) + if output == 'pprint': + pprint(res) + else: + print(res) + + +def sha256_checksum(filename, block_size=65536): + sha256 = hashlib.sha256() + with open(filename, 'rb') as f: + for block in iter(lambda: f.read(block_size), b''): + sha256.update(block) + return sha256.hexdigest() + + +if __name__ == '__main__': + cli() diff --git a/requirements.txt b/requirements.txt index 2e6d3f5f..9c558e35 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1 @@ -numpy -scipy -Pillow -scikit-image -chainer>=2.0.0 +. diff --git a/setup.py b/setup.py new file mode 100644 index 00000000..e69e274e --- /dev/null +++ b/setup.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python +from setuptools import setup, find_packages + +with open('README.md') as f: + long_description = f.read() + + +setup( + name="illustration2vec", + version="2.0.1", + packages=find_packages(), + install_requires=[ + 'chainer>=4.1.0', + 'click>=6.7', + 'numpy>=1.14.3', + 'Pillow>=5.1.0', + 'scikit-image>=0.14.0', + ], + author="rezoo", + author_email="rezoolab@gmail.com", + maintainer="Rachmadani Haryono", + maintainer_email="foreturiga@gmail.com", + description="A simple deep learning library for estimating a set of tags " + "and extracting semantic feature vectors from given illustrations.", + license="MIT License", + keywords="machine learning tag image illustration", + url="https://github.com/rezoo/illustration2vec/", # project home page, if any + project_urls={ + "Bug Tracker": "https://github.com/rezoo/illustration2vec/issues", + }, + long_description=long_description, + long_description_content_type='text/markdown', + zip_safe=True, + entry_points={'console_scripts': ['i2v = i2v.__main__:cli', ],}, + extras_require={ + 'dev': [ + 'pdbpp>=0.9.2', + 'ipython>=6.4.0', + ], + }, +)