mirror of
https://github.com/Comfy-Org/ComfyUI.git
synced 2026-08-15 22:16:52 +08:00
Fix Image POC asset payloads
Amp-Thread-ID: https://ampcode.com/threads/T-019fd04c-a312-75c9-ac5f-a1de1a7d4c4e Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
@@ -20,6 +20,7 @@ ComfyCloudWorkflow = Literal[
|
||||
class ComfyCloudWorkflowInputs(BaseModel):
|
||||
prompt: str | None = Field(None)
|
||||
image_url: str | None = Field(None)
|
||||
assets: dict[str, "ComfyCloudAssetInput"] | None = Field(None)
|
||||
instruction: str | None = Field(None)
|
||||
prompt_enhance: bool | None = Field(None)
|
||||
negative_prompt: str | None = Field(None)
|
||||
@@ -30,6 +31,11 @@ class ComfyCloudWorkflowInputs(BaseModel):
|
||||
scale: str | None = Field(None)
|
||||
|
||||
|
||||
class ComfyCloudAssetInput(BaseModel):
|
||||
type: Literal["IMAGE", "VIDEO", "AUDIO"] = Field(...)
|
||||
url: str = Field(...)
|
||||
|
||||
|
||||
class ComfyCloudGenerateRequest(BaseModel):
|
||||
workflow: ComfyCloudWorkflow = Field(...)
|
||||
inputs: ComfyCloudWorkflowInputs = Field(...)
|
||||
|
||||
@@ -4,6 +4,7 @@ from typing_extensions import override
|
||||
|
||||
from comfy_api.latest import IO, ComfyExtension, Input
|
||||
from comfy_api_nodes.apis.comfy_cloud import (
|
||||
ComfyCloudAssetInput,
|
||||
ComfyCloudGenerateRequest,
|
||||
ComfyCloudGenerateResponse,
|
||||
ComfyCloudStatusResponse,
|
||||
@@ -311,7 +312,11 @@ class ComfyCloudFlux2ReferenceEditNode(_ComfyCloudWorkflowNode):
|
||||
validate_string(instruction, min_length=1, max_length=4096, field_name="instruction")
|
||||
return await cls._run(
|
||||
ComfyCloudWorkflowInputs(
|
||||
image_url=await cls._upload_image(image, total_pixels=None),
|
||||
assets={
|
||||
"image": ComfyCloudAssetInput(
|
||||
type="IMAGE", url=await cls._upload_image(image, total_pixels=None)
|
||||
)
|
||||
},
|
||||
instruction=instruction,
|
||||
guidance=guidance,
|
||||
quality_mode=quality_mode,
|
||||
@@ -352,7 +357,11 @@ class ComfyCloudQwenImageEdit2511Node(_ComfyCloudWorkflowNode):
|
||||
validate_string(instruction, min_length=1, max_length=4096, field_name="instruction")
|
||||
return await cls._run(
|
||||
ComfyCloudWorkflowInputs(
|
||||
image_url=await cls._upload_image(image, total_pixels=None),
|
||||
assets={
|
||||
"image": ComfyCloudAssetInput(
|
||||
type="IMAGE", url=await cls._upload_image(image, total_pixels=None)
|
||||
)
|
||||
},
|
||||
instruction=instruction,
|
||||
quality_mode=quality_mode,
|
||||
seed=seed,
|
||||
@@ -379,7 +388,14 @@ class ComfyCloudSeedVR2ImageUpscaleNode(_ComfyCloudWorkflowNode):
|
||||
@classmethod
|
||||
async def execute(cls, image: Input.Image, scale: str = "4x") -> IO.NodeOutput:
|
||||
return await cls._run(
|
||||
ComfyCloudWorkflowInputs(image_url=await cls._upload_image(image, total_pixels=None), scale=scale)
|
||||
ComfyCloudWorkflowInputs(
|
||||
assets={
|
||||
"image": ComfyCloudAssetInput(
|
||||
type="IMAGE", url=await cls._upload_image(image, total_pixels=None)
|
||||
)
|
||||
},
|
||||
scale=scale,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -190,11 +190,12 @@ def test_image_poc_node_schema_and_request_mapping(monkeypatch, node, workflow,
|
||||
request = sync.call_args.kwargs["data"]
|
||||
expected_inputs = {key: value for key, value in arguments.items() if key != "image"}
|
||||
if "image" in arguments:
|
||||
expected_inputs["image_url"] = "/uploads/input.png"
|
||||
expected_inputs["assets"] = {"image": {"type": "IMAGE", "url": "/uploads/input.png"}}
|
||||
|
||||
assert request.workflow == workflow
|
||||
assert request.inputs.model_dump(exclude_none=True) == expected_inputs
|
||||
assert "asset_id" not in request.model_dump_json()
|
||||
assert '"id"' not in request.model_dump_json()
|
||||
assert upload.await_count == int("image" in arguments)
|
||||
if "image" in arguments:
|
||||
assert upload.call_args.kwargs == {"total_pixels": None}
|
||||
|
||||
Reference in New Issue
Block a user