sdiazlor's picture
Cursor
Allow object removal with or without a mask outline.
f73508d
Raw History Blame
6.88 kB
{
"schema_version": "2",
"name": "P-Q-Image-2.1-Remove-Object Workflow",
"references": [
{
"id": "ref_source",
"label": "Photo",
"role": "reference",
"asset_type": "image",
"inputs": [{"id": "in", "label": "Image", "type": "image"}],
"outputs": [{"id": "out", "label": "Image", "type": "image"}],
"x": 40,
"y": 40,
"width": 220,
"height": 130,
"data": {}
},
{
"id": "ref_mask",
"label": "Mask (white = remove, optional)",
"role": "reference",
"asset_type": "image",
"inputs": [{"id": "in", "label": "Image", "type": "image", "required": false}],
"outputs": [{"id": "out", "label": "Image", "type": "image", "required": false}],
"x": 40,
"y": 200,
"width": 220,
"height": 130,
"data": {}
},
{
"id": "ref_remove",
"label": "Removal Instruction",
"role": "reference",
"asset_type": "text",
"inputs": [{"id": "in", "label": "Text", "type": "text"}],
"outputs": [{"id": "out", "label": "Text", "type": "text"}],
"x": 300,
"y": 40,
"width": 280,
"height": 130,
"data": {"out": "Remove the person on the left."}
},
{
"id": "ref_variant",
"label": "Variant",
"role": "reference",
"asset_type": "text",
"inputs": [{"id": "in", "label": "Variant", "type": "text", "choices": ["6-step", "8-step", "base"]}],
"outputs": [{"id": "out", "label": "Variant", "type": "text", "choices": ["6-step", "8-step", "base"]}],
"x": 450,
"y": 200,
"width": 150,
"height": 90,
"data": {"out": "6-step"}
},
{
"id": "ref_seed",
"label": "Seed",
"role": "reference",
"asset_type": "text",
"inputs": [{"id": "in", "label": "Text", "type": "text"}],
"outputs": [{"id": "out", "label": "Text", "type": "text"}],
"x": 300,
"y": 200,
"width": 130,
"height": 90,
"data": {"out": "42"}
},
{
"id": "ref_mask_2",
"label": "Second Mask (optional)",
"role": "reference",
"asset_type": "image",
"inputs": [{"id": "in", "label": "Image", "type": "image", "required": false}],
"outputs": [{"id": "out", "label": "Image", "type": "image", "required": false}],
"x": 620,
"y": 300,
"width": 220,
"height": 130,
"data": {}
},
{
"id": "ref_remove_2",
"label": "Second Removal Instruction",
"role": "reference",
"asset_type": "text",
"inputs": [{"id": "in", "label": "Text", "type": "text"}],
"outputs": [{"id": "out", "label": "Text", "type": "text"}],
"x": 620,
"y": 450,
"width": 280,
"height": 130,
"data": {"out": "Remove the car parked on the right."}
}
],
"operators": [
{
"id": "op_remove",
"label": "P-Q Remove Object",
"role": "operator",
"kind": "fn",
"fn": "pq_remove",
"inputs": [
{"id": "image", "label": "Image", "type": "image", "required": true},
{"id": "prompt", "label": "Removal Instruction", "type": "text"},
{"id": "variant", "label": "Variant", "type": "text", "choices": ["6-step", "8-step", "base"], "default_value": "6-step"},
{"id": "seed", "label": "Seed", "type": "text"},
{"id": "mask", "label": "Mask", "type": "image", "required": false}
],
"outputs": [{"id": "out_0", "label": "Image", "type": "image", "output_index": 0}],
"x": 660,
"y": 40,
"width": 230,
"height": 190,
"data": {}
},
{
"id": "op_remove_2",
"label": "P-Q Remove Object (chained)",
"role": "operator",
"kind": "fn",
"fn": "pq_remove",
"inputs": [
{"id": "image", "label": "Image", "type": "image", "required": true},
{"id": "prompt", "label": "Removal Instruction", "type": "text"},
{"id": "variant", "label": "Variant", "type": "text", "choices": ["6-step", "8-step", "base"], "default_value": "6-step"},
{"id": "seed", "label": "Seed", "type": "text"},
{"id": "mask", "label": "Mask", "type": "image", "required": false}
],
"outputs": [{"id": "out_0", "label": "Image", "type": "image", "output_index": 0}],
"x": 960,
"y": 300,
"width": 230,
"height": 190,
"data": {}
}
],
"subjects": [
{
"id": "sub_removed",
"label": "Object Removed",
"role": "subject",
"asset_type": "image",
"inputs": [{"id": "in", "label": "Image", "type": "image"}],
"outputs": [{"id": "out", "label": "Image", "type": "image"}],
"x": 940,
"y": 50,
"width": 230,
"height": 110,
"data": {}
},
{
"id": "sub_final",
"label": "Final Image",
"role": "subject",
"asset_type": "image",
"inputs": [{"id": "in", "label": "Image", "type": "image"}],
"outputs": [{"id": "out", "label": "Image", "type": "image"}],
"x": 1240,
"y": 310,
"width": 230,
"height": 110,
"data": {}
}
],
"edges": [
{"id": "e_source", "from_node_id": "ref_source", "from_port_id": "out", "to_node_id": "op_remove", "to_port_id": "image", "type": "image"},
{"id": "e_mask", "from_node_id": "ref_mask", "from_port_id": "out", "to_node_id": "op_remove", "to_port_id": "mask", "type": "image"},
{"id": "e_remove", "from_node_id": "ref_remove", "from_port_id": "out", "to_node_id": "op_remove", "to_port_id": "prompt", "type": "text"},
{"id": "e_variant", "from_node_id": "ref_variant", "from_port_id": "out", "to_node_id": "op_remove", "to_port_id": "variant", "type": "text"},
{"id": "e_seed", "from_node_id": "ref_seed", "from_port_id": "out", "to_node_id": "op_remove", "to_port_id": "seed", "type": "text"},
{"id": "e_out", "from_node_id": "op_remove", "from_port_id": "out_0", "to_node_id": "sub_removed", "to_port_id": "in", "type": "image"},
{"id": "e_chain", "from_node_id": "op_remove", "from_port_id": "out_0", "to_node_id": "op_remove_2", "to_port_id": "image", "type": "image"},
{"id": "e_mask_2", "from_node_id": "ref_mask_2", "from_port_id": "out", "to_node_id": "op_remove_2", "to_port_id": "mask", "type": "image"},
{"id": "e_remove_2", "from_node_id": "ref_remove_2", "from_port_id": "out", "to_node_id": "op_remove_2", "to_port_id": "prompt", "type": "text"},
{"id": "e_variant_2", "from_node_id": "ref_variant", "from_port_id": "out", "to_node_id": "op_remove_2", "to_port_id": "variant", "type": "text"},
{"id": "e_seed_2", "from_node_id": "ref_seed", "from_port_id": "out", "to_node_id": "op_remove_2", "to_port_id": "seed", "type": "text"},
{"id": "e_out_2", "from_node_id": "op_remove_2", "from_port_id": "out_0", "to_node_id": "sub_final", "to_port_id": "in", "type": "image"}
]
}