Compare commits
10
Commits
8d39f67637
...
025c8e750e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
025c8e750e | ||
|
|
0d6d365ee8 | ||
|
|
094ce70044 | ||
|
|
4fe7477efb | ||
|
|
9650deebd9 | ||
|
|
028bcf58b4 | ||
|
|
84e91af110 | ||
|
|
3b96930220 | ||
|
|
ce82ed0914 | ||
|
|
476eaa077e |
@@ -1,2 +1,89 @@
|
||||
# ComfyUI-SVD-ZHO
|
||||
My Workflows + Auxiliary nodes for Stable Video Diffusion (SVD)
|
||||

|
||||
|
||||
|
||||
# ComfyUI-SVD-ZHO(WIP)
|
||||
|
||||
## 项目说明 | Info
|
||||
|
||||
- 我为 SVD 设计的 **工作流** 和 **节点** | My Workflows + Auxiliary nodes for Stable Video Diffusion (SVD)
|
||||
|
||||
- **版本:0.9** 节点已经可用,标准工作流正在完善,目前仅提供预览
|
||||
|
||||
|
||||
## 复刻 [stablevideo.com](https://stablevideo.com) 的 UI 交互 | SVD1.1 工作流设计
|
||||
|
||||

|
||||
|
||||
|
||||
https://github.com/ZHO-ZHO-ZHO/ComfyUI-SVD-ZHO/assets/140084057/dd0f4f25-06e1-47ee-87a4-afadfa95b921
|
||||
|
||||
|
||||
### 与官网交互相同,提供 文生视频 和 图生视频 两种方式
|
||||
|
||||
- 文生视频:
|
||||
|
||||
1)🎞️SVD Styler:输入提示词,选择风格(17种)
|
||||
|
||||
2)🎞️SVD Aspect Ratio:选择宽高比(16:9、1:1、9:16 三种)、批次数
|
||||
|
||||
3)🎞️SVD Advanced:选择步数、运动幅度、种子
|
||||
|
||||
4)T2I Chooser:从生成的结果中选择一张用于生成视频
|
||||
|
||||
5)生成视频(水印可选)
|
||||
|
||||
- 图生视频
|
||||
|
||||
1)Load image:上传图像(16:9、16:9、1:1、9:16 三种)
|
||||
|
||||
2)🎞️SVD Advanced:选择步数、运动幅度、种子
|
||||
|
||||
3)生成视频(水印可选)
|
||||
|
||||
- 补充:由于官方未公开 Camera Lora 所以还未加入
|
||||
|
||||
|
||||
## SVD1.1 辅助节点 | Nodes
|
||||
|
||||

