Last active
February 8, 2023 16:29
-
-
Save ouor/768325e42e8f56884880948313ac49f1 to your computer and use it in GitHub Desktop.
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
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"id": "41c4f308-b68a-46b3-8ae7-1c7d46c981e4", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"--2023-02-06 09:16:04-- https://huggingface.co/syaimu/7th_Layer/resolve/main/7th_anime_v3/7th_anime_v3_A.safetensors\n", | |
"Resolving huggingface.co (huggingface.co)... 3.231.67.228, 54.235.118.239, 2600:1f18:147f:e800:671:b733:ecf3:a585, ...\n", | |
"Connecting to huggingface.co (huggingface.co)|3.231.67.228|:443... connected.\n", | |
"HTTP request sent, awaiting response... 302 Found\n", | |
"Location: https://cdn-lfs.huggingface.co/repos/0c/8c/0c8c3a139a854a317f227f1f1c2f695f4e7f15fa728359e39f1b6085d4c23d36/c330a60ddcb49c61109dbd7c28cf326733dadb77984c6e8d162bdc200a05df9e?response-content-disposition=attachment%3B+filename*%3DUTF-8%27%277th_anime_v3_A.safetensors%3B+filename%3D%227th_anime_v3_A.safetensors%22%3B&Expires=1675933915&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9jZG4tbGZzLmh1Z2dpbmdmYWNlLmNvL3JlcG9zLzBjLzhjLzBjOGMzYTEzOWE4NTRhMzE3ZjIyN2YxZjFjMmY2OTVmNGU3ZjE1ZmE3MjgzNTllMzlmMWI2MDg1ZDRjMjNkMzYvYzMzMGE2MGRkY2I0OWM2MTEwOWRiZDdjMjhjZjMyNjczM2RhZGI3Nzk4NGM2ZThkMTYyYmRjMjAwYTA1ZGY5ZT9yZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uPSoiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE2NzU5MzM5MTV9fX1dfQ__&Signature=WLQ4Kifv-3QwBHonSdrZOx7Ef0Z0iyV6danwso-DE2jaEj7JckLyYtMjhTLbjAHhULHsx-MZTrqnWFweXxg2%7E0Qg0zKwcA-UNYGcsPisO8jr2CHLkWvEhcB53cBZhSYktnzOKHt75M837DG6-IyDePIYjlSLcYRTQRRPWM3WrQB2GkRGUVdo6tfOW4wOBld%7ELB2FE--NIABzhm0WJoCQ-%7E23QYayFAn%7ELB5yZJvbBTcKiJmljZg8BRhwVrEsIWjVdRrna4yl3TXe6Dv-qCjJvtu%7Eit9BehWAjmhCCN1jsiowo51UcOeElvGuVz9gs-c4XAOv8ZH2GBYzPkNHvsBFAg__&Key-Pair-Id=KVTP0A1DKRTAX [following]\n", | |
"--2023-02-06 09:16:05-- https://cdn-lfs.huggingface.co/repos/0c/8c/0c8c3a139a854a317f227f1f1c2f695f4e7f15fa728359e39f1b6085d4c23d36/c330a60ddcb49c61109dbd7c28cf326733dadb77984c6e8d162bdc200a05df9e?response-content-disposition=attachment%3B+filename*%3DUTF-8%27%277th_anime_v3_A.safetensors%3B+filename%3D%227th_anime_v3_A.safetensors%22%3B&Expires=1675933915&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9jZG4tbGZzLmh1Z2dpbmdmYWNlLmNvL3JlcG9zLzBjLzhjLzBjOGMzYTEzOWE4NTRhMzE3ZjIyN2YxZjFjMmY2OTVmNGU3ZjE1ZmE3MjgzNTllMzlmMWI2MDg1ZDRjMjNkMzYvYzMzMGE2MGRkY2I0OWM2MTEwOWRiZDdjMjhjZjMyNjczM2RhZGI3Nzk4NGM2ZThkMTYyYmRjMjAwYTA1ZGY5ZT9yZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uPSoiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE2NzU5MzM5MTV9fX1dfQ__&Signature=WLQ4Kifv-3QwBHonSdrZOx7Ef0Z0iyV6danwso-DE2jaEj7JckLyYtMjhTLbjAHhULHsx-MZTrqnWFweXxg2%7E0Qg0zKwcA-UNYGcsPisO8jr2CHLkWvEhcB53cBZhSYktnzOKHt75M837DG6-IyDePIYjlSLcYRTQRRPWM3WrQB2GkRGUVdo6tfOW4wOBld%7ELB2FE--NIABzhm0WJoCQ-%7E23QYayFAn%7ELB5yZJvbBTcKiJmljZg8BRhwVrEsIWjVdRrna4yl3TXe6Dv-qCjJvtu%7Eit9BehWAjmhCCN1jsiowo51UcOeElvGuVz9gs-c4XAOv8ZH2GBYzPkNHvsBFAg__&Key-Pair-Id=KVTP0A1DKRTAX\n", | |
"Resolving cdn-lfs.huggingface.co (cdn-lfs.huggingface.co)... 99.86.63.67, 99.86.63.91, 99.86.63.37, ...\n", | |
"Connecting to cdn-lfs.huggingface.co (cdn-lfs.huggingface.co)|99.86.63.67|:443... connected.\n", | |
"HTTP request sent, awaiting response... 200 OK\n", | |
"Length: 4265096689 (4.0G) [binary/octet-stream]\n", | |
"Saving to: ‘/workspace/stable-diffusion-webui/models/Stable-diffusion/7th_anime_v3_A.safetensors’\n", | |
"\n", | |
"7th_anime_v3_A.safe 100%[===================>] 3.97G 189MB/s in 23s \n", | |
"\n", | |
"2023-02-06 09:16:28 (174 MB/s) - ‘/workspace/stable-diffusion-webui/models/Stable-diffusion/7th_anime_v3_A.safetensors’ saved [4265096689/4265096689]\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"# ------------------------------------------------\n", | |
"model_urls = '''\n", | |
"https://huggingface.co/syaimu/7th_Layer/resolve/main/7th_anime_v3/7th_anime_v3_A.safetensors\n", | |
"'''\n", | |
"\n", | |
"method = False # 샘플링 메소드 변경 못하게\n", | |
"step_limit = 30 # 최대 스텝 제한\n", | |
"width = 768 # 이미지 가로폭 제한\n", | |
"height = 768 # 이미지 세로폭 제한\n", | |
"cfg = 15 # CFG 스케일 제한\n", | |
"batch = False # 배치 기능 사용 못하게\n", | |
"script = False # xy plot 같은 스크립트 사용 못하게\n", | |
"\n", | |
"positive = 'masterpiece, best quality, '\n", | |
"negative = 'lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name, bad_prompt'\n", | |
"\n", | |
"extensions = '''\n", | |
"https://github.com/DominikDoom/a1111-sd-webui-tagcomplete\n", | |
"'''\n", | |
"# ------------------------------------------------\n", | |
"\n", | |
"import os\n", | |
"import json\n", | |
"import shutil\n", | |
"\n", | |
"home_dir = os.getcwd()\n", | |
"repo_dir = os.path.join(home_dir, 'stable-diffusion-webui')\n", | |
"os.chdir(repo_dir)\n", | |
"\n", | |
"# 원래 있는 sd 모델 삭제\n", | |
"for i in [x for x in os.listdir(home_dir) if x.endswith('.ckpt')]:\n", | |
" os.remove(os.path.join(home_dir, i))\n", | |
"\n", | |
"# 모델 다운로드\n", | |
"models_dir = os.path.join(repo_dir, 'models', 'Stable-diffusion')\n", | |
"for i in [x.strip() for x in model_urls.split('\\n') if x]:\n", | |
" ! wget {i} -P {models_dir}\n", | |
"\n", | |
"# ui-config.json 백업\n", | |
"ui_conf_path = os.path.join(repo_dir, 'ui-config.json')\n", | |
"ui_conf_bk_path = os.path.join(repo_dir, 'ui-config_bk.json')\n", | |
"if not os.path.exists(ui_conf_bk_path):\n", | |
" shutil.copy(ui_conf_path, ui_conf_bk_path)\n", | |
"with open(ui_conf_path, 'r', encoding='utf-8') as f:\n", | |
" orig_ui = json.load(f)\n", | |
" ur_ui = orig_ui\n", | |
"\n", | |
"# ui-config.json 수정\n", | |
"ur_ui['txt2img/Prompt/value'] = positive\n", | |
"ur_ui['txt2img/Negative prompt/value'] = negative\n", | |
"ur_ui['txt2img/Sampling method/visible'] = method\n", | |
"ur_ui['txt2img/Sampling steps/maximum'] = step_limit\n", | |
"ur_ui['txt2img/Width/maximum'] = width\n", | |
"ur_ui['txt2img/Height/maximum'] = height\n", | |
"ur_ui['txt2img/CFG Scale/maximum'] = cfg\n", | |
"ur_ui['txt2img/Batch count/visible'] = batch\n", | |
"ur_ui['txt2img/Batch size/visible'] = batch\n", | |
"ur_ui['txt2img/Resize seed from width/maximum'] = width\n", | |
"ur_ui['txt2img/Resize seed from height/maximum'] = height\n", | |
"ur_ui['txt2img/Script/visible'] = script\n", | |
"\n", | |
"ur_ui['img2img/Prompt/value'] = positive\n", | |
"ur_ui['img2img/Negative prompt/value'] = negative\n", | |
"ur_ui['img2img/Sampling method/visible'] = method\n", | |
"ur_ui['img2img/Sampling steps/maximum'] = step_limit\n", | |
"ur_ui['img2img/Width/maximum'] = width\n", | |
"ur_ui['img2img/Height/maximum'] = height\n", | |
"ur_ui['img2img/CFG Scale/maximum'] = cfg\n", | |
"ur_ui['img2img/Batch count/visible'] = batch\n", | |
"ur_ui['img2img/Batch size/visible'] = batch\n", | |
"ur_ui['img2img/Resize seed from width/maximum'] = width\n", | |
"ur_ui['img2img/Resize seed from height/maximum'] = height\n", | |
"ur_ui['img2img/Script/visible'] = script\n", | |
"\n", | |
"# 파일 저장\n", | |
"with open(ui_conf_path, 'w', encoding='utf-8') as f:\n", | |
" json.dump(ur_ui, f, indent=4)\n", | |
"\n", | |
"# 탭 제거 전 백업\n", | |
"ui_py_path = os.path.join(repo_dir, 'modules', 'ui.py')\n", | |
"ui_py_bk_path = os.path.join(repo_dir, 'modules', 'ui_bk.py')\n", | |
"if not os.path.exists(ui_py_bk_path):\n", | |
" shutil.copy(ui_py_path, ui_py_bk_path)\n", | |
"\n", | |
"# 탭 제거\n", | |
"! sed -i '/extras_interface, \"Extras\", \"extras\"/s/^/#/' {ui_py_path}\n", | |
"! sed -i '/modelmerger_interface, \"Checkpoint Merger\", \"modelmerger\"/s/^/#/' {ui_py_path}\n", | |
"! sed -i '/train_interface, \"Train\", \"ti\"/s/^/#/' {ui_py_path}\n", | |
"! sed -i '/interfaces +=/s/^/#/' {ui_py_path}\n", | |
"\n", | |
"# 필요한 확장 모듈 설치\n", | |
"ext_dir = os.path.join(repo_dir, 'extensions')\n", | |
"os.chdir(ext_dir)\n", | |
"for i in [x.strip() for x in extensions.split('\\n') if x]:\n", | |
" ! git clone {i}\n", | |
"os.chdir(home_dir)" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.10.8" | |
}, | |
"vscode": { | |
"interpreter": { | |
"hash": "c36c8ff63afb68809d72fa6323bde02fb9b90fe01b492d36c13befd021790766" | |
} | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 5 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment