Merge pull request #36 from alembics/fix-video-input-ffmpeg-call-and-improve-imports

Fix Video Input mode's ffmpeg subprocess call, and improve imports
pull/38/head
Adam Letts 3 years ago committed by GitHub
commit 6d5a47ca04
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 27
      Disco_Diffusion.ipynb
  2. 23
      disco.py

@ -478,52 +478,49 @@
"try:\n", "try:\n",
" from CLIP import clip\n", " from CLIP import clip\n",
"except:\n", "except:\n",
" if os.path.exists(\"CLIP\") is not True:\n", " if not os.path.exists(\"CLIP\"):\n",
" gitclone(\"https://github.com/openai/CLIP\")\n", " gitclone(\"https://github.com/openai/CLIP\")\n",
" sys.path.append(f'{PROJECT_DIR}/CLIP')\n", " sys.path.append(f'{PROJECT_DIR}/CLIP')\n",
"\n", "\n",
"try:\n", "try:\n",
" from guided_diffusion.script_util import create_model_and_diffusion\n", " from guided_diffusion.script_util import create_model_and_diffusion\n",
"except:\n", "except:\n",
" if os.path.exists(\"guided-diffusion\") is not True:\n", " if not os.path.exists(\"guided-diffusion\"):\n",
" gitclone(\"https://github.com/crowsonkb/guided-diffusion\")\n", " gitclone(\"https://github.com/crowsonkb/guided-diffusion\")\n",
" sys.path.append(f'{PROJECT_DIR}/guided-diffusion')\n", " sys.path.append(f'{PROJECT_DIR}/guided-diffusion')\n",
"\n", "\n",
"try:\n", "try:\n",
" from resize_right import resize\n", " from resize_right import resize\n",
"except:\n", "except:\n",
" if os.path.exists(\"resize_right\") is not True:\n", " if not os.path.exists(\"ResizeRight\"):\n",
" gitclone(\"https://github.com/assafshocher/ResizeRight.git\")\n", " gitclone(\"https://github.com/assafshocher/ResizeRight.git\")\n",
" sys.path.append(f'{PROJECT_DIR}/ResizeRight')\n", " sys.path.append(f'{PROJECT_DIR}/ResizeRight')\n",
"\n", "\n",
"try:\n", "try:\n",
" import py3d_tools\n", " import py3d_tools\n",
"except:\n", "except:\n",
" if os.path.exists('pytorch3d-lite') is not True:\n", " if not os.path.exists('pytorch3d-lite'):\n",
" gitclone(\"https://github.com/MSFTserver/pytorch3d-lite.git\")\n", " gitclone(\"https://github.com/MSFTserver/pytorch3d-lite.git\")\n",
" sys.path.append(f'{PROJECT_DIR}/pytorch3d-lite')\n", " sys.path.append(f'{PROJECT_DIR}/pytorch3d-lite')\n",
"\n", "\n",
"try:\n", "try:\n",
" from midas.dpt_depth import DPTDepthModel\n", " from midas.dpt_depth import DPTDepthModel\n",
"except:\n", "except:\n",
" if os.path.exists('MiDaS') is not True:\n", " if not os.path.exists('MiDaS'):\n",
" gitclone(\"https://github.com/isl-org/MiDaS.git\")\n", " gitclone(\"https://github.com/isl-org/MiDaS.git\")\n",
" if os.path.exists('MiDaS/midas_utils.py') is not True:\n", " if not os.path.exists('MiDaS/midas_utils.py'):\n",
" shutil.move('MiDaS/utils.py', 'MiDaS/midas_utils.py')\n", " shutil.move('MiDaS/utils.py', 'MiDaS/midas_utils.py')\n",
" if not os.path.exists(f'{model_path}/dpt_large-midas-2f21e586.pt'):\n", " if not os.path.exists(f'{model_path}/dpt_large-midas-2f21e586.pt'):\n",
" wget(\"https://github.com/intel-isl/DPT/releases/download/1_0/dpt_large-midas-2f21e586.pt\", model_path)\n", " wget(\"https://github.com/intel-isl/DPT/releases/download/1_0/dpt_large-midas-2f21e586.pt\", model_path)\n",
" sys.path.append(f'{PROJECT_DIR}/MiDaS')\n", " sys.path.append(f'{PROJECT_DIR}/MiDaS')\n",
"\n", "\n",
"try:\n", "try:\n",
" sys.path.append(PROJECT_DIR)\n", " sys.path.append(f'{PROJECT_DIR}/disco-diffusion')\n",
" import disco_xform_utils as dxf\n", " import disco_xform_utils as dxf\n",
"except:\n", "except:\n",
" if os.path.exists(\"disco-diffusion\") is not True:\n", " if not os.path.exists(\"disco-diffusion\"):\n",
" gitclone(\"https://github.com/alembics/disco-diffusion.git\")\n", " gitclone(\"https://github.com/alembics/disco-diffusion.git\")\n",
" # Rename a file to avoid a name conflict..\n", " sys.path.append(f'{PROJECT_DIR}/disco-diffusion')\n",
" if os.path.exists('disco_xform_utils.py') is not True:\n",
" shutil.move('disco-diffusion/disco_xform_utils.py', 'disco_xform_utils.py')\n",
" sys.path.append(PROJECT_DIR)\n",
"\n", "\n",
"import torch\n", "import torch\n",
"from dataclasses import dataclass\n", "from dataclasses import dataclass\n",
@ -1672,7 +1669,7 @@
" alphas, sigmas = map(partial(append_dims, n=v.ndim), t_to_alpha_sigma(t))\n", " alphas, sigmas = map(partial(append_dims, n=v.ndim), t_to_alpha_sigma(t))\n",
" pred = input * alphas - v * sigmas\n", " pred = input * alphas - v * sigmas\n",
" eps = input * sigmas + v * alphas\n", " eps = input * sigmas + v * alphas\n",
" return DiffusionOutput(v, pred, eps)" " return DiffusionOutput(v, pred, eps)\n"
], ],
"outputs": [], "outputs": [],
"execution_count": null "execution_count": null
@ -1895,7 +1892,7 @@
"\n", "\n",
"#Make folder for batch\n", "#Make folder for batch\n",
"batchFolder = f'{outDirPath}/{batch_name}'\n", "batchFolder = f'{outDirPath}/{batch_name}'\n",
"createPath(batchFolder)" "createPath(batchFolder)\n"
], ],
"outputs": [], "outputs": [],
"execution_count": null "execution_count": null
@ -1942,7 +1939,7 @@
" f.unlink()\n", " f.unlink()\n",
" except:\n", " except:\n",
" print('')\n", " print('')\n",
" vf = f'\"select=not(mod(n\\,{extract_nth_frame}))\"'\n", " vf = f'select=not(mod(n\\,{extract_nth_frame}))'\n",
" subprocess.run(['ffmpeg', '-i', f'{video_init_path}', '-vf', f'{vf}', '-vsync', 'vfr', '-q:v', '2', '-loglevel', 'error', '-stats', f'{videoFramesFolder}/%04d.jpg'], stdout=subprocess.PIPE).stdout.decode('utf-8')\n", " subprocess.run(['ffmpeg', '-i', f'{video_init_path}', '-vf', f'{vf}', '-vsync', 'vfr', '-q:v', '2', '-loglevel', 'error', '-stats', f'{videoFramesFolder}/%04d.jpg'], stdout=subprocess.PIPE).stdout.decode('utf-8')\n",
" #!ffmpeg -i {video_init_path} -vf {vf} -vsync vfr -q:v 2 -loglevel error -stats {videoFramesFolder}/%04d.jpg\n", " #!ffmpeg -i {video_init_path} -vf {vf} -vsync vfr -q:v 2 -loglevel error -stats {videoFramesFolder}/%04d.jpg\n",
"\n", "\n",

