Files

155 lines
5.8 KiB
Markdown

# 🎨 Send to DeviantArt — ComfyUI Node
[![Release](https://img.shields.io/github/v/release/sni10/DWA?style=for-the-badge&logo=github&logoColor=white)](https://github.com/sni10/DWA/releases)
[![Tests](https://img.shields.io/github/actions/workflow/status/sni10/DWA/ci.yml?style=for-the-badge&logo=githubactions&logoColor=white&label=Tests)](https://github.com/sni10/DWA/actions/workflows/ci.yml)
[![Coverage](https://img.shields.io/codecov/c/github/sni10/DWA?style=for-the-badge&logo=codecov&logoColor=white)](https://codecov.io/gh/sni10/DWA)
[![Python](https://img.shields.io/badge/Python-3.12%2B-3776AB?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/)
[![ComfyUI](https://img.shields.io/badge/ComfyUI-Node-1A1A1A?style=for-the-badge&logo=comfyui&logoColor=white)](https://github.com/comfyanonymous/ComfyUI)
[![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)](LICENSE)
Automatically publish your generated images to DeviantArt straight from ComfyUI.
Generate an image → it gets uploaded to DeviantArt. No manual downloads, no browser tabs, no extra steps.
---
## ✨ Features
- 📤 Grabs the latest saved image from a folder and uploads it to DeviantArt
- 🔐 Handles authorization via browser (only needed once)
- 🔄 Remembers your login and refreshes tokens automatically
- 🏷️ Supports tags, gallery folders, mature content settings, watermarks, and more
- 📦 Can upload to Stash only (without publishing) — if you want to review first
---
![img.png](asset/img.png)
## 📥 Installation
### Via ComfyUI Manager (recommended)
Search for **"DeviantArt Sender"** in ComfyUI Manager and click Install.
### Manual
```bash
cd ComfyUI/custom_nodes/
git clone https://github.com/sni10/DWA.git
```
Restart ComfyUI. The node **"🎨 Send to DeviantArt"** will appear in the **output** category.
> 💡 Dependencies install automatically. If not — there's a `requirements.txt` in the folder.
---
## 🔧 First-Time Setup (once)
Before using the node, you need to create a DeviantArt app — takes about 2 minutes.
### Step 1 — Create a DeviantArt App
1. Go to [deviantart.com/developers/register](https://www.deviantart.com/developers/register)
2. Fill in the form:
- **Title** — anything you want (e.g. "ComfyUI Uploader")
- **OAuth2 Redirect URI** — enter exactly this: `http://localhost:8080/callback`
3. Click **Save**
4. You'll see two values — **Client ID** and **Client Secret**. Copy them somewhere safe
### Step 2 — Paste the keys into the node
Open the **🎨 Send to DeviantArt** node in ComfyUI and enter:
- `client_id` — your Client ID
- `client_secret` — your Client Secret
✅ That's it. No other configuration needed.
---
## 🚀 How to Use
1. Add the **🎨 Send to DeviantArt** node to your workflow
2. Connect your image output to the `images` input
3. Set `folder_path` to the folder where ComfyUI saves images (usually `output`)
4. Fill in `client_id` and `client_secret`
5. Set up tags and other options as you like
6. Run the workflow
### 🔑 First Run
On the first run, a browser window will open asking you to authorize on DeviantArt.
Click **"Authorize"** — the browser will show "Authorization Successful!", you can close the tab.
Done! You won't need to log in again.
---
## ⚙️ Node Settings
### Required
| Field | Description |
|-------|-------------|
| **images** | Connect the image output from another node here |
| **folder_path** | Folder where saved images are located (e.g. `output`) |
| **client_id** | Your DeviantArt app Client ID |
| **client_secret** | Your DeviantArt app Client Secret |
### Main Options
| Field | Description | Default |
|-------|-------------|---------|
| **tags** | Comma-separated tags (e.g. `digital art, ai generated, fantasy`) | `digital art, ai generated` |
| **title** | Title for the artwork. If left empty — auto-generated from filename | empty |
| **artist_comments** | Description for the artwork (HTML supported) | empty |
| **galleryids** | Gallery folder UUID (to publish to a specific folder) | empty |
| **display_resolution** | Max display resolution for viewers | Original |
| **publish_after_stash** | Publish immediately or just upload to Stash | Yes |
### 🔘 Toggles
| Field | What it does | Default |
|-------|-------------|---------|
| **is_ai_generated** | Mark as AI-generated | ✅ Yes |
| **is_mature** | Mark as mature / adult content | ❌ No |
| **feature** | Feature in your gallery feed | ✅ Yes |
| **allow_comments** | Allow comments | ✅ Yes |
| **allow_free_download** | Allow original file download | ✅ Yes |
| **add_watermark** | Add watermark | ❌ No |
### 🔞 Mature Content (when `is_mature` is enabled)
| Field | Description |
|-------|-------------|
| **mature_level** | Level: `moderate` or `strict` |
| **mature_nudity** | Contains nudity |
| **mature_sexual** | Sexual content |
| **mature_gore** | Violence / gore |
| **mature_language** | Strong language |
| **mature_ideology** | Ideological content |
---
## 🛠️ Troubleshooting
### ❌ "Authentication failed"
- Double-check your `client_id` and `client_secret`
- Make sure the redirect URI in your DeviantArt app settings is exactly `http://localhost:8080/callback`
- Check that port 8080 isn't being used by another app
### ❌ "No image files found"
- Make sure `folder_path` points to the correct directory
- Make sure the image has been saved before the node runs
- Supported formats: PNG, JPG, JPEG, GIF, BMP
### ❌ "Stash upload failed" or "Publish failed"
- Check your internet connection
- Try deleting `da_tokens.db` from the `DWA` folder and restarting (this triggers re-authorization)
- If you set `galleryids` — make sure the UUID is correct (or leave the field empty)
### 🔄 How to reset authorization
Delete the `da_tokens.db` file from the `DWA` folder. The browser will open again on the next run.
---
## 📄 License
MIT