mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-04-20 23:42:36 +08:00
feat(api-nodes): add new "arrow-1.1" and "arrow-1.1-max" SVG models (#13447)
Signed-off-by: bigcat88 <bigcat88@icloud.com>
This commit is contained in:
parent
541fd10bbe
commit
4f48be4138
@ -17,6 +17,44 @@ from comfy_api_nodes.util import (
|
|||||||
)
|
)
|
||||||
from comfy_extras.nodes_images import SVG
|
from comfy_extras.nodes_images import SVG
|
||||||
|
|
||||||
|
_ARROW_MODELS = ["arrow-1.1", "arrow-1.1-max", "arrow-preview"]
|
||||||
|
|
||||||
|
|
||||||
|
def _arrow_sampling_inputs():
|
||||||
|
"""Shared sampling inputs for all Arrow model variants."""
|
||||||
|
return [
|
||||||
|
IO.Float.Input(
|
||||||
|
"temperature",
|
||||||
|
default=1.0,
|
||||||
|
min=0.0,
|
||||||
|
max=2.0,
|
||||||
|
step=0.1,
|
||||||
|
display_mode=IO.NumberDisplay.slider,
|
||||||
|
tooltip="Randomness control. Higher values increase randomness.",
|
||||||
|
advanced=True,
|
||||||
|
),
|
||||||
|
IO.Float.Input(
|
||||||
|
"top_p",
|
||||||
|
default=1.0,
|
||||||
|
min=0.05,
|
||||||
|
max=1.0,
|
||||||
|
step=0.05,
|
||||||
|
display_mode=IO.NumberDisplay.slider,
|
||||||
|
tooltip="Nucleus sampling parameter.",
|
||||||
|
advanced=True,
|
||||||
|
),
|
||||||
|
IO.Float.Input(
|
||||||
|
"presence_penalty",
|
||||||
|
default=0.0,
|
||||||
|
min=-2.0,
|
||||||
|
max=2.0,
|
||||||
|
step=0.1,
|
||||||
|
display_mode=IO.NumberDisplay.slider,
|
||||||
|
tooltip="Token presence penalty.",
|
||||||
|
advanced=True,
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class QuiverTextToSVGNode(IO.ComfyNode):
|
class QuiverTextToSVGNode(IO.ComfyNode):
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -39,6 +77,7 @@ class QuiverTextToSVGNode(IO.ComfyNode):
|
|||||||
default="",
|
default="",
|
||||||
tooltip="Additional style or formatting guidance.",
|
tooltip="Additional style or formatting guidance.",
|
||||||
optional=True,
|
optional=True,
|
||||||
|
advanced=True,
|
||||||
),
|
),
|
||||||
IO.Autogrow.Input(
|
IO.Autogrow.Input(
|
||||||
"reference_images",
|
"reference_images",
|
||||||
@ -53,43 +92,7 @@ class QuiverTextToSVGNode(IO.ComfyNode):
|
|||||||
),
|
),
|
||||||
IO.DynamicCombo.Input(
|
IO.DynamicCombo.Input(
|
||||||
"model",
|
"model",
|
||||||
options=[
|
options=[IO.DynamicCombo.Option(m, _arrow_sampling_inputs()) for m in _ARROW_MODELS],
|
||||||
IO.DynamicCombo.Option(
|
|
||||||
"arrow-preview",
|
|
||||||
[
|
|
||||||
IO.Float.Input(
|
|
||||||
"temperature",
|
|
||||||
default=1.0,
|
|
||||||
min=0.0,
|
|
||||||
max=2.0,
|
|
||||||
step=0.1,
|
|
||||||
display_mode=IO.NumberDisplay.slider,
|
|
||||||
tooltip="Randomness control. Higher values increase randomness.",
|
|
||||||
advanced=True,
|
|
||||||
),
|
|
||||||
IO.Float.Input(
|
|
||||||
"top_p",
|
|
||||||
default=1.0,
|
|
||||||
min=0.05,
|
|
||||||
max=1.0,
|
|
||||||
step=0.05,
|
|
||||||
display_mode=IO.NumberDisplay.slider,
|
|
||||||
tooltip="Nucleus sampling parameter.",
|
|
||||||
advanced=True,
|
|
||||||
),
|
|
||||||
IO.Float.Input(
|
|
||||||
"presence_penalty",
|
|
||||||
default=0.0,
|
|
||||||
min=-2.0,
|
|
||||||
max=2.0,
|
|
||||||
step=0.1,
|
|
||||||
display_mode=IO.NumberDisplay.slider,
|
|
||||||
tooltip="Token presence penalty.",
|
|
||||||
advanced=True,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
],
|
|
||||||
tooltip="Model to use for SVG generation.",
|
tooltip="Model to use for SVG generation.",
|
||||||
),
|
),
|
||||||
IO.Int.Input(
|
IO.Int.Input(
|
||||||
@ -112,7 +115,16 @@ class QuiverTextToSVGNode(IO.ComfyNode):
|
|||||||
],
|
],
|
||||||
is_api_node=True,
|
is_api_node=True,
|
||||||
price_badge=IO.PriceBadge(
|
price_badge=IO.PriceBadge(
|
||||||
expr="""{"type":"usd","usd":0.429}""",
|
depends_on=IO.PriceBadgeDepends(widgets=["model"]),
|
||||||
|
expr="""
|
||||||
|
(
|
||||||
|
$contains(widgets.model, "max")
|
||||||
|
? {"type":"usd","usd":0.3575}
|
||||||
|
: $contains(widgets.model, "preview")
|
||||||
|
? {"type":"usd","usd":0.429}
|
||||||
|
: {"type":"usd","usd":0.286}
|
||||||
|
)
|
||||||
|
""",
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -176,12 +188,13 @@ class QuiverImageToSVGNode(IO.ComfyNode):
|
|||||||
"auto_crop",
|
"auto_crop",
|
||||||
default=False,
|
default=False,
|
||||||
tooltip="Automatically crop to the dominant subject.",
|
tooltip="Automatically crop to the dominant subject.",
|
||||||
|
advanced=True,
|
||||||
),
|
),
|
||||||
IO.DynamicCombo.Input(
|
IO.DynamicCombo.Input(
|
||||||
"model",
|
"model",
|
||||||
options=[
|
options=[
|
||||||
IO.DynamicCombo.Option(
|
IO.DynamicCombo.Option(
|
||||||
"arrow-preview",
|
m,
|
||||||
[
|
[
|
||||||
IO.Int.Input(
|
IO.Int.Input(
|
||||||
"target_size",
|
"target_size",
|
||||||
@ -189,39 +202,12 @@ class QuiverImageToSVGNode(IO.ComfyNode):
|
|||||||
min=128,
|
min=128,
|
||||||
max=4096,
|
max=4096,
|
||||||
tooltip="Square resize target in pixels.",
|
tooltip="Square resize target in pixels.",
|
||||||
),
|
|
||||||
IO.Float.Input(
|
|
||||||
"temperature",
|
|
||||||
default=1.0,
|
|
||||||
min=0.0,
|
|
||||||
max=2.0,
|
|
||||||
step=0.1,
|
|
||||||
display_mode=IO.NumberDisplay.slider,
|
|
||||||
tooltip="Randomness control. Higher values increase randomness.",
|
|
||||||
advanced=True,
|
|
||||||
),
|
|
||||||
IO.Float.Input(
|
|
||||||
"top_p",
|
|
||||||
default=1.0,
|
|
||||||
min=0.05,
|
|
||||||
max=1.0,
|
|
||||||
step=0.05,
|
|
||||||
display_mode=IO.NumberDisplay.slider,
|
|
||||||
tooltip="Nucleus sampling parameter.",
|
|
||||||
advanced=True,
|
|
||||||
),
|
|
||||||
IO.Float.Input(
|
|
||||||
"presence_penalty",
|
|
||||||
default=0.0,
|
|
||||||
min=-2.0,
|
|
||||||
max=2.0,
|
|
||||||
step=0.1,
|
|
||||||
display_mode=IO.NumberDisplay.slider,
|
|
||||||
tooltip="Token presence penalty.",
|
|
||||||
advanced=True,
|
advanced=True,
|
||||||
),
|
),
|
||||||
|
*_arrow_sampling_inputs(),
|
||||||
],
|
],
|
||||||
),
|
)
|
||||||
|
for m in _ARROW_MODELS
|
||||||
],
|
],
|
||||||
tooltip="Model to use for SVG vectorization.",
|
tooltip="Model to use for SVG vectorization.",
|
||||||
),
|
),
|
||||||
@ -245,7 +231,16 @@ class QuiverImageToSVGNode(IO.ComfyNode):
|
|||||||
],
|
],
|
||||||
is_api_node=True,
|
is_api_node=True,
|
||||||
price_badge=IO.PriceBadge(
|
price_badge=IO.PriceBadge(
|
||||||
expr="""{"type":"usd","usd":0.429}""",
|
depends_on=IO.PriceBadgeDepends(widgets=["model"]),
|
||||||
|
expr="""
|
||||||
|
(
|
||||||
|
$contains(widgets.model, "max")
|
||||||
|
? {"type":"usd","usd":0.3575}
|
||||||
|
: $contains(widgets.model, "preview")
|
||||||
|
? {"type":"usd","usd":0.429}
|
||||||
|
: {"type":"usd","usd":0.286}
|
||||||
|
)
|
||||||
|
""",
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user