Skip to content

Add submodule avatar-generator-GUI#16

Open
marcobaturan wants to merge 8 commits intoSideloading-Research:mainfrom
marcobaturan:new_feature
Open

Add submodule avatar-generator-GUI#16
marcobaturan wants to merge 8 commits intoSideloading-Research:mainfrom
marcobaturan:new_feature

Conversation

@marcobaturan
Copy link
Copy Markdown
Contributor

No description provided.

@RomanPlusPlus
Copy link
Copy Markdown
Contributor

RomanPlusPlus commented Jun 25, 2023

Hi Marco, thank you for the commit!

A few suggestions:

  1. For some reason, the dependencies' pinned versions are removed from rasa/requirements.txt . I would suggest to keep them pinned, to avoid unexpected problems with the updates. But changing the versions is ok, if there are already some problems with them.

  2. The avatar-generator-GUI dir seems to be empty. Forgot to add the code?

  3. I would suggest keeping any code away from the personal_data dir. It's only for personalized data. Instead, it makes sense to place the avatar-generator-GUI into a separate dir (e.g. "tools").

@marcobaturan
Copy link
Copy Markdown
Contributor Author

marcobaturan commented Jun 25, 2023 via email

For python version 3.8.17 add new rasa/requirements.txt with new version.
Comparation Table: diff -y requirements.txt requirements2.txt (2 means older)
I propose put all packages from different requirements.txt for the precise python version for this framework inside of one file in the root's folder project.

absl-py==1.4.0                                                | absl-py==0.13.0
aio-pika==8.2.3                                               | aio-pika==6.8.2
aiofiles==23.1.0                                              | aiofiles==0.8.0
aiogram==2.25.1                                               | aiohttp==3.7.4
aiohttp==3.8.4                                                | aiormq==3.3.1
aiohttp-retry==2.8.3                                          | APScheduler==3.7.0
aiormq==6.4.2                                                 <
aiosignal==1.3.1                                              <
APScheduler==3.9.1.post1                                      <
astunparse==1.6.3                                               astunparse==1.6.3
async-generator==1.10                                         | async-timeout==3.0.1
async-timeout==4.0.2                                          | attrs==21.2.0
attrs==22.1.0                                                 | bidict==0.22.0
Babel==2.9.1                                                  | blis==0.7.8
backports.zoneinfo==0.2.1                                     | boto3==1.24.38
bidict==0.22.1                                                | botocore==1.27.38
boto3==1.26.159                                               | CacheControl==0.12.11
botocore==1.29.159                                            | cachetools==4.2.4
CacheControl==0.12.14                                         | catalogue==2.0.8
cachetools==5.3.1                                             | certifi==2022.6.15
certifi==2023.5.7                                             <
cffi==1.15.1                                                    cffi==1.15.1
chardet==5.1.0                                                | chardet==3.0.4
charset-normalizer==3.1.0                                     | charset-normalizer==2.1.0
clang==16.0.1.1                                               | click==8.0.4
click==8.1.3                                                  | cloudpickle==1.6.0
cloudpickle==2.2.1                                            <
colorclass==2.2.2                                               colorclass==2.2.2
coloredlogs==15.0.1                                             coloredlogs==15.0.1
colorhash==1.2.1                                              | colorhash==1.0.4
confluent-kafka==2.1.1                                        | cryptography==37.0.4
cryptography==41.0.1                                          <
cycler==0.11.0                                                  cycler==0.11.0
dask==2022.10.2                                               | cymem==2.0.6
decorator==5.1.1                                              | dask==2022.2.0
dm-tree==0.1.8                                                | debugpy==1.6.2
dnspython==2.3.0                                              | dnspython==1.16.0
docopt==0.6.2                                                   docopt==0.6.2
                                                              > en-core-web-lg @ https://github.com/explosion/spacy-models/re
