mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-29 10:42:44 +00:00
feat: workflow sharing and ComfyHub publish flow (#8951)
## Summary Add workflow sharing by URL and a multi-step ComfyHub publish wizard, gated by feature flags and an optional profile gate. ## Changes - **What**: Share dialog with URL generation and asset warnings; ComfyHub publish wizard (Describe → Examples → Finish) with thumbnail upload and tags; profile gate flow; shared workflow URL loader with confirmation dialog - **Dependencies**: None (new `sharing/` module under `src/platform/workflow/`) ## Review Focus - Three new feature flags: `workflow_sharing_enabled`, `comfyhub_upload_enabled`, `comfyhub_profile_gate_enabled` - Share service API contract and stale-share detection (`workflowShareService.ts`) - Publish wizard and profile gate state management - Shared workflow URL loading and query-param preservation ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8951-feat-share-workflow-by-URL-30b6d73d3650813ebbfafdad775bfb33) by [Unito](https://www.unito.io) --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Amp <amp@ampcode.com> Co-authored-by: github-actions <github-actions@github.com> Co-authored-by: GitHub Action <action@github.com>
This commit is contained in:
@@ -2998,7 +2998,131 @@
|
||||
"actionbar": {
|
||||
"dockToTop": "Dock to top",
|
||||
"feedback": "Feedback",
|
||||
"feedbackTooltip": "Feedback"
|
||||
"feedbackTooltip": "Feedback",
|
||||
"share": "Share",
|
||||
"shareTooltip": "Share workflow"
|
||||
},
|
||||
"shareWorkflow": {
|
||||
"shareLinkTab": "Share",
|
||||
"publishToHubTab": "Publish",
|
||||
"loadingTitle": "Share workflow",
|
||||
"unsavedTitle": "Save workflow first",
|
||||
"unsavedDescription": "You must save your workflow before sharing. Save it now to continue.",
|
||||
"saveButton": "Save workflow",
|
||||
"saving": "Saving...",
|
||||
"workflowNameLabel": "Workflow name",
|
||||
"createLinkTitle": "Share workflow",
|
||||
"createLinkDescription": "When you create a link for your workflow, you will share these media items along with your workflow",
|
||||
"privateAssetsDescription": "Your workflow contains private models and/or media files",
|
||||
"createLinkButton": "Create a link",
|
||||
"creatingLink": "Creating a link...",
|
||||
"successTitle": "Workflow successfully published!",
|
||||
"successDescription": "Anyone with this link can view and use this workflow. If you make changes to this workflow, you can republish to update the shared version.",
|
||||
"hasChangesTitle": "Share workflow",
|
||||
"hasChangesDescription": "You have made changes since this workflow was last published.",
|
||||
"updateLinkButton": "Update link",
|
||||
"updatingLink": "Updating link...",
|
||||
"publishedOn": "Published on {date}",
|
||||
"copyLink": "Copy",
|
||||
"linkCopied": "Copied!",
|
||||
"shareUrlLabel": "Share URL",
|
||||
"loadFailed": "Failed to load shared workflow",
|
||||
"saveFailedTitle": "Save failed",
|
||||
"saveFailedDescription": "Failed to save workflow. Please try again.",
|
||||
"mediaLabel": "{count} Media File | {count} Media Files",
|
||||
"modelsLabel": "{count} Model | {count} Models",
|
||||
"checkingAssets": "Checking media visibility…",
|
||||
"acknowledgeCheckbox": "I understand these media items will be published and made public",
|
||||
"inLibrary": "In library",
|
||||
"comfyHubTitle": "Upload to ComfyHub",
|
||||
"comfyHubDescription": "ComfyHub is ComfyUI's official community hub.\nYour workflow will have a public page viewable by all.",
|
||||
"comfyHubButton": "Upload to ComfyHub"
|
||||
},
|
||||
"openSharedWorkflow": {
|
||||
"dialogTitle": "Open shared workflow",
|
||||
"author": "Author:",
|
||||
"copyDescription": "Opening the workflow will create a new copy in your workspace",
|
||||
"nonPublicAssetsWarningLine1": "This workflow comes with non-public assets.",
|
||||
"nonPublicAssetsWarningLine2": "These will be imported to your library when you open the workflow",
|
||||
"copyAssetsAndOpen": "Import assets & open workflow",
|
||||
"openWorkflow": "Open workflow",
|
||||
"openWithoutImporting": "Open without importing",
|
||||
"importFailed": "Failed to import workflow assets",
|
||||
"loadError": "Could not load this shared workflow. Please try again later."
|
||||
},
|
||||
"comfyHubPublish": {
|
||||
"title": "Publish to ComfyHub",
|
||||
"stepDescribe": "Describe your workflow",
|
||||
"stepExamples": "Add output examples",
|
||||
"stepFinish": "Finish publishing",
|
||||
"workflowName": "Workflow name",
|
||||
"workflowNamePlaceholder": "Tip: enter a descriptive name that's easy to search",
|
||||
"workflowDescription": "Workflow description",
|
||||
"workflowDescriptionPlaceholder": "What makes your workflow exciting and special? Be specific so people know what to expect.",
|
||||
"workflowType": "Workflow type",
|
||||
"workflowTypePlaceholder": "Select the type",
|
||||
"workflowTypeImageGeneration": "Image generation",
|
||||
"workflowTypeVideoGeneration": "Video generation",
|
||||
"workflowTypeUpscaling": "Upscaling",
|
||||
"workflowTypeEditing": "Editing",
|
||||
"tags": "Tags",
|
||||
"tagsDescription": "Select tags so people can find your workflow faster",
|
||||
"tagsPlaceholder": "Enter tags that match your workflow to help people find it e.g #nanobanana, #anime or #faceswap",
|
||||
"selectAThumbnail": "Select a thumbnail",
|
||||
"showMoreTags": "Show more...",
|
||||
"showLessTags": "Show less...",
|
||||
"suggestedTags": "Suggested tags",
|
||||
"thumbnailImage": "Image",
|
||||
"thumbnailVideo": "Video",
|
||||
"thumbnailImageComparison": "Image comparison",
|
||||
"uploadThumbnail": "Upload an image",
|
||||
"uploadVideo": "Upload a video",
|
||||
"uploadComparison": "Upload before and after",
|
||||
"thumbnailPreview": "Thumbnail preview",
|
||||
"uploadPromptClickToBrowse": "Click to browse or",
|
||||
"uploadPromptDropImage": "drop an image here",
|
||||
"uploadPromptDropVideo": "drop a video here",
|
||||
"uploadComparisonBeforePrompt": "Before",
|
||||
"uploadComparisonAfterPrompt": "After",
|
||||
"uploadThumbnailHint": "1:1 preferred, 1080p max",
|
||||
"back": "Back",
|
||||
"next": "Next",
|
||||
"publishButton": "Publish to ComfyHub",
|
||||
"examplesDescription": "Add up to {total} additional sample images",
|
||||
"uploadAnImage": "Click to browse or drag an image",
|
||||
"uploadExampleImage": "Upload example image",
|
||||
"exampleImage": "Example image {index}",
|
||||
"videoPreview": "Video thumbnail preview",
|
||||
"maxExamples": "You can select up to {max} examples",
|
||||
"createProfileToPublish": "Create a profile to publish to ComfyHub",
|
||||
"createProfileCta": "Create a profile"
|
||||
},
|
||||
"comfyHubProfile": {
|
||||
"checkingAccess": "Checking your publishing access...",
|
||||
"profileCreationNav": "Profile creation",
|
||||
"introTitle": "Publish to the ComfyHub",
|
||||
"introDescription": "Publish your workflows, build your portfolio and get discovered by millions of users",
|
||||
"introSubtitle": "To share your workflow on ComfyHub, let's first create your profile.",
|
||||
"createProfileButton": "Create my profile",
|
||||
"startPublishingButton": "Start publishing",
|
||||
"modalTitle": "Create your profile on ComfyHub",
|
||||
"createProfileTitle": "Create your Comfy Hub profile",
|
||||
"uploadCover": "+ Upload a cover",
|
||||
"uploadProfilePicture": "+ Upload a profile picture",
|
||||
"chooseProfilePicture": "Choose a profile picture",
|
||||
"nameLabel": "Your name",
|
||||
"namePlaceholder": "Enter your name here",
|
||||
"usernameLabel": "Your username (required)",
|
||||
"usernamePlaceholder": "@",
|
||||
"descriptionLabel": "Your description",
|
||||
"descriptionPlaceholder": "Tell the community about yourself...",
|
||||
"createProfile": "Create profile",
|
||||
"creatingProfile": "Creating profile...",
|
||||
"successTitle": "Looking good, {'@'}{username}!",
|
||||
"successProfileUrl": "Your profile page is live at",
|
||||
"successProfileLink": "comfy.com/p/{username}",
|
||||
"successDescription": "You can now upload your workflow to your creator page",
|
||||
"uploadWorkflowButton": "Upload my workflow"
|
||||
},
|
||||
"desktopDialogs": {
|
||||
"": {
|
||||
|
||||
Reference in New Issue
Block a user