|
||||
|
||||
|
||||
## 工作流 | Workflows
|
||||
|
||||
别急……
|
||||
|
||||
|
||||
## 更新日志
|
||||
|
||||
- 20240204
|
||||
|
||||
- V0.9 :完成 SVD Styler,Aspect Ratio,Advanced 节点设计,初步完成标准工作流设计
|
||||
|
||||
- 创建项目
|
||||
|
||||
|
||||
## Stars
|
||||
|
||||
[](https://star-history.com/#ZHO-ZHO-ZHO/ComfyUI-SVD-ZHO&Date)
|
||||
|
||||
|
||||
## 关于我 | About me
|
||||
|
||||
📬 **联系我**:
|
||||
- 邮箱:zhozho3965@gmail.com
|
||||
- QQ 群:839821928
|
||||
|
||||
🔗 **社交媒体**:
|
||||
- 个人页:[-Zho-](https://jike.city/zho)
|
||||
- Bilibili:[我的B站主页](https://space.bilibili.com/484366804)
|
||||
- X(Twitter):[我的Twitter](https://twitter.com/ZHOZHO672070)
|
||||
- 小红书:[我的小红书主页](https://www.xiaohongshu.com/user/profile/63f11530000000001001e0c8?xhsshare=CopyLink&appuid=63f11530000000001001e0c8&apptime=1690528872)
|
||||
|
||||
💡 **支持我**:
|
||||
- B站:[B站充电](https://space.bilibili.com/484366804)
|
||||
- 爱发电:[为我充电](https://afdian.net/a/ZHOZHO)
|
||||
|
||||
|
||||
## Credits
|
||||
|
||||
[stablevideo.com](https://stablevideo.com)
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
class SVD_Steps_MotionStrength_Seed_Zho:
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(s):
|
||||
return {
|
||||
"required": {
|
||||
"steps": ("INT", {"default": 30, "min": 25, "max": 60, "step": 1, "display": "slider"}),
|
||||
"motion_strength": ("INT", {"default": 127, "min": 1, "max": 255, "display": "slider"}),
|
||||
"seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}),
|
||||
}
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("INT", "INT", "INT",)
|
||||
RETURN_NAMES = ("steps", "motion_strength", "seed",)
|
||||
FUNCTION = "advanced"
|
||||
|
||||
CATEGORY = "Zho模块组/🎞️SVD"
|
||||
|
||||
def advanced(self, steps, motion_strength, seed):
|
||||
return (steps, motion_strength, seed,)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
"SVD_Steps_MotionStrength_Seed_Zho": SVD_Steps_MotionStrength_Seed_Zho,
|
||||
}
|
||||
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"SVD_Steps_MotionStrength_Seed_Zho": "🎞️SVD Advanced",
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
from .style_template import style_list
|
||||
|
||||
# Create a dictionary from style_list for easier access
|
||||
styles = {style['name']: (style['prompt'], style['negative_prompt']) for style in style_list}
|
||||
|
||||
STYLE_NAMES = [style['name'] for style in style_list]
|
||||
DEFAULT_STYLE_NAME = "None"
|
||||
|
||||
def apply_style(style_name: str, positive: str, negative: str = "") -> tuple[str, str]:
|
||||
# Get the prompts for the given style_name, or defaults to the first style if not found
|
||||
p, n = styles.get(style_name, styles[DEFAULT_STYLE_NAME])
|
||||
return p.replace("{prompt}", positive), n + ' ' + negative
|
||||
|
||||
class SVD_Styler_Zho:
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"prompt": ("STRING", {"default": "a close up shot of a cappuccino steaming, on a wooden table, in a dimly lit room", "multiline": True}),
|
||||
"negative_prompt": ("STRING", {"default": "asymmetry, worst quality, low quality", "multiline": True}),
|
||||
"style_name": (STYLE_NAMES, {"default": DEFAULT_STYLE_NAME})
|
||||
}
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING', 'STRING',)
|
||||
RETURN_NAMES = ('positive_prompt', 'negative_prompt',)
|
||||
FUNCTION = "prompt_style"
|
||||
CATEGORY = "Zho模块组/🎞️SVD"
|
||||
|
||||
def prompt_style(self, style_name, prompt, negative_prompt):
|
||||
prompt, negative_prompt = apply_style(style_name, prompt, negative_prompt)
|
||||
|
||||
return prompt, negative_prompt
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
"SVD_Styler_Zho": SVD_Styler_Zho,
|
||||
}
|
||||
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"SVD_Styler_Zho": "🎞️SVD Styler",
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
from .SVD_Aspect_Ratio import NODE_CLASS_MAPPINGS as NODE_CLASS_MAPPINGS_AR, NODE_DISPLAY_NAME_MAPPINGS as NODE_DISPLAY_NAME_MAPPINGS_AR
|
||||
from .SVD_Styler import NODE_CLASS_MAPPINGS as NODE_CLASS_MAPPINGS_ST, NODE_DISPLAY_NAME_MAPPINGS as NODE_DISPLAY_NAME_MAPPINGS_ST
|
||||
from .SVD_Advanced import NODE_CLASS_MAPPINGS as NODE_CLASS_MAPPINGS_AD, NODE_DISPLAY_NAME_MAPPINGS as NODE_DISPLAY_NAME_MAPPINGS_AD
|
||||
|
||||
NODE_CLASS_MAPPINGS = {**NODE_CLASS_MAPPINGS_AR, **NODE_CLASS_MAPPINGS_ST, **NODE_CLASS_MAPPINGS_AD}
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {**NODE_DISPLAY_NAME_MAPPINGS_AR, **NODE_DISPLAY_NAME_MAPPINGS_ST, **NODE_DISPLAY_NAME_MAPPINGS_AD}
|
||||
|
||||
__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS']
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
style_list = [
|
||||
{
|
||||
"name": "None",
|
||||
"prompt": "",
|
||||
"prompt": "{prompt}",
|
||||
"negative_prompt": "ugly"
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user