fbmessenger==6.0.0                                              fbmessenger==6.0.0
fire==0.5.0                                                   | fire==0.4.0
flatbuffers==23.5.26                                          | flatbuffers==2.0
fonttools==4.40.0                                             | fsspec==2022.5.0
frozenlist==1.3.3                                             | future==0.18.2
fsspec==2023.6.0                                              <
future==0.18.3                                                <
gast==0.4.0                                                     gast==0.4.0
google-auth==2.20.0                                           | google-auth==1.35.0
google-auth-oauthlib==0.4.6                                     google-auth-oauthlib==0.4.6
google-pasta==0.2.0                                             google-pasta==0.2.0
greenlet==2.0.2                                               | greenlet==1.1.2
grpcio==1.56.0                                                | grpcio==1.47.0
h5py==3.9.0                                                   | h5py==3.7.0
httptools==0.5.0                                              | httptools==0.4.0
humanfriendly==10.0                                             humanfriendly==10.0
idna==3.4                                                     | idna==3.3
importlib-metadata==6.7.0                                     | importlib-metadata==4.12.0
importlib-resources==5.12.0                                   | Jinja2==3.1.2
jmespath==1.0.1                                                 jmespath==1.0.1
joblib==1.2.0                                                 | joblib==1.0.1
jsonpickle==3.0.1                                             | jsonpickle==2.0.0
jsonschema==4.17.3                                            | jsonschema==4.4.0
kafka-python==2.0.2                                             kafka-python==2.0.2
keras==2.11.0                                                 | keras==2.7.0
Keras-Preprocessing==1.1.2                                      Keras-Preprocessing==1.1.2
kiwisolver==1.4.4                                               kiwisolver==1.4.4
libclang==16.0.0                                              | langcodes==3.3.0
                                                              > libclang==14.0.1
locket==1.0.0                                                   locket==1.0.0
magic-filter==1.0.9                                           | Markdown==3.4.1
Markdown==3.4.3                                               | MarkupSafe==2.1.1
MarkupSafe==2.1.3                                             | matplotlib==3.3.4
matplotlib==3.5.3                                             <
mattermostwrapper==2.2                                          mattermostwrapper==2.2
msgpack==1.0.5                                                | msgpack==1.0.4
multidict==5.2.0                                                multidict==5.2.0
                                                              > murmurhash==1.0.7
networkx==2.6.3                                                 networkx==2.6.3
numpy==1.24.3                                                 | numpy==1.19.5
oauthlib==3.2.2                                               | oauthlib==3.2.0
opt-einsum==3.3.0                                               opt-einsum==3.3.0
packaging==20.9                                                 packaging==20.9
pamqp==3.2.1                                                  | pamqp==2.3.0
partd==1.4.0                                                  | partd==1.2.0
Pillow==9.5.0                                                 | pathy==0.6.2
pkgutil_resolve_name==1.3.10                                  | Pillow==9.2.0
pluggy==1.2.0                                                 | preshed==3.0.6
portalocker==2.7.0                                            | prompt-toolkit==2.0.10
prompt-toolkit==3.0.28                                        | protobuf==3.19.4
protobuf==3.19.6                                              | psycopg2-binary==2.9.3
psutil==5.9.5                                                 | pyasn1==0.4.8
psycopg2-binary==2.9.6                                        | pyasn1-modules==0.2.8
pyasn1==0.5.0                                                 <
pyasn1-modules==0.3.0                                         <
pycparser==2.21                                                 pycparser==2.21
pydantic==1.10.2                                              | pydantic==1.8.2
pydot==1.4.2                                                    pydot==1.4.2
PyJWT==2.7.0                                                  | PyJWT==2.4.0
pykwalify==1.8.0                                                pykwalify==1.8.0
pymongo==4.3.3                                                | pymongo==3.10.1
pyparsing==3.1.0                                              | pyparsing==3.0.9
pyrsistent==0.19.3                                            | pyrsistent==0.18.1
pyTelegramBotAPI==4.12.0                                      | pyTelegramBotAPI==4.6.0
python-crfsuite==0.9.9                                        | python-crfsuite==0.9.8
python-dateutil==2.8.2                                          python-dateutil==2.8.2
python-engineio==4.4.1                                        | python-engineio==4.3.3
python-socketio==5.8.0                                        | python-socketio==5.7.1
pytz==2022.7.1                                                | pytz==2021.3
PyYAML==5.4.1                                                 | PyYAML==6.0
questionary==1.10.0                                             questionary==1.10.0
randomname==0.1.5                                               randomname==0.1.5
rasa==3.6.0                                                   | rasa==3.2.4
rasa-sdk==3.6.0                                               | rasa-sdk==3.2.0
redis==4.5.5                                                  | redis==3.5.3
regex==2022.10.31                                             | regex==2022.4.24
requests==2.31.0                                              | requests==2.28.1
requests-oauthlib==1.3.1                                        requests-oauthlib==1.3.1
requests-toolbelt==1.0.0                                      | requests-toolbelt==0.9.1
rocketchat-API==1.30.0                                        | rocketchat-API==1.25.0
rsa==4.9                                                        rsa==4.9
ruamel.yaml==0.17.32                                          | ruamel.yaml==0.16.13
ruamel.yaml.clib==0.2.7                                       | ruamel.yaml.clib==0.2.6
s3transfer==0.6.1                                             | s3transfer==0.6.0
sanic==21.12.2                                                | sanic==21.12.1
Sanic-Cors==2.0.1                                               Sanic-Cors==2.0.1
sanic-jwt==1.8.0                                                sanic-jwt==1.8.0
sanic-plugin-toolkit==1.2.0                                   <
sanic-routing==0.7.2                                            sanic-routing==0.7.2
scikit-learn==1.1.3                                           | scikit-learn==0.24.2
scipy==1.8.1                                                  | scipy==1.7.3
sentry-sdk==1.14.0                                            | sentry-sdk==1.3.1
six==1.16.0                                                     six==1.16.0
sklearn-crfsuite==0.3.6                                         sklearn-crfsuite==0.3.6
slack-sdk==3.21.3                                             <
slackclient==2.9.4                                              slackclient==2.9.4
SQLAlchemy==1.4.48                                            | smart-open==5.2.1
structlog==23.1.0                                             | spacy==3.2.4
structlog-sentry==2.0.3                                       | spacy-legacy==3.0.9
tabulate==0.9.0                                               | spacy-loggers==1.0.3
tarsafe==0.0.4                                                | SQLAlchemy==1.4.39
tensorboard==2.11.2                                           | srsly==2.4.4
                                                              > tabulate==0.8.10
                                                              > tarsafe==0.0.3
                                                              > tensorboard==2.9.1
tensorboard-data-server==0.6.1                                  tensorboard-data-server==0.6.1
tensorboard-plugin-wit==1.8.1                                   tensorboard-plugin-wit==1.8.1
tensorflow==2.11.1                                            | tensorflow==2.7.3
tensorflow-addons==0.19.0                                     | tensorflow-addons==0.15.0
tensorflow-estimator==2.11.0                                  | tensorflow-estimator==2.7.0
tensorflow-hub==0.12.0                                          tensorflow-hub==0.12.0
tensorflow-io-gcs-filesystem==0.32.0                          | tensorflow-io-gcs-filesystem==0.26.0
tensorflow-probability==0.20.1                                | tensorflow-text==2.7.3
tensorflow-text==2.11.0                                       | termcolor==1.1.0
termcolor==2.3.0                                              <
terminaltables==3.1.10                                          terminaltables==3.1.10
                                                              > thinc==8.0.17