@ -450,52 +450,49 @@ if is_colab:
try: try:
from CLIP import clip from CLIP import clip
except: except:
if os.path.exists("CLIP") is not True: if not os.path.exists("CLIP"):
gitclone("https://github.com/openai/CLIP") gitclone("https://github.com/openai/CLIP")
sys.path.append(f'{PROJECT_DIR}/CLIP') sys.path.append(f'{PROJECT_DIR}/CLIP')
try: try:
from guided_diffusion.script_util import create_model_and_diffusion from guided_diffusion.script_util import create_model_and_diffusion
except: except:
if os.path.exists("guided-diffusion") is not True: if not os.path.exists("guided-diffusion"):
gitclone("https://github.com/crowsonkb/guided-diffusion") gitclone("https://github.com/crowsonkb/guided-diffusion")
sys.path.append(f'{PROJECT_DIR}/guided-diffusion') sys.path.append(f'{PROJECT_DIR}/guided-diffusion')
try: try:
from resize_right import resize from resize_right import resize
except: except:
if os.path.exists("resize_right") is not True: if not os.path.exists("ResizeRight"):
gitclone("https://github.com/assafshocher/ResizeRight.git") gitclone("https://github.com/assafshocher/ResizeRight.git")
sys.path.append(f'{PROJECT_DIR}/ResizeRight') sys.path.append(f'{PROJECT_DIR}/ResizeRight')
try: try:
import py3d_tools import py3d_tools
except: except:
if os.path.exists('pytorch3d-lite') is not True: if not os.path.exists('pytorch3d-lite'):
gitclone("https://github.com/MSFTserver/pytorch3d-lite.git") gitclone("https://github.com/MSFTserver/pytorch3d-lite.git")
sys.path.append(f'{PROJECT_DIR}/pytorch3d-lite') sys.path.append(f'{PROJECT_DIR}/pytorch3d-lite')
try: try:
from midas.dpt_depth import DPTDepthModel from midas.dpt_depth import DPTDepthModel
except: except:
if os.path.exists('MiDaS') is not True: if not os.path.exists('MiDaS'):
gitclone("https://github.com/isl-org/MiDaS.git") gitclone("https://github.com/isl-org/MiDaS.git")
if os.path.exists('MiDaS/midas_utils.py') is not True: if not os.path.exists('MiDaS/midas_utils.py'):
shutil.move('MiDaS/utils.py', 'MiDaS/midas_utils.py') shutil.move('MiDaS/utils.py', 'MiDaS/midas_utils.py')
if not os.path.exists(f'{model_path}/dpt_large-midas-2f21e586.pt'): if not os.path.exists(f'{model_path}/dpt_large-midas-2f21e586.pt'):
wget("https://github.com/intel-isl/DPT/releases/download/1_0/dpt_large-midas-2f21e586.pt", model_path) wget("https://github.com/intel-isl/DPT/releases/download/1_0/dpt_large-midas-2f21e586.pt", model_path)
sys.path.append(f'{PROJECT_DIR}/MiDaS') sys.path.append(f'{PROJECT_DIR}/MiDaS')
try: try:
sys.path.append(PROJECT_DIR) sys.path.append(f'{PROJECT_DIR}/disco-diffusion')
import disco_xform_utils as dxf import disco_xform_utils as dxf
except: except:
if os.path.exists("disco-diffusion") is not True: if not os.path.exists("disco-diffusion"):
gitclone("https://github.com/alembics/disco-diffusion.git") gitclone("https://github.com/alembics/disco-diffusion.git")
# Rename a file to avoid a name conflict.. sys.path.append(f'{PROJECT_DIR}/disco-diffusion')
if os.path.exists('disco_xform_utils.py') is not True:
shutil.move('disco-diffusion/disco_xform_utils.py', 'disco_xform_utils.py')
sys.path.append(PROJECT_DIR)
import torch import torch
from dataclasses import dataclass from dataclasses import dataclass
@ -1884,7 +1881,7 @@ if animation_mode == "Video Input":
f.unlink() f.unlink()
except: except:
print('') print('')
vf = f'"select=not(mod(n\,{extract_nth_frame}))"' vf = f'select=not(mod(n\,{extract_nth_frame}))'
subprocess.run(['ffmpeg', '-i', f'{video_init_path}', '-vf', f'{vf}', '-vsync', 'vfr', '-q:v', '2', '-loglevel', 'error', '-stats', f'{videoFramesFolder}/%04d.jpg'], stdout=subprocess.PIPE).stdout.decode('utf-8') subprocess.run(['ffmpeg', '-i', f'{video_init_path}', '-vf', f'{vf}', '-vsync', 'vfr', '-q:v', '2', '-loglevel', 'error', '-stats', f'{videoFramesFolder}/%04d.jpg'], stdout=subprocess.PIPE).stdout.decode('utf-8')
#!ffmpeg -i {video_init_path} -vf {vf} -vsync vfr -q:v 2 -loglevel error -stats {videoFramesFolder}/%04d.jpg #!ffmpeg -i {video_init_path} -vf {vf} -vsync vfr -q:v 2 -loglevel error -stats {videoFramesFolder}/%04d.jpg

Loading…
Cancel
Save