threadpoolctl==3.1.0                                            threadpoolctl==3.1.0
toolz==0.12.0                                                   toolz==0.12.0
tqdm==4.65.0                                                  | tqdm==4.64.0
twilio==8.2.2                                                 | twilio==6.50.1
typeguard==4.0.0                                              | typeguard==2.13.3
                                                              > typer==0.4.2
                                                              > typing-extensions==3.10.0.2
typing-utils==0.1.0                                             typing-utils==0.1.0
typing_extensions==4.6.3                                      | tzlocal==2.1
tzlocal==5.0.1                                                | ujson==5.4.0
ujson==5.8.0                                                  | urllib3==1.26.11
urllib3==1.26.16                                              | uvloop==0.16.0
uvloop==0.17.0                                                | wasabi==0.10.0
wcwidth==0.2.6                                                | wcwidth==0.2.5
webexteamssdk==1.6.1                                            webexteamssdk==1.6.1
websockets==10.4                                              | websockets==10.3
Werkzeug==2.3.6                                               | Werkzeug==2.2.0
wrapt==1.15.0                                                 | wrapt==1.14.1
yarl==1.9.2                                                   | yarl==1.7.2
zipp==3.15.0                                                  | zipp==3.8.1
Move AGGUI to tools.
Create requirements for Python version 3.10 only for 2D static states avatars.
@marcobaturan
Copy link
Copy Markdown
Contributor Author

I follow the advice. I add new requirements with the new working version dependencies.
Create folder tools/.
Move tool for avatar generation.
Recovery version in root file requirements packages.
The instructions for Colab/GitHub project animated face videos generations are in avatar/READEME.md in a point called "# Just follow the instructions."

Move AGGUI to tools.
Create requirements for Python version 3.10 only for 2D static states avatars.
Move AGGUI to tools.
Create requirements for Python version 3.10 only for 2D static states avatars.
Then enter in your Drive and open your Colab.
Then apply the inside procedure step by step.

[Colab Jupyter's notebook](https://colab.research.google.com/drive/1x-CnBKoaLCBpFQ2LMURYyoCuytY6yifb#scrollTo=IcMX7ueZO0Oa)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems that one can access the colab only after requesting an access. To make it future-proof, I would suggest to make the colab openly accessible if possible.

@@ -0,0 +1,49 @@
# avatar-generator-GUI
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest placing all the png files into a daughter dir, to make the code base easier to navigate

print("Invalid skin tone.")
# hair_colors
if values[2] == 'AUBURN':
Hair_color = pa.HairColor.AUBURN
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest to remove the code duplication by replacing the lengthy if/else statements with "getattr". Something like this:

hair_color_id = values[2]
hair_color = getattr(pa.HairColor, hair_color_id)


# parameters on-the-fly
if values[0] is None:
Style = pa.AvatarStyle.CIRCLE
Copy link
Copy Markdown
Contributor

@RomanPlusPlus RomanPlusPlus Jul 16, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please make all variables (like "Style") lower-case.

Personally, I use "black" as the code formatter to automatically make all the code adhere to the python standards:

https://github.com/psf/black

if word in words and os.path.isfile(os.path.join(pronunciation_folder, word + ".wav")):
# Pronounce the word
audio_file = os.path.join(pronunciation_folder, word + ".wav")
# Cargar la muestra sonora desde un archivo WAV
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please translate the comments to English

'SHIRT_SCOOP_NECK', 'SHIRT_V_NECK']
graphic = ['BAT', 'BEAR', 'CUMBIA', 'DEER', 'DIAMOND', 'HOLA', 'PIZZA', 'RESIST', 'SELENA', 'SKULL',
'SKULL_OUTLINE']
emotion = ['neutral', 'speak', 'happy', 'sad', 'fear', 'angry', 'disgust', 'surprise']
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest to move the many lists to a config file. This will improve the code readability and also help making the editor more customizable.

…w folder. Add detail in avatar.render_png_file the path to folder in main.py, line 47. Open to everybody the google colab
Move all function for built in list to config file for more clean file.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants